3 #include <gtest/gtest.h>
4 #include <Unittests/unittests_common.hh>
13 virtual void SetUp() {
17 virtual void TearDown() {
43 Mesh::VertexHandle vhandle[5];
45 vhandle[0] = mesh_.add_vertex(Mesh::Point(0, 1, 0));
46 vhandle[1] = mesh_.add_vertex(Mesh::Point(1, 0, 0));
47 vhandle[2] = mesh_.add_vertex(Mesh::Point(2, 1, 0));
48 vhandle[3] = mesh_.add_vertex(Mesh::Point(3, 0, 0));
49 vhandle[4] = mesh_.add_vertex(Mesh::Point(4, 1, 0));
52 std::vector<Mesh::VertexHandle> face_vhandles;
54 face_vhandles.push_back(vhandle[0]);
55 face_vhandles.push_back(vhandle[1]);
56 face_vhandles.push_back(vhandle[2]);
57 mesh_.add_face(face_vhandles);
59 face_vhandles.clear();
61 face_vhandles.push_back(vhandle[2]);
62 face_vhandles.push_back(vhandle[1]);
63 face_vhandles.push_back(vhandle[3]);
64 mesh_.add_face(face_vhandles);
66 face_vhandles.clear();
68 face_vhandles.push_back(vhandle[2]);
69 face_vhandles.push_back(vhandle[3]);
70 face_vhandles.push_back(vhandle[4]);
71 mesh_.add_face(face_vhandles);
86 EXPECT_EQ(2, ff_it.handle().idx() ) <<
"Index wrong in FaceFaceIter at initialization";
87 EXPECT_TRUE(ff_it) <<
"Iterator invalid in FaceFaceIter at initialization";
89 EXPECT_EQ(0, ff_it.handle().idx() ) <<
"Index wrong in FaceFaceIter at step 1";
90 EXPECT_TRUE(ff_it) <<
"Iterator invalid in FaceFaceIter at step 1";
92 EXPECT_EQ(2, ff_it.handle().idx() ) <<
"Index wrong in FaceFaceIter at end";
93 EXPECT_FALSE(ff_it) <<
"Iterator invalid in FaceFaceIter at end";
94 EXPECT_TRUE( ff_it == ff_end ) <<
"End iterator for FaceFaceIter not matching";
99 EXPECT_EQ(2, cff_it.handle().idx() ) <<
"Index wrong in ConstFaceFaceIter at initialization";
100 EXPECT_TRUE(cff_it) <<
"Iterator invalid in ConstFaceFaceIter at initialization";
102 EXPECT_EQ(0, cff_it.handle().idx() ) <<
"Index wrong in ConstFaceFaceIter at step 1";
103 EXPECT_TRUE(cff_it) <<
"Iterator invalid in ConstFaceFaceIter at step 1";
105 EXPECT_EQ(2, cff_it.handle().idx() ) <<
"Index wrong in ConstFaceFaceIter at end";
106 EXPECT_FALSE(cff_it) <<
"Iterator invalid in ConstFaceFaceIter at end";
107 EXPECT_TRUE( cff_it == cff_end ) <<
"End iterator for ConstFaceFaceIter not matching";
121 Mesh::VertexHandle vhandle[6];
123 vhandle[0] = mesh_.add_vertex(Mesh::Point(0, 1, 0));
124 vhandle[1] = mesh_.add_vertex(Mesh::Point(1, 0, 0));
125 vhandle[2] = mesh_.add_vertex(Mesh::Point(2, 1, 0));
126 vhandle[3] = mesh_.add_vertex(Mesh::Point(3, 0, 0));
127 vhandle[4] = mesh_.add_vertex(Mesh::Point(4, 1, 0));
128 vhandle[5] = mesh_.add_vertex(Mesh::Point(2,-1, 0));
131 std::vector<Mesh::VertexHandle> face_vhandles;
133 face_vhandles.push_back(vhandle[0]);
134 face_vhandles.push_back(vhandle[1]);
135 face_vhandles.push_back(vhandle[2]);
136 mesh_.add_face(face_vhandles);
138 face_vhandles.clear();
140 face_vhandles.push_back(vhandle[2]);
141 face_vhandles.push_back(vhandle[1]);
142 face_vhandles.push_back(vhandle[3]);
143 mesh_.add_face(face_vhandles);
145 face_vhandles.clear();
147 face_vhandles.push_back(vhandle[2]);
148 face_vhandles.push_back(vhandle[3]);
149 face_vhandles.push_back(vhandle[4]);
150 mesh_.add_face(face_vhandles);
152 face_vhandles.clear();
154 face_vhandles.push_back(vhandle[1]);
155 face_vhandles.push_back(vhandle[5]);
156 face_vhandles.push_back(vhandle[3]);
157 mesh_.add_face(face_vhandles);
177 EXPECT_EQ(2, ff_it.handle().idx() ) <<
"Index wrong in FaceFaceIter at initialization";
178 EXPECT_TRUE(ff_it) <<
"Iterator invalid in FaceFaceIter at initialization";
180 EXPECT_EQ(0, ff_it.handle().idx() ) <<
"Index wrong in FaceFaceIter at step 1";
181 EXPECT_TRUE(ff_it) <<
"Iterator invalid in FaceFaceIter at step 1";
183 EXPECT_EQ(3, ff_it.handle().idx() ) <<
"Index wrong in FaceFaceIter at step 2";
184 EXPECT_TRUE(ff_it) <<
"Iterator invalid in FaceFaceIter at step 2";
186 EXPECT_EQ(2, ff_it.handle().idx() ) <<
"Index wrong in FaceFaceIter at end";
187 EXPECT_FALSE(ff_it) <<
"Iterator invalid in FaceFaceIter at end";
188 EXPECT_TRUE( ff_it == ff_end ) <<
"End iterator for FaceFaceIter not matching";
193 EXPECT_EQ(2, cff_it.handle().idx() ) <<
"Index wrong in ConstFaceFaceIter at initialization";
194 EXPECT_TRUE(cff_it) <<
"Iterator invalid in ConstFaceFaceIter at initialization";
196 EXPECT_EQ(0, cff_it.handle().idx() ) <<
"Index wrong in ConstFaceFaceIter at step 1";
197 EXPECT_TRUE(cff_it) <<
"Iterator invalid in ConstFaceFaceIter at step 1";
199 EXPECT_EQ(3, cff_it.handle().idx() ) <<
"Index wrong in ConstFaceFaceIter at step 2";
200 EXPECT_TRUE(cff_it) <<
"Iterator invalid in ConstFaceFaceIter at step 2";
202 EXPECT_EQ(2, cff_it.handle().idx() ) <<
"Index wrong in ConstFaceFaceIter at end";
203 EXPECT_FALSE(cff_it) <<
"Iterator invalid in ConstFaceFaceIter at end";
204 EXPECT_TRUE( cff_it == cff_end ) <<
"End iterator for ConstFaceFaceIter not matching";
218 Mesh::VertexHandle vhandle[4];
220 vhandle[0] = mesh_.add_vertex(Mesh::Point(0, 0, 0));
221 vhandle[1] = mesh_.add_vertex(Mesh::Point(0, 1, 0));
222 vhandle[2] = mesh_.add_vertex(Mesh::Point(1, 1, 0));
223 vhandle[3] = mesh_.add_vertex(Mesh::Point(1, 0, 0));
227 std::vector<Mesh::VertexHandle> face_vhandles;
229 face_vhandles.push_back(vhandle[0]);
230 face_vhandles.push_back(vhandle[2]);
231 face_vhandles.push_back(vhandle[1]);
232 Mesh::FaceHandle fh1 = mesh_.add_face(face_vhandles);
234 face_vhandles.clear();
236 face_vhandles.push_back(vhandle[0]);
237 face_vhandles.push_back(vhandle[3]);
238 face_vhandles.push_back(vhandle[2]);
239 Mesh::FaceHandle fh2 = mesh_.add_face(face_vhandles);
241 face_vhandles.clear();
252 EXPECT_EQ(4u , mesh_.n_vertices() ) <<
"Wrong number of vertices";
253 EXPECT_EQ(2u , mesh_.n_faces() ) <<
"Wrong number of faces";
260 Mesh::FaceHandle faceHandle1 = mesh_.handle(*face_iter);
261 const Mesh::Face& face1 = mesh_.face(faceHandle1);
263 EXPECT_EQ(1, faceHandle1.idx() ) <<
"Wrong face handle index when getting from iterator via handle";
267 Mesh::FaceHandle fh = mesh_.handle(face);
270 EXPECT_EQ(1, fh.idx() ) <<
"Wrong face handle index when getting from iterator via face";
272 bool correct = (&face == &face1);
275 EXPECT_TRUE(correct) <<
"The faces are different although both ways should give the same one";