diff --git a/Sources/FirebladeECS/EntityIdentifierGenerator.swift b/Sources/FirebladeECS/EntityIdentifierGenerator.swift index 0e805a2..5cd9ee6 100644 --- a/Sources/FirebladeECS/EntityIdentifierGenerator.swift +++ b/Sources/FirebladeECS/EntityIdentifierGenerator.swift @@ -12,8 +12,8 @@ internal final class EntityIdentifierGenerator { stack.count } - init() { - stack = [0] + convenience init() { + self.init([EntityIdentifier(0)]) } init(_ entityIds: [EntityIdentifier]) { diff --git a/Tests/FirebladeECSTests/EntityTests.swift b/Tests/FirebladeECSTests/EntityTests.swift index e6ec504..878e173 100644 --- a/Tests/FirebladeECSTests/EntityTests.swift +++ b/Tests/FirebladeECSTests/EntityTests.swift @@ -31,8 +31,7 @@ class EntityTests: XCTestCase { let entity = nexus.createEntity() entity.assign(pos) - entity.assign(name) - entity.assign(vel) + entity.assign(name, vel) let expectedComponents: [Component] = [pos, name, vel] let allComponents = entity.allComponents() @@ -40,6 +39,25 @@ class EntityTests: XCTestCase { XCTAssertTrue(allComponents.elementsEqualUnordered(expectedComponents) { $0 === $1 }) } + func testEntityEquality() { + let nexus = Nexus() + + let entityA = nexus.createEntity() + let entityB = nexus.createEntity() + + XCTAssertEqual(entityA, entityA) + XCTAssertNotEqual(entityA, entityB) + } + + func testRemoveAllComponentsFromEntity() { + let nexus = Nexus() + + let entity = nexus.createEntity(with: Position(x: 1, y: 2), Name(name: "MyEntity")) + XCTAssertEqual(entity.numComponents, 2) + entity.removeAll() + XCTAssertEqual(entity.numComponents, 0) + } + func testEntityIdGenerator() { let generator = EntityIdentifierGenerator() diff --git a/Tests/FirebladeECSTests/XCTestManifests.swift b/Tests/FirebladeECSTests/XCTestManifests.swift index 45c5b90..600fc6b 100644 --- a/Tests/FirebladeECSTests/XCTestManifests.swift +++ b/Tests/FirebladeECSTests/XCTestManifests.swift @@ -26,8 +26,10 @@ extension EntityTests { // to regenerate. static let __allTests__EntityTests = [ ("testAllComponentsOfEntity", testAllComponentsOfEntity), + ("testEntityEquality", testEntityEquality), ("testEntityIdentifierAndIndex", testEntityIdentifierAndIndex), - ("testEntityIdGenerator", testEntityIdGenerator) + ("testEntityIdGenerator", testEntityIdGenerator), + ("testRemoveAllComponentsFromEntity", testRemoveAllComponentsFromEntity) ] }