diff --git a/data/tests/mesh.3mf b/data/tests/mesh.3mf new file mode 100644 index 0000000000..be9b26e41b Binary files /dev/null and b/data/tests/mesh.3mf differ diff --git a/tests/src/Mod/Mesh/App/CMakeLists.txt b/tests/src/Mod/Mesh/App/CMakeLists.txt index a0ede073d6..038682f4bb 100644 --- a/tests/src/Mod/Mesh/App/CMakeLists.txt +++ b/tests/src/Mod/Mesh/App/CMakeLists.txt @@ -1,8 +1,11 @@ +target_compile_definitions(Mesh_tests_run PRIVATE DATADIR="${CMAKE_SOURCE_DIR}/data") + target_sources( Mesh_tests_run PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/Core/KDTree.cpp ${CMAKE_CURRENT_SOURCE_DIR}/Exporter.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/Importer.cpp ${CMAKE_CURRENT_SOURCE_DIR}/Mesh.cpp ${CMAKE_CURRENT_SOURCE_DIR}/MeshFeature.cpp ) diff --git a/tests/src/Mod/Mesh/App/Importer.cpp b/tests/src/Mod/Mesh/App/Importer.cpp new file mode 100644 index 0000000000..fe6db60559 --- /dev/null +++ b/tests/src/Mod/Mesh/App/Importer.cpp @@ -0,0 +1,30 @@ +#include +#include +#include +#include + +// NOLINTBEGIN(cppcoreguidelines-*,readability-*) +TEST(ImporterTest, Test3MF) +{ + std::string file(DATADIR); + file.append("/tests/mesh.3mf"); + + MeshCore::Reader3MF reader(file); + EXPECT_EQ(reader.Load(), true); + + std::vector ids = reader.GetMeshIds(); + std::sort(ids.begin(), ids.end()); + + EXPECT_EQ(ids.size(), 2); + + const MeshCore::MeshKernel& mesh1 = reader.GetMesh(ids[0]); + EXPECT_EQ(mesh1.CountPoints(), 8); + EXPECT_EQ(mesh1.CountEdges(), 18); + EXPECT_EQ(mesh1.CountFacets(), 12); + + const MeshCore::MeshKernel& mesh2 = reader.GetMesh(ids[1]); + EXPECT_EQ(mesh2.CountPoints(), 652); + EXPECT_EQ(mesh2.CountEdges(), 1950); + EXPECT_EQ(mesh2.CountFacets(), 1300); +} +// NOLINTEND(cppcoreguidelines-*,readability-*)