MCPcopy Create free account
hub / github.com/MeshInspector/MeshLib / TEST

Function TEST

source/MRTest/MRMeshLoadSaveTest.cpp:10–77  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

8{
9
10TEST(MRMesh, LoadSave)
11{
12 std::string file =
13 "OFF\n"
14 "5 6 0\n"
15
16 "0 0 1\n"
17 "1 0 0\n"
18 "0 1 0\n"
19 "-1 0 0\n"
20 "0 -1 0\n"
21
22 "3 0 1 2\n"
23 "3 0 2 3\n"
24 "3 0 3 4\n"
25 "3 0 4 1\n"
26 "3 1 3 2\n"
27 "3 1 4 3\n";
28
29 std::istringstream in( file );
30
31 auto loadRes = MeshLoad::fromOff( in );
32 EXPECT_TRUE( loadRes.has_value() );
33
34 EXPECT_EQ( loadRes->points.size(), 5 );
35 EXPECT_EQ( loadRes->topology.numValidVerts(), 5 );
36 EXPECT_EQ( loadRes->topology.numValidFaces(), 6 );
37
38 auto box = loadRes->computeBoundingBox();
39 EXPECT_EQ( box, Box3f( Vector3f(-1, -1, 0), Vector3f(1, 1, 1) ) );
40 EXPECT_TRUE ( box.contains( Vector3f(0, 0, 0) ) );
41 EXPECT_FALSE( box.contains( Vector3f(-1, -1, -1) ) );
42
43 std::stringstream ss;
44 auto saveRes = MeshSave::toOff( *loadRes, ss );
45 EXPECT_TRUE( saveRes.has_value() );
46
47 loadRes = MeshLoad::fromOff( ss );
48 EXPECT_TRUE( loadRes.has_value() );
49
50 EXPECT_EQ( loadRes->points.size(), 5 );
51 EXPECT_EQ( loadRes->topology.numValidVerts(), 5 );
52 EXPECT_EQ( loadRes->topology.numValidFaces(), 6 );
53
54 // save/load to internal format
55 ss = std::stringstream{};
56 saveRes = MeshSave::toMrmesh( *loadRes, ss );
57 EXPECT_TRUE( saveRes.has_value() );
58
59 loadRes = MeshLoad::fromMrmesh( ss );
60 EXPECT_TRUE( loadRes.has_value() );
61
62 EXPECT_EQ( loadRes->points.size(), 5 );
63 EXPECT_EQ( loadRes->topology.numValidVerts(), 5 );
64 EXPECT_EQ( loadRes->topology.numValidFaces(), 6 );
65
66 // save/load to binary STL format
67 ss = std::stringstream{};

Callers

nothing calls this directly

Calls 11

fromOffFunction · 0.85
toOffFunction · 0.85
toMrmeshFunction · 0.85
fromMrmeshFunction · 0.85
toBinaryStlFunction · 0.85
fromBinaryStlFunction · 0.85
numValidFacesMethod · 0.80
sizeMethod · 0.45
numValidVertsMethod · 0.45
computeBoundingBoxMethod · 0.45
containsMethod · 0.45

Tested by

no test coverage detected