-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathDisableComponentTests.cs
132 lines (105 loc) · 5.24 KB
/
DisableComponentTests.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
using System;
using NUnit.Framework;
using Unity.Collections;
namespace Unity.Entities.Tests
{
class DisableComponentTests : ECSTestsFixture
{
[Test]
public void DIS_DontFindDisabledInEntityQuery()
{
var archetype0 = m_Manager.CreateArchetype(typeof(EcsTestData));
var archetype1 = m_Manager.CreateArchetype(typeof(EcsTestData), typeof(Disabled));
var group = m_Manager.CreateEntityQuery(typeof(EcsTestData));
var entity0 = m_Manager.CreateEntity(archetype0);
var entity1 = m_Manager.CreateEntity(archetype1);
Assert.AreEqual(1, group.CalculateEntityCount());
group.Dispose();
m_Manager.DestroyEntity(entity0);
m_Manager.DestroyEntity(entity1);
}
[Test]
public void DIS_DontFindDisabledInChunkIterator()
{
var archetype0 = m_Manager.CreateArchetype(typeof(EcsTestData));
var archetype1 = m_Manager.CreateArchetype(typeof(EcsTestData), typeof(Disabled));
var entity0 = m_Manager.CreateEntity(archetype0);
var entity1 = m_Manager.CreateEntity(archetype1);
var group = m_Manager.CreateEntityQuery(ComponentType.ReadWrite<EcsTestData>());
var chunks = group.ToArchetypeChunkArray(World.UpdateAllocator.ToAllocator);
group.Dispose();
var count = ArchetypeChunkArray.TotalEntityCountInChunksIgnoreFiltering(chunks);
Assert.AreEqual(1, count);
m_Manager.DestroyEntity(entity0);
m_Manager.DestroyEntity(entity1);
}
[Test]
public void DIS_FindDisabledIfRequestedInEntityQuery()
{
var archetype0 = m_Manager.CreateArchetype(typeof(EcsTestData));
var archetype1 = m_Manager.CreateArchetype(typeof(EcsTestData), typeof(Disabled));
var group = m_Manager.CreateEntityQuery(ComponentType.ReadWrite<EcsTestData>(), ComponentType.ReadWrite<Disabled>());
var entity0 = m_Manager.CreateEntity(archetype0);
var entity1 = m_Manager.CreateEntity(archetype1);
var entity2 = m_Manager.CreateEntity(archetype1);
Assert.AreEqual(2, group.CalculateEntityCount());
group.Dispose();
m_Manager.DestroyEntity(entity0);
m_Manager.DestroyEntity(entity1);
m_Manager.DestroyEntity(entity2);
}
[Test]
public void DIS_FindDisabledIfRequestedInChunkIterator()
{
var archetype0 = m_Manager.CreateArchetype(typeof(EcsTestData));
var archetype1 = m_Manager.CreateArchetype(typeof(EcsTestData), typeof(Disabled));
var entity0 = m_Manager.CreateEntity(archetype0);
var entity1 = m_Manager.CreateEntity(archetype1);
var entity2 = m_Manager.CreateEntity(archetype1);
var group = m_Manager.CreateEntityQuery(ComponentType.ReadWrite<EcsTestData>(), ComponentType.ReadWrite<Disabled>());
var chunks = group.ToArchetypeChunkArray(World.UpdateAllocator.ToAllocator);
group.Dispose();
var count = ArchetypeChunkArray.TotalEntityCountInChunksIgnoreFiltering(chunks);
Assert.AreEqual(2, count);
m_Manager.DestroyEntity(entity0);
m_Manager.DestroyEntity(entity1);
m_Manager.DestroyEntity(entity2);
}
[Test]
public void DIS_GetAllIncludesDisabled([Values] bool immediate)
{
var archetype0 = m_Manager.CreateArchetype(typeof(EcsTestData));
var archetype1 = m_Manager.CreateArchetype(typeof(EcsTestData), typeof(Disabled));
var entity0 = m_Manager.CreateEntity(archetype0);
var entity1 = m_Manager.CreateEntity(archetype1);
var entity2 = m_Manager.CreateEntity(archetype1);
var entities = immediate ? m_Manager.GetAllEntities() : m_Manager.GetAllEntities();
Assert.AreEqual(3, entities.Length);
entities.Dispose();
m_Manager.DestroyEntity(entity0);
m_Manager.DestroyEntity(entity1);
m_Manager.DestroyEntity(entity2);
}
[Test]
public void PrefabAndDisabledQueryOptions()
{
m_Manager.CreateEntity();
m_Manager.CreateEntity(typeof(EcsTestData), typeof(Prefab));
m_Manager.CreateEntity(typeof(EcsTestData), typeof(Disabled));
m_Manager.CreateEntity(typeof(EcsTestData), typeof(Disabled), typeof(Prefab));
CheckPrefabAndDisabledQueryOptions(EntityQueryOptions.Default, 0);
CheckPrefabAndDisabledQueryOptions(EntityQueryOptions.IncludePrefab, 1);
CheckPrefabAndDisabledQueryOptions(EntityQueryOptions.IncludeDisabledEntities, 1);
CheckPrefabAndDisabledQueryOptions(EntityQueryOptions.IncludeDisabledEntities | EntityQueryOptions.IncludePrefab, 3);
}
void CheckPrefabAndDisabledQueryOptions(EntityQueryOptions options, int expected)
{
var query = new EntityQueryBuilder(Allocator.Temp)
.WithAllRW<EcsTestData>()
.WithOptions(options)
.Build(m_Manager);
Assert.AreEqual(expected, query.CalculateEntityCount());
query.Dispose();
}
}
}