public void EntityRemove_NoEntityExists() { EntityArray entityArray = new EntityArray(3, new ComponentsDefinition()); Assert.IsTrue(entityArray.TryCreateEntity(out Entity newEntity0)); Assert.IsTrue(entityArray.TryCreateEntity(out Entity newEntity1)); Assert.IsTrue(entityArray.TryCreateEntity(out Entity newEntity2)); entityArray.RemoveEntity(newEntity1); entityArray.EndUpdate(); Assert.IsTrue(entityArray.TryGetEntity(0, out _)); Assert.IsFalse(entityArray.TryGetEntity(1, out _)); Assert.IsTrue(entityArray.TryGetEntity(2, out _)); entityArray.RemoveEntity(newEntity1); Assert.IsTrue(entityArray.TryGetEntity(0, out _)); Assert.IsFalse(entityArray.TryGetEntity(1, out _)); Assert.IsTrue(entityArray.TryGetEntity(2, out _)); entityArray.EndUpdate(); Assert.IsTrue(entityArray.TryGetEntity(0, out _)); Assert.IsFalse(entityArray.TryGetEntity(1, out _)); Assert.IsTrue(entityArray.TryGetEntity(2, out _)); }
public void EntityRemove_RemoveMultipleTimesInSameTick() { EntityArray entityArray = new EntityArray(3, new ComponentsDefinition()); Assert.IsTrue(entityArray.TryCreateEntity(out Entity newEntity0)); Assert.IsTrue(entityArray.TryCreateEntity(out Entity newEntity1)); Assert.IsTrue(entityArray.TryCreateEntity(out Entity newEntity2)); entityArray.RemoveEntity(newEntity0); entityArray.RemoveEntity(newEntity0); entityArray.EndUpdate(); entityArray.RemoveEntity(newEntity2); entityArray.RemoveEntity(newEntity2); Assert.IsFalse(entityArray.TryGetEntity(0, out _)); Assert.IsTrue(entityArray.TryGetEntity(1, out _)); Assert.IsTrue(entityArray.TryGetEntity(2, out _)); entityArray.EndUpdate(); entityArray.RemoveEntity(newEntity1); entityArray.RemoveEntity(newEntity1); Assert.IsFalse(entityArray.TryGetEntity(0, out _)); Assert.IsTrue(entityArray.TryGetEntity(1, out _)); Assert.IsFalse(entityArray.TryGetEntity(2, out _)); entityArray.EndUpdate(); Assert.IsFalse(entityArray.TryGetEntity(0, out _)); Assert.IsFalse(entityArray.TryGetEntity(1, out _)); Assert.IsFalse(entityArray.TryGetEntity(2, out _)); }