1 #ifndef INCLUDE_UNITTESTS_TRIMESH_ITERATORS_HH
2 #define INCLUDE_UNITTESTS_TRIMESH_ITERATORS_HH
4 #include <gtest/gtest.h>
5 #include <Unittests/unittests_common.hh>
14 virtual void SetUp() {
18 virtual void TearDown() {
41 Mesh::VertexHandle vhandle[4];
43 vhandle[0] = mesh_.add_vertex(Mesh::Point(0, 0, 0));
44 vhandle[1] = mesh_.add_vertex(Mesh::Point(0, 1, 0));
45 vhandle[2] = mesh_.add_vertex(Mesh::Point(1, 1, 0));
46 vhandle[3] = mesh_.add_vertex(Mesh::Point(1, 0, 0));
49 std::vector<Mesh::VertexHandle> face_vhandles;
51 face_vhandles.push_back(vhandle[2]);
52 face_vhandles.push_back(vhandle[1]);
53 face_vhandles.push_back(vhandle[0]);
54 mesh_.add_face(face_vhandles);
56 face_vhandles.clear();
58 face_vhandles.push_back(vhandle[2]);
59 face_vhandles.push_back(vhandle[0]);
60 face_vhandles.push_back(vhandle[3]);
61 mesh_.add_face(face_vhandles);
70 Mesh::VertexIter v_it = mesh_.vertices_begin();
71 Mesh::VertexIter v_end = mesh_.vertices_end();
73 EXPECT_EQ(0, v_it.handle().idx()) <<
"Index wrong for vertex iterator vertices_begin()";
75 EXPECT_EQ(1, v_it.handle().idx()) <<
"Index wrong in vertex iterator";
77 EXPECT_EQ(2, v_it.handle().idx()) <<
"Index wrong in vertex iterator";
79 EXPECT_EQ(3, v_it.handle().idx()) <<
"Index wrong in vertex iterator";
81 EXPECT_EQ(4, v_it.handle().idx()) <<
"Index wrong in vertex iterator";
84 EXPECT_EQ(4, v_end.handle().idx()) <<
"Index wrong in vertex iterator for vertices_end()";
99 Mesh::VertexHandle vhandle[4];
101 vhandle[0] = mesh_.add_vertex(Mesh::Point(0, 0, 0));
102 vhandle[1] = mesh_.add_vertex(Mesh::Point(0, 1, 0));
103 vhandle[2] = mesh_.add_vertex(Mesh::Point(1, 1, 0));
104 vhandle[3] = mesh_.add_vertex(Mesh::Point(1, 0, 0));
107 std::vector<Mesh::VertexHandle> face_vhandles;
109 face_vhandles.push_back(vhandle[2]);
110 face_vhandles.push_back(vhandle[1]);
111 face_vhandles.push_back(vhandle[0]);
112 mesh_.add_face(face_vhandles);
114 face_vhandles.clear();
116 face_vhandles.push_back(vhandle[2]);
117 face_vhandles.push_back(vhandle[0]);
118 face_vhandles.push_back(vhandle[3]);
119 mesh_.add_face(face_vhandles);
128 Mesh::VertexIter v_it = Mesh::VertexIter(mesh_,mesh_.vertex_handle(2));
129 Mesh::VertexIter v_end = mesh_.vertices_end();
131 EXPECT_EQ(2, v_it.handle().idx()) <<
"Index wrong in vertex iterator";
133 EXPECT_EQ(3, v_it.handle().idx()) <<
"Index wrong in vertex iterator";
135 EXPECT_EQ(4, v_it.handle().idx()) <<
"Index wrong in vertex iterator";
138 EXPECT_EQ(4, v_end.handle().idx()) <<
"Index wrong in vertex iterator for vertices_end()";
151 Mesh::VertexHandle vhandle[4];
153 vhandle[0] = mesh_.add_vertex(Mesh::Point(0, 0, 0));
154 vhandle[1] = mesh_.add_vertex(Mesh::Point(0, 1, 0));
155 vhandle[2] = mesh_.add_vertex(Mesh::Point(1, 1, 0));
156 vhandle[3] = mesh_.add_vertex(Mesh::Point(1, 0, 0));
159 std::vector<Mesh::VertexHandle> face_vhandles;
161 face_vhandles.push_back(vhandle[2]);
162 face_vhandles.push_back(vhandle[1]);
163 face_vhandles.push_back(vhandle[0]);
164 mesh_.add_face(face_vhandles);
166 face_vhandles.clear();
168 face_vhandles.push_back(vhandle[2]);
169 face_vhandles.push_back(vhandle[0]);
170 face_vhandles.push_back(vhandle[3]);
171 mesh_.add_face(face_vhandles);
181 Mesh::EdgeIter e_it = mesh_.edges_begin();
182 Mesh::EdgeIter e_end = mesh_.edges_end();
184 EXPECT_EQ(0, e_it.handle().idx()) <<
"Wrong start index in edge iterator";
185 EXPECT_EQ(5, e_end.handle().idx()) <<
"Wrong end index in edge iterator";
187 EXPECT_EQ(1, mesh_.to_vertex_handle(mesh_.halfedge_handle(e_it,0)).idx() ) <<
"1: Wrong to vertex handle of halfedge 0";
188 EXPECT_EQ(2, mesh_.from_vertex_handle(mesh_.halfedge_handle(e_it,0)).idx() ) <<
"1: Wrong from vertex handle of halfedge 0";
189 EXPECT_EQ(2, mesh_.to_vertex_handle(mesh_.halfedge_handle(e_it,1)).idx() ) <<
"1: Wrong to vertex handle of halfedge 1";
190 EXPECT_EQ(1, mesh_.from_vertex_handle(mesh_.halfedge_handle(e_it,1)).idx() ) <<
"1: Wrong from vertex handle of halfedge 1";
193 EXPECT_EQ(1, e_it.handle().idx()) <<
"Wrong index in edge iterator";
195 EXPECT_EQ(0, mesh_.to_vertex_handle(mesh_.halfedge_handle(e_it,0)).idx() ) <<
"2: Wrong to vertex handle of halfedge 0";
196 EXPECT_EQ(1, mesh_.from_vertex_handle(mesh_.halfedge_handle(e_it,0)).idx() ) <<
"2: Wrong from vertex handle of halfedge 0";
197 EXPECT_EQ(1, mesh_.to_vertex_handle(mesh_.halfedge_handle(e_it,1)).idx() ) <<
"2: Wrong to vertex handle of halfedge 1";
198 EXPECT_EQ(0, mesh_.from_vertex_handle(mesh_.halfedge_handle(e_it,1)).idx() ) <<
"2: Wrong from vertex handle of halfedge 1";
202 EXPECT_EQ(2, e_it.handle().idx()) <<
"Wrong index in edge iterator";
204 EXPECT_EQ(2, mesh_.to_vertex_handle(mesh_.halfedge_handle(e_it,0)).idx() ) <<
"3: Wrong to vertex handle of halfedge 0";
205 EXPECT_EQ(0, mesh_.from_vertex_handle(mesh_.halfedge_handle(e_it,0)).idx() ) <<
"3: Wrong from vertex handle of halfedge 0";
206 EXPECT_EQ(0, mesh_.to_vertex_handle(mesh_.halfedge_handle(e_it,1)).idx() ) <<
"3: Wrong to vertex handle of halfedge 1";
207 EXPECT_EQ(2, mesh_.from_vertex_handle(mesh_.halfedge_handle(e_it,1)).idx() ) <<
"3: Wrong from vertex handle of halfedge 1";
211 EXPECT_EQ(3, e_it.handle().idx()) <<
"Wrong index in edge iterator";
213 EXPECT_EQ(3, mesh_.to_vertex_handle(mesh_.halfedge_handle(e_it,0)).idx() ) <<
"4: Wrong to vertex handle of halfedge 0";
214 EXPECT_EQ(0, mesh_.from_vertex_handle(mesh_.halfedge_handle(e_it,0)).idx() ) <<
"4: Wrong from vertex handle of halfedge 0";
215 EXPECT_EQ(0, mesh_.to_vertex_handle(mesh_.halfedge_handle(e_it,1)).idx() ) <<
"4: Wrong to vertex handle of halfedge 1";
216 EXPECT_EQ(3, mesh_.from_vertex_handle(mesh_.halfedge_handle(e_it,1)).idx() ) <<
"4: Wrong from vertex handle of halfedge 1";
220 EXPECT_EQ(4, e_it.handle().idx()) <<
"Wrong index in edge iterator";
222 EXPECT_EQ(2, mesh_.to_vertex_handle(mesh_.halfedge_handle(e_it,0)).idx() ) <<
"5: Wrong to vertex handle of halfedge 0";
223 EXPECT_EQ(3, mesh_.from_vertex_handle(mesh_.halfedge_handle(e_it,0)).idx() ) <<
"5: Wrong from vertex handle of halfedge 0";
224 EXPECT_EQ(3, mesh_.to_vertex_handle(mesh_.halfedge_handle(e_it,1)).idx() ) <<
"5: Wrong to vertex handle of halfedge 1";
225 EXPECT_EQ(2, mesh_.from_vertex_handle(mesh_.halfedge_handle(e_it,1)).idx() ) <<
"5: Wrong from vertex handle of halfedge 1";
237 Mesh::VertexHandle vhandle[8];
238 vhandle[0] = mesh_.add_vertex(Mesh::Point(-1, -1, 1));
239 vhandle[1] = mesh_.add_vertex(Mesh::Point( 1, -1, 1));
240 vhandle[2] = mesh_.add_vertex(Mesh::Point( 1, 1, 1));
241 vhandle[3] = mesh_.add_vertex(Mesh::Point(-1, 1, 1));
242 vhandle[4] = mesh_.add_vertex(Mesh::Point(-1, -1, -1));
243 vhandle[5] = mesh_.add_vertex(Mesh::Point( 1, -1, -1));
244 vhandle[6] = mesh_.add_vertex(Mesh::Point( 1, 1, -1));
245 vhandle[7] = mesh_.add_vertex(Mesh::Point(-1, 1, -1));
248 std::vector<Mesh::VertexHandle> face_vhandles;
250 face_vhandles.clear();
251 face_vhandles.push_back(vhandle[0]);
252 face_vhandles.push_back(vhandle[1]);
253 face_vhandles.push_back(vhandle[3]);
254 mesh_.add_face(face_vhandles);
256 face_vhandles.clear();
257 face_vhandles.push_back(vhandle[1]);
258 face_vhandles.push_back(vhandle[2]);
259 face_vhandles.push_back(vhandle[3]);
260 mesh_.add_face(face_vhandles);
264 face_vhandles.clear();
265 face_vhandles.push_back(vhandle[7]);
266 face_vhandles.push_back(vhandle[6]);
267 face_vhandles.push_back(vhandle[5]);
268 mesh_.add_face(face_vhandles);
270 face_vhandles.clear();
271 face_vhandles.push_back(vhandle[7]);
272 face_vhandles.push_back(vhandle[5]);
273 face_vhandles.push_back(vhandle[4]);
274 mesh_.add_face(face_vhandles);
278 face_vhandles.clear();
279 face_vhandles.push_back(vhandle[1]);
280 face_vhandles.push_back(vhandle[0]);
281 face_vhandles.push_back(vhandle[4]);
282 mesh_.add_face(face_vhandles);
284 face_vhandles.clear();
285 face_vhandles.push_back(vhandle[1]);
286 face_vhandles.push_back(vhandle[4]);
287 face_vhandles.push_back(vhandle[5]);
288 mesh_.add_face(face_vhandles);
292 face_vhandles.clear();
293 face_vhandles.push_back(vhandle[2]);
294 face_vhandles.push_back(vhandle[1]);
295 face_vhandles.push_back(vhandle[5]);
296 mesh_.add_face(face_vhandles);
298 face_vhandles.clear();
299 face_vhandles.push_back(vhandle[2]);
300 face_vhandles.push_back(vhandle[5]);
301 face_vhandles.push_back(vhandle[6]);
302 mesh_.add_face(face_vhandles);
307 face_vhandles.clear();
308 face_vhandles.push_back(vhandle[3]);
309 face_vhandles.push_back(vhandle[2]);
310 face_vhandles.push_back(vhandle[6]);
311 mesh_.add_face(face_vhandles);
313 face_vhandles.clear();
314 face_vhandles.push_back(vhandle[3]);
315 face_vhandles.push_back(vhandle[6]);
316 face_vhandles.push_back(vhandle[7]);
317 mesh_.add_face(face_vhandles);
321 face_vhandles.clear();
322 face_vhandles.push_back(vhandle[0]);
323 face_vhandles.push_back(vhandle[3]);
324 face_vhandles.push_back(vhandle[7]);
325 mesh_.add_face(face_vhandles);
327 face_vhandles.clear();
328 face_vhandles.push_back(vhandle[0]);
329 face_vhandles.push_back(vhandle[7]);
330 face_vhandles.push_back(vhandle[4]);
331 mesh_.add_face(face_vhandles);
349 EXPECT_EQ(18u, mesh_.n_edges() ) <<
"Wrong number of Edges";
350 EXPECT_EQ(36u, mesh_.n_halfedges() ) <<
"Wrong number of HalfEdges";
351 EXPECT_EQ(8u, mesh_.n_vertices() ) <<
"Wrong number of vertices";
352 EXPECT_EQ(12u, mesh_.n_faces() ) <<
"Wrong number of faces";
356 unsigned int heCounter = 0;
358 mesh_.request_face_status();
359 mesh_.request_vertex_status();
360 mesh_.request_halfedge_status();
363 Mesh::EdgeHandle eh = mesh_.edge_handle(2);
366 mesh_.delete_edge(eh);
369 EXPECT_EQ(18u, mesh_.n_edges() ) <<
"Wrong number of Edges after delete";
370 EXPECT_EQ(36u, mesh_.n_halfedges() ) <<
"Wrong number of HalfEdges after delete";
371 EXPECT_EQ(8u, mesh_.n_vertices() ) <<
"Wrong number of vertices after delete";
372 EXPECT_EQ(12u, mesh_.n_faces() ) <<
"Wrong number of faces after delete";
374 Mesh::HalfedgeIter he_it = mesh_.halfedges_sbegin();
375 Mesh::HalfedgeIter he_end = mesh_.halfedges_end();
377 EXPECT_EQ(0, he_it.handle().idx()) <<
"Wrong start index in halfedge iterator";
378 EXPECT_EQ(36, he_end.handle().idx()) <<
"Wrong end index in halfedge iterator";
387 unsigned int count = 0;
389 while (he_it != he_end) {
390 if ( he_it.handle().idx() == 4 )
393 if ( he_it.handle().idx() == 5 )
400 EXPECT_EQ(34u,count) <<
"Skipping iterator count error";
401 EXPECT_TRUE( ok_4 ) <<
"Skipping iterator hit deleted halfedge 4";
402 EXPECT_TRUE( ok_5 ) <<
"Skipping iterator hit deleted halfedge 5";
407 he_it = mesh_.halfedges_begin();
413 while (he_it != he_end) {
414 if ( he_it.handle().idx() == 4 )
417 if ( he_it.handle().idx() == 5 )
425 EXPECT_EQ(36u,count) <<
"Non-skipping iterator count error";
426 EXPECT_TRUE( ok_4 ) <<
"Non-skipping iterator missed deleted halfedge 4";
427 EXPECT_TRUE( ok_5 ) <<
"Non-skipping iterator missed deleted halfedge 5";
437 Mesh::VertexHandle vhandle[8];
438 vhandle[0] = mesh_.add_vertex(Mesh::Point(-1, -1, 1));
439 vhandle[1] = mesh_.add_vertex(Mesh::Point( 1, -1, 1));
440 vhandle[2] = mesh_.add_vertex(Mesh::Point( 1, 1, 1));
441 vhandle[3] = mesh_.add_vertex(Mesh::Point(-1, 1, 1));
442 vhandle[4] = mesh_.add_vertex(Mesh::Point(-1, -1, -1));
443 vhandle[5] = mesh_.add_vertex(Mesh::Point( 1, -1, -1));
444 vhandle[6] = mesh_.add_vertex(Mesh::Point( 1, 1, -1));
445 vhandle[7] = mesh_.add_vertex(Mesh::Point(-1, 1, -1));
448 std::vector<Mesh::VertexHandle> face_vhandles;
450 face_vhandles.clear();
451 face_vhandles.push_back(vhandle[0]);
452 face_vhandles.push_back(vhandle[1]);
453 face_vhandles.push_back(vhandle[3]);
454 mesh_.add_face(face_vhandles);
456 face_vhandles.clear();
457 face_vhandles.push_back(vhandle[1]);
458 face_vhandles.push_back(vhandle[2]);
459 face_vhandles.push_back(vhandle[3]);
460 mesh_.add_face(face_vhandles);
464 face_vhandles.clear();
465 face_vhandles.push_back(vhandle[7]);
466 face_vhandles.push_back(vhandle[6]);
467 face_vhandles.push_back(vhandle[5]);
468 mesh_.add_face(face_vhandles);
470 face_vhandles.clear();
471 face_vhandles.push_back(vhandle[7]);
472 face_vhandles.push_back(vhandle[5]);
473 face_vhandles.push_back(vhandle[4]);
474 mesh_.add_face(face_vhandles);
478 face_vhandles.clear();
479 face_vhandles.push_back(vhandle[1]);
480 face_vhandles.push_back(vhandle[0]);
481 face_vhandles.push_back(vhandle[4]);
482 mesh_.add_face(face_vhandles);
484 face_vhandles.clear();
485 face_vhandles.push_back(vhandle[1]);
486 face_vhandles.push_back(vhandle[4]);
487 face_vhandles.push_back(vhandle[5]);
488 mesh_.add_face(face_vhandles);
492 face_vhandles.clear();
493 face_vhandles.push_back(vhandle[2]);
494 face_vhandles.push_back(vhandle[1]);
495 face_vhandles.push_back(vhandle[5]);
496 mesh_.add_face(face_vhandles);
498 face_vhandles.clear();
499 face_vhandles.push_back(vhandle[2]);
500 face_vhandles.push_back(vhandle[5]);
501 face_vhandles.push_back(vhandle[6]);
502 mesh_.add_face(face_vhandles);
507 face_vhandles.clear();
508 face_vhandles.push_back(vhandle[3]);
509 face_vhandles.push_back(vhandle[2]);
510 face_vhandles.push_back(vhandle[6]);
511 mesh_.add_face(face_vhandles);
513 face_vhandles.clear();
514 face_vhandles.push_back(vhandle[3]);
515 face_vhandles.push_back(vhandle[6]);
516 face_vhandles.push_back(vhandle[7]);
517 mesh_.add_face(face_vhandles);
521 face_vhandles.clear();
522 face_vhandles.push_back(vhandle[0]);
523 face_vhandles.push_back(vhandle[3]);
524 face_vhandles.push_back(vhandle[7]);
525 mesh_.add_face(face_vhandles);
527 face_vhandles.clear();
528 face_vhandles.push_back(vhandle[0]);
529 face_vhandles.push_back(vhandle[7]);
530 face_vhandles.push_back(vhandle[4]);
531 mesh_.add_face(face_vhandles);
549 EXPECT_EQ(18u, mesh_.n_edges() ) <<
"Wrong number of Edges";
550 EXPECT_EQ(36u, mesh_.n_halfedges() ) <<
"Wrong number of HalfEdges";
551 EXPECT_EQ(8u, mesh_.n_vertices() ) <<
"Wrong number of vertices";
552 EXPECT_EQ(12u, mesh_.n_faces() ) <<
"Wrong number of faces";
556 unsigned int heCounter = 0;
558 mesh_.request_face_status();
559 mesh_.request_vertex_status();
560 mesh_.request_halfedge_status();
563 Mesh::EdgeHandle eh = mesh_.edge_handle(2);
566 EXPECT_EQ(18u, mesh_.n_edges() ) <<
"Wrong number of Edges after delete";
567 EXPECT_EQ(36u, mesh_.n_halfedges() ) <<
"Wrong number of HalfEdges after delete";
568 EXPECT_EQ(8u, mesh_.n_vertices() ) <<
"Wrong number of vertices after delete";
569 EXPECT_EQ(12u, mesh_.n_faces() ) <<
"Wrong number of faces after delete";
571 Mesh::HalfedgeIter he_it = mesh_.halfedges_sbegin();
572 Mesh::HalfedgeIter he_end = mesh_.halfedges_end();
574 EXPECT_EQ(0, he_it.handle().idx()) <<
"Wrong start index in halfedge iterator";
575 EXPECT_EQ(36, he_end.handle().idx()) <<
"Wrong end index in halfedge iterator";
583 Mesh::EdgeHandle eh_test = mesh_.edge_handle(mesh_.new_edge(Mesh::VertexHandle(),Mesh::VertexHandle()));
585 he_it = mesh_.halfedges_sbegin();
586 he_end = mesh_.halfedges_end();
588 unsigned int count = 0;
589 bool found_36 =
false;
590 bool found_37 =
false;
592 while (he_it != he_end) {
593 if ( he_it.handle().idx() == 36 )
596 if ( he_it.handle().idx() == 37 )
603 EXPECT_EQ(38u,count) <<
"Skipping iterator count error";
604 EXPECT_TRUE( found_36 ) <<
"Skipping iterator missed halfedge 36";
605 EXPECT_TRUE( found_37 ) <<
"Skipping iterator missed halfedge 37";
613 mesh_.delete_edge(eh);
615 he_it = mesh_.halfedges_sbegin();
616 he_end = mesh_.halfedges_end();
619 bool found_4 =
false;
620 bool found_5 =
false;
624 while (he_it != he_end) {
626 if ( he_it.handle().idx() == 4 )
629 if ( he_it.handle().idx() == 5 )
632 if ( he_it.handle().idx() == 36 )
635 if ( he_it.handle().idx() == 37 )
642 EXPECT_EQ(36u,count) <<
"Deleted valid: Skipping iterator count error";
643 EXPECT_FALSE( found_4 ) <<
"Deleted valid: Skipping iterator hit deleted halfedge 4";
644 EXPECT_FALSE( found_5 ) <<
"Deleted valid: Skipping iterator hit deleted halfedge 5";
645 EXPECT_TRUE( found_36 ) <<
"Deleted valid: Skipping iterator missed halfedge 36";
646 EXPECT_TRUE( found_37 ) <<
"Deleted valid: Skipping iterator missed halfedge 37";
654 mesh_.delete_edge(eh_test);
656 he_it = mesh_.halfedges_sbegin();
657 he_end = mesh_.halfedges_end();
665 while (he_it != he_end) {
667 if ( he_it.handle().idx() == 4 )
670 if ( he_it.handle().idx() == 5 )
673 if ( he_it.handle().idx() == 36 )
676 if ( he_it.handle().idx() == 37 )
683 EXPECT_EQ(34u,count) <<
"Deleted invalid: Skipping iterator count error";
684 EXPECT_FALSE( found_4 ) <<
"Deleted invalid: Skipping iterator hit deleted halfedge 4";
685 EXPECT_FALSE( found_5 ) <<
"Deleted invalid: Skipping iterator hit deleted halfedge 5";
686 EXPECT_FALSE( found_36 ) <<
"Deleted invalid: Skipping iterator hit deleted halfedge 36";
687 EXPECT_FALSE( found_37 ) <<
"Deleted invalid: Skipping iterator hit deleted halfedge 37";
699 mesh_.request_vertex_status();
700 mesh_.request_edge_status();
701 mesh_.request_face_status();
704 Mesh::VertexHandle vhandle[4];
706 vhandle[0] = mesh_.add_vertex(Mesh::Point(0, 0, 0));
707 vhandle[1] = mesh_.add_vertex(Mesh::Point(0, 1, 0));
708 vhandle[2] = mesh_.add_vertex(Mesh::Point(1, 1, 0));
711 std::vector<Mesh::VertexHandle> face_vhandles;
713 face_vhandles.push_back(vhandle[2]);
714 face_vhandles.push_back(vhandle[1]);
715 face_vhandles.push_back(vhandle[0]);
716 Mesh::FaceHandle fh = mesh_.add_face(face_vhandles);
719 bool const is_delete_isolated_vertex =
false;
720 mesh_.delete_face(fh, is_delete_isolated_vertex);
729 Mesh::FaceIter f_it = mesh_.faces_begin();
730 Mesh::FaceIter f_end = mesh_.faces_end();
732 EXPECT_EQ(0, f_it.handle().idx()) <<
"Wrong start index in FaceIterator";
734 EXPECT_EQ(1, f_end.handle().idx()) <<
"Wrong end index in FaceIterator";
737 EXPECT_EQ(1, f_it.handle().idx()) <<
"Wrong end index in FaceIterator after one step";
738 EXPECT_TRUE(f_it == f_end ) <<
"Iterator not at end for FaceIterator after one step";
740 Mesh::ConstFaceIter cf_it = mesh_.faces_begin();
741 Mesh::ConstFaceIter cf_end = mesh_.faces_end();
743 EXPECT_EQ(0, cf_it.handle().idx()) <<
"Wrong start index in ConstFaceIterator";
745 EXPECT_EQ(1, cf_end.handle().idx()) <<
"Wrong end index in ConstFaceIterator";
748 EXPECT_EQ(1, cf_it.handle().idx()) <<
"Wrong end index in ConstFaceIterator after one step";
749 EXPECT_TRUE(cf_it == cf_end ) <<
"Iterator not at end for ConstFaceIterator after one step";
753 f_it = mesh_.faces_sbegin();
754 f_end = mesh_.faces_end();
756 EXPECT_EQ(1, f_it.handle().idx()) <<
"Wrong start index in FaceIterator with skipping";
758 EXPECT_EQ(1, f_end.handle().idx()) <<
"Wrong end index in FaceIterator with skipping";
760 EXPECT_TRUE(f_it == f_end ) <<
"Iterator not at end for FaceIterator with skipping";
763 cf_it = mesh_.faces_sbegin();
764 cf_end = mesh_.faces_end();
766 EXPECT_EQ(1, cf_it.handle().idx()) <<
"Wrong start index in ConstFaceIterator with skipping";
768 EXPECT_EQ(1, cf_end.handle().idx()) <<
"Wrong end index in ConstFaceIterator with skipping";
770 EXPECT_TRUE(cf_it == cf_end ) <<
"Iterator not at end for ConstFaceIterator with skipping";
773 mesh_.release_vertex_status();
774 mesh_.release_edge_status();
775 mesh_.release_face_status();
779 #endif // INCLUDE GUARD