summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/LoadablePieces/CMakeLists.txt3
-rw-r--r--tests/LoadablePieces/LoadablePieces.cpp126
-rw-r--r--tests/LoadablePieces/Test.cubeset5
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",
},