@@ -194,6 +194,42 @@ public static void Test_Index_ValueStructIndex()
194194 AreEqual ( 0 , result . Count ) ;
195195 }
196196
197+ [ Test ]
198+ public static void Test_Index_Entities_indexer ( )
199+ {
200+ var store = new EntityStore ( ) ;
201+ var index = store . ComponentIndex < IndexedInt , int > ( ) ;
202+ var entity1 = store . CreateEntity ( 1 ) ;
203+ var entity2 = store . CreateEntity ( 2 ) ;
204+ var error = "Index was out of range. Must be >= 0 and < Entities.Count" ;
205+
206+ // --- result: Entities.Count = 0
207+ var entities = index [ 37 ] ;
208+ IndexOutOfRangeException e ;
209+ {
210+ AreEqual ( 0 , entities . Count ) ;
211+ e = Throws < IndexOutOfRangeException > ( ( ) => { _ = entities [ 0 ] ; } ) ; AreEqual ( error , e . Message ) ;
212+ e = Throws < IndexOutOfRangeException > ( ( ) => { _ = entities [ - 1 ] ; } ) ; AreEqual ( error , e . Message ) ;
213+ }
214+
215+ // --- result: Entities.Count = 1
216+ {
217+ entity1 . AddComponent ( new IndexedInt { value = 37 } ) ;
218+ entities = index [ 37 ] ;
219+ AreEqual ( 1 , entities . Count ) ;
220+ _ = entities [ 0 ] ; // OK
221+ e = Throws < IndexOutOfRangeException > ( ( ) => { _ = entities [ 1 ] ; } ) ; AreEqual ( error , e . Message ) ;
222+ } {
223+ // --- result: Entities.Count = 2
224+ entity2 . AddComponent ( new IndexedInt { value = 37 } ) ;
225+ entities = index [ 37 ] ;
226+ AreEqual ( 2 , entities . Count ) ;
227+ _ = entities [ 0 ] ; // OK
228+ _ = entities [ 1 ] ; // OK
229+ e = Throws < IndexOutOfRangeException > ( ( ) => { _ = entities [ 2 ] ; } ) ; AreEqual ( error , e . Message ) ;
230+ }
231+ }
232+
197233 [ Test ]
198234 public static void Test_Index_exceptions ( )
199235 {
0 commit comments