diff options
Diffstat (limited to '')
-rw-r--r-- | tests/LoadablePieces/CMakeLists.txt | 3 | ||||
-rw-r--r-- | tests/LoadablePieces/LoadablePieces.cpp | 126 | ||||
-rw-r--r-- | tests/LoadablePieces/Test.cubeset | 5 |
3 files changed, 128 insertions, 6 deletions
diff --git a/tests/LoadablePieces/CMakeLists.txt b/tests/LoadablePieces/CMakeLists.txt index 6e385846f..b71a64474 100644 --- a/tests/LoadablePieces/CMakeLists.txt +++ b/tests/LoadablePieces/CMakeLists.txt @@ -88,7 +88,8 @@ endif() source_group("Shared" FILES ${SHARED_SRCS} ${SHARED_HDRS}) source_group("Sources" FILES ${SRCS}) -add_executable(LoadablePieces ${SRCS} ${SHARED_SRCS} ${SHARED_HDRS}) +source_group("Data files" FILES Test.cubeset Test1.schematic) +add_executable(LoadablePieces ${SRCS} ${SHARED_SRCS} ${SHARED_HDRS} Test.cubeset Test1.schematic) target_link_libraries(LoadablePieces tolualib zlib) add_test(NAME LoadablePieces-test WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} COMMAND LoadablePieces) diff --git a/tests/LoadablePieces/LoadablePieces.cpp b/tests/LoadablePieces/LoadablePieces.cpp index c4c44e3db..58b65464d 100644 --- a/tests/LoadablePieces/LoadablePieces.cpp +++ b/tests/LoadablePieces/LoadablePieces.cpp @@ -17,7 +17,7 @@ -static int DoTest(void) +static int DoLoaderTest(void) { cPrefabPiecePool test; auto res = test.LoadFromFile("Test.cubeset", true); @@ -39,6 +39,117 @@ static int DoTest(void) +static int DoParserTest(void) +{ + // Create one static prefab to test the parser: + static const cPrefab::sDef testPrefabDef = + { + // Size: + 7, 6, 7, // SizeX = 7, SizeY = 6, SizeZ = 7 + + // Hitbox (relative to bounding box): + 0, 0, 0, // MinX, MinY, MinZ + 6, 5, 6, // MaxX, MaxY, MaxZ + + // Block definitions: + ".: 0: 0\n" /* 0 */ + "a:112: 0\n" /* netherbrick */ + "b:113: 0\n" /* netherbrickfence */, + + // Block data: + // Level 1 + "aaaaaaa" + "aaaaaaa" + "aaaaaaa" + "aaaaaaa" + "aaaaaaa" + "aaaaaaa" + "aaaaaaa" + + // Level 2 + "aa...aa" + "a.....a" + "......." + "......." + "......." + "a.....a" + "aa...aa" + + // Level 3 + "aa...aa" + "a.....a" + "......." + "......." + "......." + "a.....a" + "aa...aa" + + // Level 4 + "aa...aa" + "a.....a" + "......." + "......." + "......." + "a.....a" + "aa...aa" + + // Level 5 + "aabbbaa" + "a.....a" + "b.....b" + "b.....b" + "b.....b" + "a.....a" + "aabbbaa" + + // Level 6 + "aaaaaaa" + "a.....a" + "a.....a" + "a.....a" + "a.....a" + "a.....a" + "aaaaaaa", + + // Connections: + "0: 0, 3, 2: 4\n" + "0: 2, 3, 0: 2\n", + + // AllowedRotations: + 7, /* 1, 2, 3 CCW rotations */ + + // Merge strategy: + cBlockArea::msImprint, + + // ExtendFloorStrategy: + cPrefab::efsNone, + + // DefaultWeight: + 10, + + // DepthWeight: + "", + + // AddWeightIfSame: + 1000, + + // MoveToGround: + false, + }; + + cPrefab testPrefab(testPrefabDef); + cPiece & prefabAsPiece(testPrefab); // GetConnectors() is private in cPrefab, need to cast to parent cPiece where it is public + if (prefabAsPiece.GetConnectors().size() != 2) + { + LOGWARNING("Piece parsing failed, connectors not parsed properly. Expected 2 connectors, got %u", static_cast<unsigned>(prefabAsPiece.GetConnectors().size())); + } + return 0; +} + + + + + int main(int argc, char * argv[]) { LOGD("Test started"); @@ -48,9 +159,18 @@ int main(int argc, char * argv[]) GetCurrentFolder(folder, sizeof(folder)); LOG("Running cPrefabPiecePool test from folder \"%s\".", folder); - // Run the test: - int res = DoTest(); + // Run the Loader test: + int res = DoLoaderTest(); LOG("cPrefabPiecePool loading test done: %s", (res == 0) ? "success" : "failure"); + if (res != 0) + { + return res; + } + + // Run the Parser test: + res = DoParserTest(); + LOG("cPrefab parser test done: %s", (res == 0) ? "success" : "failure"); + return res; } diff --git a/tests/LoadablePieces/Test.cubeset b/tests/LoadablePieces/Test.cubeset index c1bdc9844..956e6684e 100644 --- a/tests/LoadablePieces/Test.cubeset +++ b/tests/LoadablePieces/Test.cubeset @@ -106,9 +106,10 @@ Cubeset = ["MergeStrategy"] = "msSpongePrint", ["IsStarting"] = "1", ["DepthWeight"] = "", - ["ShouldExpandFloor"] = "1", + ["ExpandFloorStrategy"] = "None", ["MoveToGround"] = "1", ["AddWeightIfSame"] = "0", + ["VerticalStrategy"] = "Fixed|150", }, }, @@ -141,7 +142,7 @@ Cubeset = ["MergeStrategy"] = "msSpongePrint", ["IsStarting"] = "0", ["DepthWeight"] = "", - ["ShouldExpandFloor"] = "1", + ["ExpandFloorStrategy"] = "None", ["MoveToGround"] = "0", ["AddWeightIfSame"] = "0", }, |