public void Test_Contains() { var entity1 = new EcsId(0x20); var entity1WithGen = new EcsId(0x20, 20); var entity1WithRole = new EcsId(0x20, (EcsRole)0xFF); var entity2 = new EcsId(0x200); var entity2WithGen = new EcsId(0x200, 20); var entity2WithRole = new EcsId(0x200, (EcsRole)0xFF); var range1 = EcsIdRange.Components; Assert.True(range1.Contains(entity1)); Assert.True(range1.Contains(entity1WithGen)); Assert.True(range1.Contains(entity1WithRole)); Assert.False(range1.Contains(entity2)); Assert.False(range1.Contains(entity2WithGen)); Assert.False(range1.Contains(entity2WithRole)); var range2 = new EcsIdRange(0x100, 0xFFFFFFFF); Assert.False(range2.Contains(entity1)); Assert.False(range2.Contains(entity1WithGen)); Assert.False(range2.Contains(entity1WithRole)); Assert.True(range2.Contains(entity2)); Assert.True(range2.Contains(entity2WithGen)); Assert.True(range2.Contains(entity2WithRole)); }
public void Test_Properties() { var entityWithGen = new EcsId(0x200, 20); Assert.Equal((uint)0x200, entityWithGen.ID); Assert.Equal((ushort)20, entityWithGen.Generation); Assert.Equal(EcsRole.None, entityWithGen.Role); // TODO: Due to lack of non-Pair role, create a "fake" role. var entityWithRole = new EcsId(0x300, 30, (EcsRole)0xFF); Assert.Equal((uint)0x300, entityWithRole.ID); Assert.Equal((ushort)30, entityWithRole.Generation); Assert.Equal((EcsRole)0xFF, entityWithRole.Role); }
public void Test_ToString() { var entity = new EcsId(0x100); var entityWithGen = new EcsId(0x200, 20); // TODO: Due to lack of non-Pair role, create "fake" roles. var entityWithRole = new EcsId(0x300, (EcsRole)230); var entityWithBoth = new EcsId(0x400, 40, (EcsRole)240); Assert.Equal("EcsId(id: 0x100)", entity.ToString()); Assert.Equal("EcsId(id: 0x200, generation: 20)", entityWithGen.ToString()); Assert.Equal("EcsId(id: 0x300, role: 230)", entityWithRole.ToString()); Assert.Equal("EcsId(id: 0x400, generation: 40, role: 240)", entityWithBoth.ToString()); var pair = EcsId.Pair(entity, entityWithGen); Assert.Equal("EcsId.Pair(relation: 0x100, target: 0x200)", pair.ToString()); }
public void Test() { var universe = new Universe(); var componentId = Universe.COMPONENT_ID; Assert.Equal(typeof(Component), universe.GetStruct <Component>(componentId)?.Type); Assert.Equal(nameof(Component), universe.GetStruct <Identifier>(componentId)); Assert.Equal(2, universe.Entities[componentId].Archetype.Count); var testId = new EcsId(0x100); universe.Add(componentId, testId); Assert.Equal(new [] { componentId, Universe.IDENTIFIER_ID, testId }, universe.Entities[componentId].Type); Assert.Equal(1, universe.Entities[componentId].Archetype.Count); }
public void Test_ModifyEntityType() { var universe = new Universe(); var entity = new EcsId(0x100); // var testComponent = new EntityId(0x10); // universe.Set(testComponent, Component.Of<TestComponent>()); var value1 = new EcsId(0x101); var value2 = new EcsId(0x102); var value3 = new EcsId(0x103); universe.ModifyEntityType(entity, previousType => { Assert.Equal(EcsType.Empty, previousType); return(new(value1, value2, value3)); }); universe.ModifyEntityType(entity, previousType => { Assert.Equal(new(value1, value2, value3), previousType); return(new()); });
public void Test_Pairs() { var relation = new EcsId(0x100); var target = new EcsId(0x200); var pair = EcsId.Pair(relation, target); Assert.Equal((uint)0x200, pair.ID); Assert.Equal(EcsRole.Pair, pair.Role); Assert.Equal((relation, target), pair.ToPair()); var relationWithGen = new EcsId(0x300, 30); var targetWithRole = new EcsId(0x400, 40, (EcsRole)0xFF); var pair2 = EcsId.Pair(relationWithGen, targetWithRole); Assert.Equal((relation, target), pair.ToPair()); Assert.Equal((uint)0x300, pair2.ToPair().Relation.ID); Assert.Equal((uint)0x400, pair2.ToPair().Target.ID); // Pairs will lose any Generation and Role information. Assert.NotEqual((relationWithGen, targetWithRole), pair2.ToPair()); Assert.Equal(0, pair2.ToPair().Relation.Generation); Assert.Equal(EcsRole.None, pair2.ToPair().Target.Role); }