FreeCAD

Форк
0
98 строк · 2.8 Кб
1
#include <gtest/gtest.h>
2
#include <Mod/Mesh/App/Mesh.h>
3
#include <Mod/Mesh/App/Core/Grid.h>
4

5
// NOLINTBEGIN(cppcoreguidelines-*,readability-*)
6
TEST(MeshTest, TestDefault)
7
{
8
    MeshCore::MeshKernel kernel;
9
    Base::Vector3f p1 {0, 0, 0};
10
    Base::Vector3f p2 {0, 0, 1};
11
    Base::Vector3f p3 {0, 1, 0};
12
    kernel.AddFacet(MeshCore::MeshGeomFacet(p1, p2, p3));
13

14
    EXPECT_EQ(kernel.CountPoints(), 3);
15
    EXPECT_EQ(kernel.CountEdges(), 3);
16
    EXPECT_EQ(kernel.CountFacets(), 1);
17
}
18

19
TEST(MeshTest, TestGrid1OfPlanarMesh)
20
{
21
    MeshCore::MeshKernel kernel;
22
    Base::Vector3f p1 {0, 0, 0};
23
    Base::Vector3f p2 {1, 0, 0};
24
    Base::Vector3f p3 {0, 1, 0};
25
    Base::Vector3f p4 {1, 1, 0};
26
    kernel.AddFacet(MeshCore::MeshGeomFacet(p1, p2, p3));
27
    kernel.AddFacet(MeshCore::MeshGeomFacet(p3, p2, p4));
28

29
    MeshCore::MeshFacetGrid grid(kernel, 10);
30
    unsigned long countX {};
31
    unsigned long countY {};
32
    unsigned long countZ {};
33
    grid.GetCtGrids(countX, countY, countZ);
34
    EXPECT_EQ(countX, 1);
35
    EXPECT_EQ(countY, 1);
36
    EXPECT_EQ(countZ, 1);
37
}
38

39
TEST(MeshTest, TestGrid2OfPlanarMesh)
40
{
41
    MeshCore::MeshKernel kernel;
42
    Base::Vector3f p1 {0, 0, 0};
43
    Base::Vector3f p2 {1, 0, 0};
44
    Base::Vector3f p3 {0, 1, 0};
45
    Base::Vector3f p4 {1, 1, 0};
46
    kernel.AddFacet(MeshCore::MeshGeomFacet(p1, p2, p3));
47
    kernel.AddFacet(MeshCore::MeshGeomFacet(p3, p2, p4));
48

49
    MeshCore::MeshFacetGrid grid(kernel);
50
    unsigned long countX {};
51
    unsigned long countY {};
52
    unsigned long countZ {};
53
    grid.GetCtGrids(countX, countY, countZ);
54
    EXPECT_EQ(countX, 1);
55
    EXPECT_EQ(countY, 1);
56
    EXPECT_EQ(countZ, 1);
57
}
58

59
TEST(MeshTest, TestGrid1OfAlmostPlanarMesh)
60
{
61
    MeshCore::MeshKernel kernel;
62
    Base::Vector3f p1 {0, 0, 0};
63
    Base::Vector3f p2 {1, 0, 0};
64
    Base::Vector3f p3 {0, 1, 0};
65
    Base::Vector3f p4 {1, 1, 1.0e-18F};
66
    kernel.AddFacet(MeshCore::MeshGeomFacet(p1, p2, p3));
67
    kernel.AddFacet(MeshCore::MeshGeomFacet(p3, p2, p4));
68

69
    MeshCore::MeshFacetGrid grid(kernel, 10);
70
    unsigned long countX {};
71
    unsigned long countY {};
72
    unsigned long countZ {};
73
    grid.GetCtGrids(countX, countY, countZ);
74
    EXPECT_EQ(countX, 1);
75
    EXPECT_EQ(countY, 1);
76
    EXPECT_EQ(countZ, 1);
77
}
78

79
TEST(MeshTest, TestGrid2OfAlmostPlanarMesh)
80
{
81
    MeshCore::MeshKernel kernel;
82
    Base::Vector3f p1 {0, 0, 0};
83
    Base::Vector3f p2 {1, 0, 0};
84
    Base::Vector3f p3 {0, 1, 0};
85
    Base::Vector3f p4 {1, 1, 1.0e-18F};
86
    kernel.AddFacet(MeshCore::MeshGeomFacet(p1, p2, p3));
87
    kernel.AddFacet(MeshCore::MeshGeomFacet(p3, p2, p4));
88

89
    MeshCore::MeshFacetGrid grid(kernel);
90
    unsigned long countX {};
91
    unsigned long countY {};
92
    unsigned long countZ {};
93
    grid.GetCtGrids(countX, countY, countZ);
94
    EXPECT_EQ(countX, 1);
95
    EXPECT_EQ(countY, 1);
96
    EXPECT_EQ(countZ, 1);
97
}
98
// NOLINTEND(cppcoreguidelines-*,readability-*)
99

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.