diff --git a/Tests/FirebladeECSTests/Generated/FamilyTests.generated.swift b/Tests/FirebladeECSTests/Generated/FamilyTests.generated.swift index a00cad9..2b6a2a8 100644 --- a/Tests/FirebladeECSTests/Generated/FamilyTests.generated.swift +++ b/Tests/FirebladeECSTests/Generated/FamilyTests.generated.swift @@ -25,6 +25,20 @@ final class Family1Tests: XCTestCase { XCTAssertEqual(entity[\Comp1.value], 0) } + func testMemberCreationBuilder() { + let family = nexus.family(requires: Comp1.self) + XCTAssertTrue(family.isEmpty) + let entity = family.createMember { + Comp1(0) + } + XCTAssertEqual(family.count, 1) + XCTAssertEqual(entity.numComponents, 1) + XCTAssertEqual(nexus.numFamilies, 1) + XCTAssertEqual(nexus.numEntities, 1) + XCTAssertEqual(nexus.numComponents, 1) + XCTAssertEqual(entity[\Comp1.value], 0) + } + func testComponentIteration() { let family = nexus.family(requires: Comp1.self) XCTAssertTrue(family.isEmpty) @@ -157,6 +171,22 @@ final class Family2Tests: XCTestCase { XCTAssertEqual(entity[\Comp2.value], 1) } + func testMemberCreationBuilder() { + let family = nexus.family(requiresAll: Comp1.self, Comp2.self) + XCTAssertTrue(family.isEmpty) + let entity = family.createMember { + Comp1(0) + Comp2(1) + } + XCTAssertEqual(family.count, 1) + XCTAssertEqual(entity.numComponents, 2) + XCTAssertEqual(nexus.numFamilies, 1) + XCTAssertEqual(nexus.numEntities, 1) + XCTAssertEqual(nexus.numComponents, 2) + XCTAssertEqual(entity[\Comp1.value], 0) + XCTAssertEqual(entity[\Comp2.value], 1) + } + func testComponentIteration() { let family = nexus.family(requiresAll: Comp1.self, Comp2.self) XCTAssertTrue(family.isEmpty) @@ -295,6 +325,24 @@ final class Family3Tests: XCTestCase { XCTAssertEqual(entity[\Comp3.value], 2) } + func testMemberCreationBuilder() { + let family = nexus.family(requiresAll: Comp1.self, Comp2.self, Comp3.self) + XCTAssertTrue(family.isEmpty) + let entity = family.createMember { + Comp1(0) + Comp2(1) + Comp3(2) + } + XCTAssertEqual(family.count, 1) + XCTAssertEqual(entity.numComponents, 3) + XCTAssertEqual(nexus.numFamilies, 1) + XCTAssertEqual(nexus.numEntities, 1) + XCTAssertEqual(nexus.numComponents, 3) + XCTAssertEqual(entity[\Comp1.value], 0) + XCTAssertEqual(entity[\Comp2.value], 1) + XCTAssertEqual(entity[\Comp3.value], 2) + } + func testComponentIteration() { let family = nexus.family(requiresAll: Comp1.self, Comp2.self, Comp3.self) XCTAssertTrue(family.isEmpty) @@ -439,6 +487,26 @@ final class Family4Tests: XCTestCase { XCTAssertEqual(entity[\Comp4.value], 3) } + func testMemberCreationBuilder() { + let family = nexus.family(requiresAll: Comp1.self, Comp2.self, Comp3.self, Comp4.self) + XCTAssertTrue(family.isEmpty) + let entity = family.createMember { + Comp1(0) + Comp2(1) + Comp3(2) + Comp4(3) + } + XCTAssertEqual(family.count, 1) + XCTAssertEqual(entity.numComponents, 4) + XCTAssertEqual(nexus.numFamilies, 1) + XCTAssertEqual(nexus.numEntities, 1) + XCTAssertEqual(nexus.numComponents, 4) + XCTAssertEqual(entity[\Comp1.value], 0) + XCTAssertEqual(entity[\Comp2.value], 1) + XCTAssertEqual(entity[\Comp3.value], 2) + XCTAssertEqual(entity[\Comp4.value], 3) + } + func testComponentIteration() { let family = nexus.family(requiresAll: Comp1.self, Comp2.self, Comp3.self, Comp4.self) XCTAssertTrue(family.isEmpty) @@ -589,6 +657,28 @@ final class Family5Tests: XCTestCase { XCTAssertEqual(entity[\Comp5.value], 4) } + func testMemberCreationBuilder() { + let family = nexus.family(requiresAll: Comp1.self, Comp2.self, Comp3.self, Comp4.self, Comp5.self) + XCTAssertTrue(family.isEmpty) + let entity = family.createMember { + Comp1(0) + Comp2(1) + Comp3(2) + Comp4(3) + Comp5(4) + } + XCTAssertEqual(family.count, 1) + XCTAssertEqual(entity.numComponents, 5) + XCTAssertEqual(nexus.numFamilies, 1) + XCTAssertEqual(nexus.numEntities, 1) + XCTAssertEqual(nexus.numComponents, 5) + XCTAssertEqual(entity[\Comp1.value], 0) + XCTAssertEqual(entity[\Comp2.value], 1) + XCTAssertEqual(entity[\Comp3.value], 2) + XCTAssertEqual(entity[\Comp4.value], 3) + XCTAssertEqual(entity[\Comp5.value], 4) + } + func testComponentIteration() { let family = nexus.family(requiresAll: Comp1.self, Comp2.self, Comp3.self, Comp4.self, Comp5.self) XCTAssertTrue(family.isEmpty) @@ -745,6 +835,30 @@ final class Family6Tests: XCTestCase { XCTAssertEqual(entity[\Comp6.value], 5) } + func testMemberCreationBuilder() { + let family = nexus.family(requiresAll: Comp1.self, Comp2.self, Comp3.self, Comp4.self, Comp5.self, Comp6.self) + XCTAssertTrue(family.isEmpty) + let entity = family.createMember { + Comp1(0) + Comp2(1) + Comp3(2) + Comp4(3) + Comp5(4) + Comp6(5) + } + XCTAssertEqual(family.count, 1) + XCTAssertEqual(entity.numComponents, 6) + XCTAssertEqual(nexus.numFamilies, 1) + XCTAssertEqual(nexus.numEntities, 1) + XCTAssertEqual(nexus.numComponents, 6) + XCTAssertEqual(entity[\Comp1.value], 0) + XCTAssertEqual(entity[\Comp2.value], 1) + XCTAssertEqual(entity[\Comp3.value], 2) + XCTAssertEqual(entity[\Comp4.value], 3) + XCTAssertEqual(entity[\Comp5.value], 4) + XCTAssertEqual(entity[\Comp6.value], 5) + } + func testComponentIteration() { let family = nexus.family(requiresAll: Comp1.self, Comp2.self, Comp3.self, Comp4.self, Comp5.self, Comp6.self) XCTAssertTrue(family.isEmpty) @@ -907,6 +1021,32 @@ final class Family7Tests: XCTestCase { XCTAssertEqual(entity[\Comp7.value], 6) } + func testMemberCreationBuilder() { + let family = nexus.family(requiresAll: Comp1.self, Comp2.self, Comp3.self, Comp4.self, Comp5.self, Comp6.self, Comp7.self) + XCTAssertTrue(family.isEmpty) + let entity = family.createMember { + Comp1(0) + Comp2(1) + Comp3(2) + Comp4(3) + Comp5(4) + Comp6(5) + Comp7(6) + } + XCTAssertEqual(family.count, 1) + XCTAssertEqual(entity.numComponents, 7) + XCTAssertEqual(nexus.numFamilies, 1) + XCTAssertEqual(nexus.numEntities, 1) + XCTAssertEqual(nexus.numComponents, 7) + XCTAssertEqual(entity[\Comp1.value], 0) + XCTAssertEqual(entity[\Comp2.value], 1) + XCTAssertEqual(entity[\Comp3.value], 2) + XCTAssertEqual(entity[\Comp4.value], 3) + XCTAssertEqual(entity[\Comp5.value], 4) + XCTAssertEqual(entity[\Comp6.value], 5) + XCTAssertEqual(entity[\Comp7.value], 6) + } + func testComponentIteration() { let family = nexus.family(requiresAll: Comp1.self, Comp2.self, Comp3.self, Comp4.self, Comp5.self, Comp6.self, Comp7.self) XCTAssertTrue(family.isEmpty) @@ -1075,6 +1215,34 @@ final class Family8Tests: XCTestCase { XCTAssertEqual(entity[\Comp8.value], 7) } + func testMemberCreationBuilder() { + let family = nexus.family(requiresAll: Comp1.self, Comp2.self, Comp3.self, Comp4.self, Comp5.self, Comp6.self, Comp7.self, Comp8.self) + XCTAssertTrue(family.isEmpty) + let entity = family.createMember { + Comp1(0) + Comp2(1) + Comp3(2) + Comp4(3) + Comp5(4) + Comp6(5) + Comp7(6) + Comp8(7) + } + XCTAssertEqual(family.count, 1) + XCTAssertEqual(entity.numComponents, 8) + XCTAssertEqual(nexus.numFamilies, 1) + XCTAssertEqual(nexus.numEntities, 1) + XCTAssertEqual(nexus.numComponents, 8) + XCTAssertEqual(entity[\Comp1.value], 0) + XCTAssertEqual(entity[\Comp2.value], 1) + XCTAssertEqual(entity[\Comp3.value], 2) + XCTAssertEqual(entity[\Comp4.value], 3) + XCTAssertEqual(entity[\Comp5.value], 4) + XCTAssertEqual(entity[\Comp6.value], 5) + XCTAssertEqual(entity[\Comp7.value], 6) + XCTAssertEqual(entity[\Comp8.value], 7) + } + func testComponentIteration() { let family = nexus.family(requiresAll: Comp1.self, Comp2.self, Comp3.self, Comp4.self, Comp5.self, Comp6.self, Comp7.self, Comp8.self) XCTAssertTrue(family.isEmpty) diff --git a/Tests/FirebladeECSTests/XCTestManifests.swift b/Tests/FirebladeECSTests/XCTestManifests.swift index ea23498..26801e8 100644 --- a/Tests/FirebladeECSTests/XCTestManifests.swift +++ b/Tests/FirebladeECSTests/XCTestManifests.swift @@ -57,7 +57,8 @@ extension Family1Tests { ("testFamilyDecoding", testFamilyDecoding), ("testFamilyEncoding", testFamilyEncoding), ("testFamilyFailDecoding", testFamilyFailDecoding), - ("testMemberCreation", testMemberCreation) + ("testMemberCreation", testMemberCreation), + ("testMemberCreationBuilder", testMemberCreationBuilder) ] } @@ -72,7 +73,8 @@ extension Family2Tests { ("testFamilyDecoding", testFamilyDecoding), ("testFamilyEncoding", testFamilyEncoding), ("testFamilyFailDecoding", testFamilyFailDecoding), - ("testMemberCreation", testMemberCreation) + ("testMemberCreation", testMemberCreation), + ("testMemberCreationBuilder", testMemberCreationBuilder) ] } @@ -87,7 +89,8 @@ extension Family3Tests { ("testFamilyDecoding", testFamilyDecoding), ("testFamilyEncoding", testFamilyEncoding), ("testFamilyFailDecoding", testFamilyFailDecoding), - ("testMemberCreation", testMemberCreation) + ("testMemberCreation", testMemberCreation), + ("testMemberCreationBuilder", testMemberCreationBuilder) ] } @@ -102,7 +105,8 @@ extension Family4Tests { ("testFamilyDecoding", testFamilyDecoding), ("testFamilyEncoding", testFamilyEncoding), ("testFamilyFailDecoding", testFamilyFailDecoding), - ("testMemberCreation", testMemberCreation) + ("testMemberCreation", testMemberCreation), + ("testMemberCreationBuilder", testMemberCreationBuilder) ] } @@ -117,7 +121,8 @@ extension Family5Tests { ("testFamilyDecoding", testFamilyDecoding), ("testFamilyEncoding", testFamilyEncoding), ("testFamilyFailDecoding", testFamilyFailDecoding), - ("testMemberCreation", testMemberCreation) + ("testMemberCreation", testMemberCreation), + ("testMemberCreationBuilder", testMemberCreationBuilder) ] } @@ -132,7 +137,8 @@ extension Family6Tests { ("testFamilyDecoding", testFamilyDecoding), ("testFamilyEncoding", testFamilyEncoding), ("testFamilyFailDecoding", testFamilyFailDecoding), - ("testMemberCreation", testMemberCreation) + ("testMemberCreation", testMemberCreation), + ("testMemberCreationBuilder", testMemberCreationBuilder) ] } @@ -147,7 +153,8 @@ extension Family7Tests { ("testFamilyDecoding", testFamilyDecoding), ("testFamilyEncoding", testFamilyEncoding), ("testFamilyFailDecoding", testFamilyFailDecoding), - ("testMemberCreation", testMemberCreation) + ("testMemberCreation", testMemberCreation), + ("testMemberCreationBuilder", testMemberCreationBuilder) ] } @@ -162,7 +169,8 @@ extension Family8Tests { ("testFamilyDecoding", testFamilyDecoding), ("testFamilyEncoding", testFamilyEncoding), ("testFamilyFailDecoding", testFamilyFailDecoding), - ("testMemberCreation", testMemberCreation) + ("testMemberCreation", testMemberCreation), + ("testMemberCreationBuilder", testMemberCreationBuilder) ] }