Beispiel #1
0
        public void EntityArrayListAdapter_SequentialAccessConsistent()
        {
            var archetype = m_Manager.CreateArchetype(new ComponentType[] { typeof(EcsTestData), typeof(EcsTestData2), typeof(EcsTestData3),
                                                                            typeof(EcsTestData4) });

            using (var entities = new NativeArray <Entity>(100000, Allocator.Temp))
            {
                m_Manager.CreateEntity(archetype, entities);
            }

            var query = new EntityArchetypeQuery()
            {
                Any  = new ComponentType[0],
                All  = new ComponentType[0],
                None = new ComponentType[0]
            };

            using (var chunkArray = m_Manager.CreateArchetypeChunkArray(query, Allocator.TempJob))
            {
                var adapter = new EntityArrayListAdapter();
                adapter.SetSource(chunkArray, m_Manager, null);
                var e1      = adapter[50001].id;
                var e2      = adapter[50002].id;
                var e3      = adapter[50003].id;
                var e2Again = adapter[50002].id;
                var e1Again = adapter[50001].id;
                Assert.AreNotEqual(e1, e2);
                Assert.AreNotEqual(e1, e2Again);
                Assert.AreNotEqual(e2, e1Again);
                Assert.AreEqual(e1, e1Again);
                Assert.AreEqual(e2, e2Again);
            }
        }
        public void EntityArrayListAdapter_SequentialAccessConsistent()
        {
            var adapter = new EntityArrayListAdapter();

            adapter.SetSource(m_ChunkArray, m_Manager, null);
            var e1      = adapter[50001].id;
            var e2      = adapter[50002].id;
            var e3      = adapter[50003].id;
            var e2Again = adapter[50002].id;
            var e1Again = adapter[50001].id;

            Assert.AreNotEqual(e1, e2);
            Assert.AreNotEqual(e1, e2Again);
            Assert.AreNotEqual(e2, e1Again);
            Assert.AreEqual(e1, e1Again);
            Assert.AreEqual(e2, e2Again);
        }
        public void EntityArrayListAdapter_Enumerator_Resets()
        {
            var adapter = new EntityArrayListAdapter();

            adapter.SetSource(m_ChunkArray, m_Manager, null);
            using (var iterator = adapter.GetEnumerator())
            {
                var ids = new int[5];
                for (var i = 0; i < ids.Length; ++i)
                {
                    Assert.IsTrue(iterator.MoveNext());
                    ids[i] = iterator.Current.id;
                }
                iterator.Reset();
                for (var i = 0; i < ids.Length; ++i)
                {
                    Assert.IsTrue(iterator.MoveNext());
                    Assert.AreEqual(ids[i], iterator.Current.id);
                }
            }
        }