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 _)); }
public void EntityCreate_TooMany_OverMultipleTicks() { EntityArray entityArray = new EntityArray(3, new ComponentsDefinition()); Assert.IsTrue(entityArray.TryCreateEntity(out Entity newEntity0)); Assert.AreEqual(0, newEntity0.ID); Assert.IsFalse(entityArray.TryGetEntity(0, out _)); Assert.IsFalse(entityArray.TryGetEntity(1, out _)); Assert.IsFalse(entityArray.TryGetEntity(2, out _)); entityArray.EndUpdate(); Assert.IsTrue(entityArray.TryCreateEntity(out Entity newEntity1)); Assert.AreEqual(1, newEntity1.ID); Assert.IsTrue(entityArray.TryGetEntity(0, out Entity fetchedEntity0a)); Assert.AreEqual(newEntity0, fetchedEntity0a); Assert.IsFalse(entityArray.TryGetEntity(1, out _)); Assert.IsFalse(entityArray.TryGetEntity(2, out _)); entityArray.EndUpdate(); Assert.IsTrue(entityArray.TryCreateEntity(out Entity newEntity2)); Assert.AreEqual(2, newEntity2.ID); Assert.IsTrue(entityArray.TryGetEntity(0, out Entity fetchedEntity0b)); Assert.AreEqual(newEntity0, fetchedEntity0b); Assert.IsTrue(entityArray.TryGetEntity(1, out Entity fetchedEntity1b)); Assert.AreEqual(newEntity1, fetchedEntity1b); Assert.IsFalse(entityArray.TryGetEntity(2, out _)); entityArray.EndUpdate(); Assert.IsFalse(entityArray.TryCreateEntity(out Entity noEntityc)); Assert.AreEqual(Entity.NoEntity, noEntityc); Assert.IsTrue(entityArray.TryGetEntity(0, out Entity fetchedEntity0c)); Assert.AreEqual(newEntity0, fetchedEntity0c); Assert.IsTrue(entityArray.TryGetEntity(1, out Entity fetchedEntity1c)); Assert.AreEqual(newEntity1, fetchedEntity1c); Assert.IsTrue(entityArray.TryGetEntity(2, out Entity fetchedEntity2c)); Assert.AreEqual(newEntity2, fetchedEntity2c); entityArray.EndUpdate(); Assert.IsFalse(entityArray.TryCreateEntity(out Entity noEntityd)); Assert.AreEqual(Entity.NoEntity, noEntityd); Assert.IsTrue(entityArray.TryGetEntity(0, out Entity fetchedEntity0d)); Assert.AreEqual(newEntity0, fetchedEntity0d); Assert.IsTrue(entityArray.TryGetEntity(1, out Entity fetchedEntity1d)); Assert.AreEqual(newEntity1, fetchedEntity1d); Assert.IsTrue(entityArray.TryGetEntity(2, out Entity fetchedEntity2d)); Assert.AreEqual(newEntity2, fetchedEntity2d); }
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 EntityCreate() { EntityArray entityArray = new EntityArray(3, new ComponentsDefinition()); Assert.IsTrue(entityArray.TryCreateEntity(out Entity newEntity)); Assert.AreEqual(0, newEntity.ID); Assert.IsFalse(entityArray.TryGetEntity(0, out _)); Assert.IsFalse(entityArray.TryGetEntity(1, out _)); Assert.IsFalse(entityArray.TryGetEntity(2, out _)); entityArray.EndUpdate(); Assert.IsTrue(entityArray.TryGetEntity(0, out Entity fetchedEntity)); Assert.AreEqual(newEntity, fetchedEntity); Assert.IsFalse(entityArray.TryGetEntity(1, out _)); Assert.IsFalse(entityArray.TryGetEntity(2, out _)); }
public void EntityCreate_MultipleFillCapacity() { EntityArray entityArray = new EntityArray(3, new ComponentsDefinition()); Assert.IsTrue(entityArray.TryCreateEntity(out Entity newEntity0)); Assert.AreEqual(0, newEntity0.ID); Assert.IsTrue(entityArray.TryCreateEntity(out Entity newEntity1)); Assert.AreEqual(1, newEntity1.ID); Assert.IsTrue(entityArray.TryCreateEntity(out Entity newEntity2)); Assert.AreEqual(2, newEntity2.ID); Assert.IsFalse(entityArray.TryGetEntity(0, out _)); Assert.IsFalse(entityArray.TryGetEntity(1, out _)); Assert.IsFalse(entityArray.TryGetEntity(2, out _)); entityArray.EndUpdate(); Assert.IsTrue(entityArray.TryGetEntity(0, out Entity fetchedEntity0)); Assert.AreEqual(newEntity0, fetchedEntity0); Assert.IsTrue(entityArray.TryGetEntity(1, out Entity fetchedEntity1)); Assert.AreEqual(newEntity1, fetchedEntity1); Assert.IsTrue(entityArray.TryGetEntity(2, out Entity fetchedEntity2)); Assert.AreEqual(newEntity2, fetchedEntity2); }