From cba4bc4b518baf819ec4f71c4d6efb99f1011ba0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20M=C3=B6bius?= Date: Thu, 29 Sep 2011 15:20:21 +0000 Subject: [PATCH] Started iterator unittests git-svn-id: http://www.openmesh.org/svnrepo/OpenMesh/trunk@412 fdac6126-5c0c-442c-9429-916003d36597 --- src/Unittests/unittests.cc | 1 + src/Unittests/unittests_trimesh_iterators.hh | 82 ++++++++++++++++++++ 2 files changed, 83 insertions(+) create mode 100644 src/Unittests/unittests_trimesh_iterators.hh diff --git a/src/Unittests/unittests.cc b/src/Unittests/unittests.cc index 044b2cd2..c9bbde8e 100644 --- a/src/Unittests/unittests.cc +++ b/src/Unittests/unittests.cc @@ -2,6 +2,7 @@ #include "unittests_common.hh" #include "unittests_loading.hh" +#include "unittests_trimesh_iterators.hh" #include "unittests_decimater.hh" int main(int _argc, char** _argv) { diff --git a/src/Unittests/unittests_trimesh_iterators.hh b/src/Unittests/unittests_trimesh_iterators.hh new file mode 100644 index 00000000..d5c2eae6 --- /dev/null +++ b/src/Unittests/unittests_trimesh_iterators.hh @@ -0,0 +1,82 @@ +#ifndef INCLUDE_UNITTESTS_TRIMESH_ITERATORS_HH +#define INCLUDE_UNITTESTS_TRIMESH_ITERATORS_HH + +#include +#include + +#include + +class OpenMeshIterators : public OpenMeshBase { + + protected: + + // This function is called before each test is run + virtual void SetUp() { + // Add some vertices + Mesh::VertexHandle vhandle[4]; + + vhandle[0] = mesh_.add_vertex(Mesh::Point(0, 0, 0)); + vhandle[1] = mesh_.add_vertex(Mesh::Point(0, 1, 0)); + vhandle[2] = mesh_.add_vertex(Mesh::Point(1, 1, 0)); + vhandle[3] = mesh_.add_vertex(Mesh::Point(1, 0, 0)); + + // Add two faces + std::vector face_vhandles; + + face_vhandles.push_back(vhandle[2]); + face_vhandles.push_back(vhandle[1]); + face_vhandles.push_back(vhandle[0]); + mesh_.add_face(face_vhandles); + + face_vhandles.clear(); + + face_vhandles.push_back(vhandle[2]); + face_vhandles.push_back(vhandle[0]); + face_vhandles.push_back(vhandle[3]); + mesh_.add_face(face_vhandles); + } + + // This function is called after all tests are through + virtual void TearDown() { + + // Do some final stuff with the member data here... + } + + // Member already defined in OpenMeshBase + //Mesh mesh_; +}; + +/* + * ==================================================================== + * Define tests below + * ==================================================================== + */ + +/* + * Small VertexIterator Test + */ +TEST_F(OpenMeshIterators, VertexIter) { + + unsigned int i = 0; + + + Mesh::VertexIter v_it=mesh_.vertices_begin(); + Mesh::VertexIter v_end=mesh_.vertices_end(); + + + EXPECT_EQ(0, v_it.handle().idx()) << "Index wrong for vertex iterator vertices_begin()"; + ++v_it; + EXPECT_EQ(1, v_it.handle().idx()) << "Index wrong in vertex iterator"; + ++v_it; + EXPECT_EQ(2, v_it.handle().idx()) << "Index wrong in vertex iterator"; + ++v_it; + EXPECT_EQ(3, v_it.handle().idx()) << "Index wrong in vertex iterator"; + ++v_it; + EXPECT_EQ(4, v_it.handle().idx()) << "Index wrong in vertex iterator"; + + // Check end iterator + EXPECT_EQ(4, v_end.handle().idx()) << "Index wrong in vertex iterator for vertices_end()"; + +} + +#endif // INCLUDE GUARD