From 777f97837b93d76974b1e626267725d8f5c832ca Mon Sep 17 00:00:00 2001 From: Hans-Christian Ebke Date: Mon, 11 May 2015 16:28:10 +0000 Subject: [PATCH] Added unit test for bool PropertyManager::set_range. git-svn-id: http://www.openmesh.org/svnrepo/OpenMesh/trunk@1264 fdac6126-5c0c-442c-9429-916003d36597 --- src/Unittests/unittests_propertymanager.cc | 102 +++++++++++++++++++++ 1 file changed, 102 insertions(+) create mode 100644 src/Unittests/unittests_propertymanager.cc diff --git a/src/Unittests/unittests_propertymanager.cc b/src/Unittests/unittests_propertymanager.cc new file mode 100644 index 00000000..c8b62643 --- /dev/null +++ b/src/Unittests/unittests_propertymanager.cc @@ -0,0 +1,102 @@ +#include +#include +#include + +#include + +namespace { + +class OpenMeshPropertyManager : public OpenMeshBase { + + protected: + + // This function is called before each test is run + virtual void SetUp() { + } + + // 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 + * ==================================================================== + */ + +/* + * Collapsing a tetrahedron + */ +TEST_F(OpenMeshPropertyManager, set_range_bool) { + + mesh_.clear(); + + // 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(0, 0, 1)); + + // Add two faces + std::vector face_vhandles; + + face_vhandles.push_back(vhandle[0]); + face_vhandles.push_back(vhandle[1]); + face_vhandles.push_back(vhandle[2]); + mesh_.add_face(face_vhandles); + + face_vhandles.clear(); + + face_vhandles.push_back(vhandle[0]); + face_vhandles.push_back(vhandle[2]); + face_vhandles.push_back(vhandle[3]); + mesh_.add_face(face_vhandles); + + OpenMesh::PropertyManager< + OpenMesh::VPropHandleT, Mesh> pm_v_bool(mesh_, "pm_v_bool"); + pm_v_bool.set_range(mesh_.vertices_begin(), mesh_.vertices_end(), false); + for (int i = 0; i < 4; ++i) + ASSERT_EQ(false, pm_v_bool[vhandle[i]]); + pm_v_bool.set_range(mesh_.vertices_begin(), mesh_.vertices_end(), true); + for (int i = 0; i < 4; ++i) + ASSERT_EQ(true, pm_v_bool[vhandle[i]]); + + OpenMesh::PropertyManager< + OpenMesh::EPropHandleT, Mesh> pm_e_bool(mesh_, "pm_e_bool"); + pm_e_bool.set_range(mesh_.edges_begin(), mesh_.edges_end(), false); + for (Mesh::EdgeIter e_it = mesh_.edges_begin(), f_end = mesh_.edges_end(); + e_it != f_end; ++e_it) + ASSERT_EQ(false, pm_e_bool[*e_it]); + pm_e_bool.set_range(mesh_.edges_begin(), mesh_.edges_end(), true); + for (Mesh::EdgeIter e_it = mesh_.edges_begin(), f_end = mesh_.edges_end(); + e_it != f_end; ++e_it) + ASSERT_EQ(true, pm_e_bool[*e_it]); + + OpenMesh::PropertyManager< + OpenMesh::FPropHandleT, Mesh> pm_f_bool(mesh_, "pm_f_bool"); + pm_f_bool.set_range(mesh_.faces_begin(), mesh_.faces_end(), false); + for (Mesh::FaceIter f_it = mesh_.faces_begin(), f_end = mesh_.faces_end(); + f_it != f_end; ++f_it) + ASSERT_EQ(false, pm_f_bool[*f_it]); + pm_f_bool.set_range(mesh_.faces_begin(), mesh_.faces_end(), true); + for (Mesh::FaceIter f_it = mesh_.faces_begin(), f_end = mesh_.faces_end(); + f_it != f_end; ++f_it) + ASSERT_EQ(true, pm_f_bool[*f_it]); +} + + + + + + + + +}