1 #ifndef INCLUDE_UNITTESTS_TRIMESH_CIRCULATORS_HH
2 #define INCLUDE_UNITTESTS_TRIMESH_CIRCULATORS_HH
4 #include <gtest/gtest.h>
5 #include <Unittests/unittests_common.hh>
14 virtual void SetUp() {
18 virtual void TearDown() {
45 Mesh::VertexHandle vhandle[5];
47 vhandle[0] = mesh_.add_vertex(Mesh::Point(0, 1, 0));
48 vhandle[1] = mesh_.add_vertex(Mesh::Point(1, 0, 0));
49 vhandle[2] = mesh_.add_vertex(Mesh::Point(2, 1, 0));
50 vhandle[3] = mesh_.add_vertex(Mesh::Point(0,-1, 0));
51 vhandle[4] = mesh_.add_vertex(Mesh::Point(2,-1, 0));
54 std::vector<Mesh::VertexHandle> face_vhandles;
56 face_vhandles.push_back(vhandle[0]);
57 face_vhandles.push_back(vhandle[1]);
58 face_vhandles.push_back(vhandle[2]);
59 mesh_.add_face(face_vhandles);
61 face_vhandles.clear();
63 face_vhandles.push_back(vhandle[1]);
64 face_vhandles.push_back(vhandle[3]);
65 face_vhandles.push_back(vhandle[4]);
66 mesh_.add_face(face_vhandles);
80 EXPECT_EQ(0, vf_it.handle().idx() ) <<
"Index wrong in VertexFaceIter at initialization";
81 EXPECT_TRUE(vf_it) <<
"Iterator invalid in VertexFaceIter at initialization";
83 EXPECT_EQ(1, vf_it.handle().idx() ) <<
"Index wrong in VertexFaceIter at step 1";
84 EXPECT_TRUE(vf_it) <<
"Iterator invalid in VertexFaceIter at step 1";
86 EXPECT_EQ(-1, vf_it.handle().idx() ) <<
"Index wrong in VertexFaceIter at end";
87 EXPECT_FALSE(vf_it) <<
"Iterator not invalid in VertexFaceIter at end";
88 EXPECT_TRUE( vf_it == vf_end ) <<
"End iterator for VertexFaceIter not matching";
93 EXPECT_EQ(0, cvf_it.handle().idx() ) <<
"Index wrong in ConstVertexFaceIter at initialization";
94 EXPECT_TRUE(cvf_it) <<
"Iterator invalid in ConstVertexFaceIter at initialization";
96 EXPECT_EQ(1, cvf_it.handle().idx() ) <<
"Index wrong in ConstVertexFaceIter at step one";
97 EXPECT_TRUE(cvf_it) <<
"Iterator invalid in ConstVertexFaceIter at step one";
99 EXPECT_EQ(-1, cvf_it.handle().idx() ) <<
"Index wrong in ConstVertexFaceIter at end";
100 EXPECT_FALSE(cvf_it) <<
"Iterator not invalid in ConstVertexFaceIter at end";
101 EXPECT_TRUE( cvf_it == cvf_end ) <<
"End iterator for ConstVertexFaceIter not matching";
113 Mesh::VertexHandle vhandle[5];
115 vhandle[0] = mesh_.add_vertex(Mesh::Point(0, 1, 0));
116 vhandle[1] = mesh_.add_vertex(Mesh::Point(1, 0, 0));
117 vhandle[2] = mesh_.add_vertex(Mesh::Point(2, 1, 0));
118 vhandle[3] = mesh_.add_vertex(Mesh::Point(0,-1, 0));
119 vhandle[4] = mesh_.add_vertex(Mesh::Point(2,-1, 0));
122 std::vector<Mesh::VertexHandle> face_vhandles;
124 face_vhandles.push_back(vhandle[0]);
125 face_vhandles.push_back(vhandle[1]);
126 face_vhandles.push_back(vhandle[2]);
127 mesh_.add_face(face_vhandles);
129 face_vhandles.clear();
131 face_vhandles.push_back(vhandle[1]);
132 face_vhandles.push_back(vhandle[3]);
133 face_vhandles.push_back(vhandle[4]);
134 mesh_.add_face(face_vhandles);
136 face_vhandles.clear();
138 face_vhandles.push_back(vhandle[0]);
139 face_vhandles.push_back(vhandle[3]);
140 face_vhandles.push_back(vhandle[1]);
141 mesh_.add_face(face_vhandles);
143 face_vhandles.clear();
145 face_vhandles.push_back(vhandle[2]);
146 face_vhandles.push_back(vhandle[1]);
147 face_vhandles.push_back(vhandle[4]);
148 mesh_.add_face(face_vhandles);
164 EXPECT_EQ(3, vf_it.handle().idx() ) <<
"Index wrong in VertexFaceIter at initialization";
165 EXPECT_TRUE(vf_it) <<
"Iterator invalid in VertexFaceIter at initialization";
167 EXPECT_EQ(1, vf_it.handle().idx() ) <<
"Index wrong in VertexFaceIter at step 1";
168 EXPECT_TRUE(vf_it) <<
"Iterator invalid in VertexFaceIter at step 1";
170 EXPECT_EQ(2, vf_it.handle().idx() ) <<
"Index wrong in VertexFaceIter at step 2";
171 EXPECT_TRUE(vf_it) <<
"Iterator invalid in VertexFaceIter at step 2";
173 EXPECT_EQ(0, vf_it.handle().idx() ) <<
"Index wrong in VertexFaceIter at step 3";
174 EXPECT_TRUE(vf_it) <<
"Iterator invalid in VertexFaceIter at step 3";
176 EXPECT_EQ(3, vf_it.handle().idx() ) <<
"Index wrong in VertexFaceIter at end";
177 EXPECT_FALSE(vf_it) <<
"Iterator not invalid in VertexFaceIter at end";
178 EXPECT_TRUE( vf_it == vf_end ) <<
"End iterator for VertexFaceIter not matching";
183 EXPECT_EQ(3, cvf_it.handle().idx() ) <<
"Index wrong in ConstVertexFaceIter at initialization";
184 EXPECT_TRUE(cvf_it) <<
"Iterator invalid in ConstVertexFaceIter at initialization";
186 EXPECT_EQ(1, cvf_it.handle().idx() ) <<
"Index wrong in ConstVertexFaceIter at step 1";
187 EXPECT_TRUE(cvf_it) <<
"Iterator invalid in ConstVertexFaceIter at step 1";
189 EXPECT_EQ(2, cvf_it.handle().idx() ) <<
"Index wrong in ConstVertexFaceIter at step 2";
190 EXPECT_TRUE(cvf_it) <<
"Iterator invalid in ConstVertexFaceIter at step 2";
192 EXPECT_EQ(0, cvf_it.handle().idx() ) <<
"Index wrong in ConstVertexFaceIter at step 3";
193 EXPECT_TRUE(cvf_it) <<
"Iterator invalid in ConstVertexFaceIter at step 3";
195 EXPECT_EQ(3, cvf_it.handle().idx() ) <<
"Index wrong in ConstVertexFaceIter at end";
196 EXPECT_FALSE(cvf_it) <<
"Iterator not invalid in VertexFaceIter at end";
197 EXPECT_TRUE( cvf_it == cvf_end ) <<
"End iterator for ConstVertexFaceIter not matching";
210 Mesh::VertexHandle vhandle[5];
212 vhandle[0] = mesh_.add_vertex(Mesh::Point(0, 1, 0));
213 vhandle[1] = mesh_.add_vertex(Mesh::Point(1, 0, 0));
214 vhandle[2] = mesh_.add_vertex(Mesh::Point(2, 1, 0));
215 vhandle[3] = mesh_.add_vertex(Mesh::Point(0,-1, 0));
216 vhandle[4] = mesh_.add_vertex(Mesh::Point(2,-1, 0));
219 std::vector<Mesh::VertexHandle> face_vhandles;
221 face_vhandles.push_back(vhandle[0]);
222 face_vhandles.push_back(vhandle[1]);
223 face_vhandles.push_back(vhandle[2]);
224 mesh_.add_face(face_vhandles);
226 face_vhandles.clear();
228 face_vhandles.push_back(vhandle[1]);
229 face_vhandles.push_back(vhandle[3]);
230 face_vhandles.push_back(vhandle[4]);
231 mesh_.add_face(face_vhandles);
233 face_vhandles.clear();
235 face_vhandles.push_back(vhandle[0]);
236 face_vhandles.push_back(vhandle[3]);
237 face_vhandles.push_back(vhandle[1]);
238 mesh_.add_face(face_vhandles);
240 face_vhandles.clear();
242 face_vhandles.push_back(vhandle[2]);
243 face_vhandles.push_back(vhandle[1]);
244 face_vhandles.push_back(vhandle[4]);
245 mesh_.add_face(face_vhandles);
261 EXPECT_EQ(11, voh_it.handle().idx() ) <<
"Index wrong in VertexOHalfedgeIter begin at initialization";
262 EXPECT_EQ(11, voh_end.handle().idx() ) <<
"Index wrong in VertexOHalfedgeIter end at initialization";
263 EXPECT_EQ(3, mesh_.face_handle(voh_it.handle()).idx() ) <<
"Corresponding face Index wrong in VertexOHalfedgeIter begin at initialization";
264 EXPECT_TRUE(voh_it) <<
"Iterator invalid in VertexOHalfedgeIter at initialization";
268 EXPECT_EQ(6, voh_it.handle().idx() ) <<
"Index wrong in VertexOHalfedgeIter step 1";
269 EXPECT_EQ(1, mesh_.face_handle(voh_it.handle()).idx() ) <<
"Corresponding face Index wrong in VertexOHalfedgeIter step 1";
270 EXPECT_TRUE(voh_it) <<
"Iterator invalid in VertexOHalfedgeIter at step 1";
274 EXPECT_EQ(1, voh_it.handle().idx() ) <<
"Index wrong in VertexOHalfedgeIter step 2";
275 EXPECT_EQ(2, mesh_.face_handle(voh_it.handle()).idx() ) <<
"Corresponding face Index wrong in VertexOHalfedgeIter step 2";
276 EXPECT_TRUE(voh_it) <<
"Iterator invalid in VertexOHalfedgeIter at step 2";
280 EXPECT_EQ(2, voh_it.handle().idx() ) <<
"Index wrong in VertexOHalfedgeIter step 3";
281 EXPECT_EQ(0, mesh_.face_handle(voh_it.handle()).idx() ) <<
"Corresponding face Index wrong in VertexOHalfedgeIter step 3";
282 EXPECT_TRUE(voh_it) <<
"Iterator invalid in VertexOHalfedgeIter at step 3";
286 EXPECT_EQ(11, voh_it.handle().idx() ) <<
"Index wrong in VertexOHalfedgeIter step 4";
287 EXPECT_EQ(3, mesh_.face_handle(voh_it.handle()).idx() ) <<
"Corresponding face Index wrong in VertexOHalfedgeIter step 4";
288 EXPECT_FALSE(voh_it) <<
"Iterator still valid in VertexOHalfedgeIter at step 4";
289 EXPECT_TRUE( voh_it == voh_end ) <<
"Miss matched end iterator";
293 EXPECT_EQ(6, voh_it.handle().idx() ) <<
"Index wrong in VertexOHalfedgeIter step 5";
294 EXPECT_EQ(1, mesh_.face_handle(voh_it.handle()).idx() ) <<
"Corresponding face Index wrong in VertexOHalfedgeIter step 5";
303 EXPECT_EQ(11, cvoh_it.handle().idx() ) <<
"Index wrong in ConstVertexOHalfedgeIter begin at initialization";
304 EXPECT_EQ(11, cvoh_end.handle().idx() ) <<
"Index wrong in ConstVertexOHalfedgeIter end at initialization";
305 EXPECT_EQ(3, mesh_.face_handle(cvoh_it.handle()).idx() ) <<
"Corresponding face Index wrong in ConstVertexOHalfedgeIter begin at initialization";
306 EXPECT_TRUE(cvoh_it) <<
"Iterator invalid in ConstVertexOHalfedgeIter at initialization";
310 EXPECT_EQ(6, cvoh_it.handle().idx() ) <<
"Index wrong in ConstVertexOHalfedgeIter step 1";
311 EXPECT_EQ(1, mesh_.face_handle(cvoh_it.handle()).idx() ) <<
"Corresponding face Index wrong in ConstVertexOHalfedgeIter step 1";
312 EXPECT_TRUE(cvoh_it) <<
"Iterator invalid in ConstVertexOHalfedgeIter at step 1";
316 EXPECT_EQ(1, cvoh_it.handle().idx() ) <<
"Index wrong in ConstVertexOHalfedgeIter step 2";
317 EXPECT_EQ(2, mesh_.face_handle(cvoh_it.handle()).idx() ) <<
"Corresponding face Index wrong in ConstVertexOHalfedgeIter step 2";
318 EXPECT_TRUE(cvoh_it) <<
"Iterator invalid in ConstVertexOHalfedgeIter at step 2";
322 EXPECT_EQ(2, cvoh_it.handle().idx() ) <<
"Index wrong in ConstVertexOHalfedgeIter step 3";
323 EXPECT_EQ(0, mesh_.face_handle(cvoh_it.handle()).idx() ) <<
"Corresponding face Index wrong in ConstVertexOHalfedgeIter step 3";
324 EXPECT_TRUE(cvoh_it) <<
"Iterator invalid in ConstVertexOHalfedgeIter at step 3";
328 EXPECT_EQ(11, cvoh_it.handle().idx() ) <<
"Index wrong in ConstVertexOHalfedgeIter step 4";
329 EXPECT_EQ(3, mesh_.face_handle(cvoh_it.handle()).idx() ) <<
"Corresponding face Index wrong in ConstVertexOHalfedgeIter step 4";
330 EXPECT_FALSE(cvoh_it) <<
"Iterator still valid in ConstVertexOHalfedgeIter at step 4";
331 EXPECT_TRUE( cvoh_it == cvoh_end ) <<
"Miss matched end iterator";
335 EXPECT_EQ(6, cvoh_it.handle().idx() ) <<
"Index wrong in ConstVertexOHalfedgeIter step 5";
336 EXPECT_EQ(1, mesh_.face_handle(cvoh_it.handle()).idx() ) <<
"Corresponding face Index wrong in ConstVertexOHalfedgeIter step 5";
350 Mesh::VertexHandle vhandle[5];
352 vhandle[0] = mesh_.add_vertex(Mesh::Point(0, 1, 0));
353 vhandle[1] = mesh_.add_vertex(Mesh::Point(1, 0, 0));
354 vhandle[2] = mesh_.add_vertex(Mesh::Point(2, 1, 0));
355 vhandle[3] = mesh_.add_vertex(Mesh::Point(3, 0, 0));
356 vhandle[4] = mesh_.add_vertex(Mesh::Point(4, 1, 0));
359 std::vector<Mesh::VertexHandle> face_vhandles;
361 face_vhandles.push_back(vhandle[0]);
362 face_vhandles.push_back(vhandle[1]);
363 face_vhandles.push_back(vhandle[2]);
364 mesh_.add_face(face_vhandles);
366 face_vhandles.clear();
368 face_vhandles.push_back(vhandle[2]);
369 face_vhandles.push_back(vhandle[1]);
370 face_vhandles.push_back(vhandle[3]);
371 mesh_.add_face(face_vhandles);
373 face_vhandles.clear();
375 face_vhandles.push_back(vhandle[2]);
376 face_vhandles.push_back(vhandle[3]);
377 face_vhandles.push_back(vhandle[4]);
378 mesh_.add_face(face_vhandles);
393 EXPECT_EQ(2, ff_it.handle().idx() ) <<
"Index wrong in FaceFaceIter at initialization";
394 EXPECT_TRUE(ff_it) <<
"Iterator invalid in FaceFaceIter at initialization";
396 EXPECT_EQ(0, ff_it.handle().idx() ) <<
"Index wrong in FaceFaceIter at step 1";
397 EXPECT_TRUE(ff_it) <<
"Iterator invalid in FaceFaceIter at step 1";
399 EXPECT_EQ(2, ff_it.handle().idx() ) <<
"Index wrong in FaceFaceIter at end";
400 EXPECT_FALSE(ff_it) <<
"Iterator invalid in FaceFaceIter at end";
401 EXPECT_TRUE( ff_it == ff_end ) <<
"End iterator for FaceFaceIter not matching";
406 EXPECT_EQ(2, cff_it.handle().idx() ) <<
"Index wrong in ConstFaceFaceIter at initialization";
407 EXPECT_TRUE(cff_it) <<
"Iterator invalid in ConstFaceFaceIter at initialization";
409 EXPECT_EQ(0, cff_it.handle().idx() ) <<
"Index wrong in ConstFaceFaceIter at step 1";
410 EXPECT_TRUE(cff_it) <<
"Iterator invalid in ConstFaceFaceIter at step 1";
412 EXPECT_EQ(2, cff_it.handle().idx() ) <<
"Index wrong in ConstFaceFaceIter at end";
413 EXPECT_FALSE(cff_it) <<
"Iterator invalid in ConstFaceFaceIter at end";
414 EXPECT_TRUE( cff_it == cff_end ) <<
"End iterator for ConstFaceFaceIter not matching";
426 Mesh::VertexHandle vhandle[6];
428 vhandle[0] = mesh_.add_vertex(Mesh::Point(0, 1, 0));
429 vhandle[1] = mesh_.add_vertex(Mesh::Point(1, 0, 0));
430 vhandle[2] = mesh_.add_vertex(Mesh::Point(2, 1, 0));
431 vhandle[3] = mesh_.add_vertex(Mesh::Point(3, 0, 0));
432 vhandle[4] = mesh_.add_vertex(Mesh::Point(4, 1, 0));
433 vhandle[5] = mesh_.add_vertex(Mesh::Point(2,-1, 0));
436 std::vector<Mesh::VertexHandle> face_vhandles;
438 face_vhandles.push_back(vhandle[0]);
439 face_vhandles.push_back(vhandle[1]);
440 face_vhandles.push_back(vhandle[2]);
441 mesh_.add_face(face_vhandles);
443 face_vhandles.clear();
445 face_vhandles.push_back(vhandle[2]);
446 face_vhandles.push_back(vhandle[1]);
447 face_vhandles.push_back(vhandle[3]);
448 mesh_.add_face(face_vhandles);
450 face_vhandles.clear();
452 face_vhandles.push_back(vhandle[2]);
453 face_vhandles.push_back(vhandle[3]);
454 face_vhandles.push_back(vhandle[4]);
455 mesh_.add_face(face_vhandles);
457 face_vhandles.clear();
459 face_vhandles.push_back(vhandle[1]);
460 face_vhandles.push_back(vhandle[5]);
461 face_vhandles.push_back(vhandle[3]);
462 mesh_.add_face(face_vhandles);
482 EXPECT_EQ(2, ff_it.handle().idx() ) <<
"Index wrong in FaceFaceIter at initialization";
483 EXPECT_TRUE(ff_it) <<
"Iterator invalid in FaceFaceIter at initialization";
485 EXPECT_EQ(0, ff_it.handle().idx() ) <<
"Index wrong in FaceFaceIter at step 1";
486 EXPECT_TRUE(ff_it) <<
"Iterator invalid in FaceFaceIter at step 1";
488 EXPECT_EQ(3, ff_it.handle().idx() ) <<
"Index wrong in FaceFaceIter at step 2";
489 EXPECT_TRUE(ff_it) <<
"Iterator invalid in FaceFaceIter at step 2";
491 EXPECT_EQ(2, ff_it.handle().idx() ) <<
"Index wrong in FaceFaceIter at end";
492 EXPECT_FALSE(ff_it) <<
"Iterator invalid in FaceFaceIter at end";
493 EXPECT_TRUE( ff_it == ff_end ) <<
"End iterator for FaceFaceIter not matching";
498 EXPECT_EQ(2, cff_it.handle().idx() ) <<
"Index wrong in ConstFaceFaceIter at initialization";
499 EXPECT_TRUE(cff_it) <<
"Iterator invalid in ConstFaceFaceIter at initialization";
501 EXPECT_EQ(0, cff_it.handle().idx() ) <<
"Index wrong in ConstFaceFaceIter at step 1";
502 EXPECT_TRUE(cff_it) <<
"Iterator invalid in ConstFaceFaceIter at step 1";
504 EXPECT_EQ(3, cff_it.handle().idx() ) <<
"Index wrong in ConstFaceFaceIter at step 2";
505 EXPECT_TRUE(cff_it) <<
"Iterator invalid in ConstFaceFaceIter at step 2";
507 EXPECT_EQ(2, cff_it.handle().idx() ) <<
"Index wrong in ConstFaceFaceIter at end";
508 EXPECT_FALSE(cff_it) <<
"Iterator invalid in ConstFaceFaceIter at end";
509 EXPECT_TRUE( cff_it == cff_end ) <<
"End iterator for ConstFaceFaceIter not matching";
517 #endif // INCLUDE GUARD