From 67ba197d9c293edb75b726de6663dbbf5aba2f2b Mon Sep 17 00:00:00 2001 From: wmayer Date: Fri, 29 Mar 2024 16:54:01 +0100 Subject: [PATCH] Test: add unit tests for mesh grid creation --- tests/src/Mod/Mesh/App/Mesh.cpp | 81 +++++++++++++++++++++++++++++++++ 1 file changed, 81 insertions(+) diff --git a/tests/src/Mod/Mesh/App/Mesh.cpp b/tests/src/Mod/Mesh/App/Mesh.cpp index 045ffadd52..af81caf393 100644 --- a/tests/src/Mod/Mesh/App/Mesh.cpp +++ b/tests/src/Mod/Mesh/App/Mesh.cpp @@ -1,5 +1,6 @@ #include "gtest/gtest.h" #include +#include // NOLINTBEGIN(cppcoreguidelines-*,readability-*) TEST(MeshTest, TestDefault) @@ -14,4 +15,84 @@ TEST(MeshTest, TestDefault) EXPECT_EQ(kernel.CountEdges(), 3); EXPECT_EQ(kernel.CountFacets(), 1); } + +TEST(MeshTest, TestGrid1OfPlanarMesh) +{ + MeshCore::MeshKernel kernel; + Base::Vector3f p1 {0, 0, 0}; + Base::Vector3f p2 {1, 0, 0}; + Base::Vector3f p3 {0, 1, 0}; + Base::Vector3f p4 {1, 1, 0}; + kernel.AddFacet(MeshCore::MeshGeomFacet(p1, p2, p3)); + kernel.AddFacet(MeshCore::MeshGeomFacet(p3, p2, p4)); + + MeshCore::MeshFacetGrid grid(kernel, 10); + unsigned long countX {}; + unsigned long countY {}; + unsigned long countZ {}; + grid.GetCtGrids(countX, countY, countZ); + EXPECT_EQ(countX, 1); + EXPECT_EQ(countY, 1); + EXPECT_EQ(countZ, 1); +} + +TEST(MeshTest, TestGrid2OfPlanarMesh) +{ + MeshCore::MeshKernel kernel; + Base::Vector3f p1 {0, 0, 0}; + Base::Vector3f p2 {1, 0, 0}; + Base::Vector3f p3 {0, 1, 0}; + Base::Vector3f p4 {1, 1, 0}; + kernel.AddFacet(MeshCore::MeshGeomFacet(p1, p2, p3)); + kernel.AddFacet(MeshCore::MeshGeomFacet(p3, p2, p4)); + + MeshCore::MeshFacetGrid grid(kernel); + unsigned long countX {}; + unsigned long countY {}; + unsigned long countZ {}; + grid.GetCtGrids(countX, countY, countZ); + EXPECT_EQ(countX, 1); + EXPECT_EQ(countY, 1); + EXPECT_EQ(countZ, 1); +} + +TEST(MeshTest, TestGrid1OfAlmostPlanarMesh) +{ + MeshCore::MeshKernel kernel; + Base::Vector3f p1 {0, 0, 0}; + Base::Vector3f p2 {1, 0, 0}; + Base::Vector3f p3 {0, 1, 0}; + Base::Vector3f p4 {1, 1, 1.0e-18F}; + kernel.AddFacet(MeshCore::MeshGeomFacet(p1, p2, p3)); + kernel.AddFacet(MeshCore::MeshGeomFacet(p3, p2, p4)); + + MeshCore::MeshFacetGrid grid(kernel, 10); + unsigned long countX {}; + unsigned long countY {}; + unsigned long countZ {}; + grid.GetCtGrids(countX, countY, countZ); + EXPECT_EQ(countX, 1); + EXPECT_EQ(countY, 1); + EXPECT_EQ(countZ, 1); +} + +TEST(MeshTest, TestGrid2OfAlmostPlanarMesh) +{ + MeshCore::MeshKernel kernel; + Base::Vector3f p1 {0, 0, 0}; + Base::Vector3f p2 {1, 0, 0}; + Base::Vector3f p3 {0, 1, 0}; + Base::Vector3f p4 {1, 1, 1.0e-18F}; + kernel.AddFacet(MeshCore::MeshGeomFacet(p1, p2, p3)); + kernel.AddFacet(MeshCore::MeshGeomFacet(p3, p2, p4)); + + MeshCore::MeshFacetGrid grid(kernel); + unsigned long countX {}; + unsigned long countY {}; + unsigned long countZ {}; + grid.GetCtGrids(countX, countY, countZ); + EXPECT_EQ(countX, 1); + EXPECT_EQ(countY, 1); + EXPECT_EQ(countZ, 1); +} // NOLINTEND(cppcoreguidelines-*,readability-*)