diff options
author | vrouvrea <vrouvrea@636b058d-ea47-450e-bf9e-a15bfbe3eedb> | 2016-09-16 14:34:07 +0000 |
---|---|---|
committer | vrouvrea <vrouvrea@636b058d-ea47-450e-bf9e-a15bfbe3eedb> | 2016-09-16 14:34:07 +0000 |
commit | 63f15e8f3cab97b12539ad82c4423de6d361204a (patch) | |
tree | 2ad228f3135e6a457feafd7f8d3572846dace0ee /src/Skeleton_blocker/test/TestGeometricComplex.cpp | |
parent | ef4ee52fdc6c52629c8c3959c7a15b5280a40373 (diff) |
Rewrite tests wit BOOST tests
git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/gudhi/branches/warning_fix@1506 636b058d-ea47-450e-bf9e-a15bfbe3eedb
Former-commit-id: 5afe034e18381c4921987457fd75f15c21b3aed1
Diffstat (limited to 'src/Skeleton_blocker/test/TestGeometricComplex.cpp')
-rw-r--r-- | src/Skeleton_blocker/test/TestGeometricComplex.cpp | 83 |
1 files changed, 47 insertions, 36 deletions
diff --git a/src/Skeleton_blocker/test/TestGeometricComplex.cpp b/src/Skeleton_blocker/test/TestGeometricComplex.cpp index c5351b04..d035b2c3 100644 --- a/src/Skeleton_blocker/test/TestGeometricComplex.cpp +++ b/src/Skeleton_blocker/test/TestGeometricComplex.cpp @@ -25,9 +25,13 @@ #include <string> #include <fstream> #include <sstream> -#include <gudhi/Test.h> -#include <gudhi/Skeleton_blocker.h> +#define BOOST_TEST_DYN_LINK +#define BOOST_TEST_MODULE "skeleton_blocker_geometric_complex" +#include <boost/test/unit_test.hpp> +#include <boost/mpl/list.hpp> + +#include <gudhi/Skeleton_blocker.h> struct Geometry_trait { typedef std::vector<double> Point; @@ -37,24 +41,22 @@ typedef Geometry_trait::Point Point; typedef Gudhi::skeleton_blocker::Skeleton_blocker_simple_geometric_traits<Geometry_trait> Complex_geometric_traits; typedef Gudhi::skeleton_blocker::Skeleton_blocker_geometric_complex< Complex_geometric_traits > Complex; typedef Complex::Vertex_handle Vertex_handle; +typedef Complex_geometric_traits::Root_vertex_handle Root_vertex_handle; -bool test_constructor1() { +BOOST_AUTO_TEST_CASE(test_skeleton_blocker_off_reader_writer) { Complex complex; Gudhi::skeleton_blocker::Skeleton_blocker_off_reader<Complex> off_reader("test2.off", complex); - if (!off_reader.is_valid()) { - std::cerr << "Unable to read file" << std::endl; - return false; - } - - + BOOST_CHECK(off_reader.is_valid()); + std::cout << "complex has " << complex.num_vertices() << " vertices, " << complex.num_blockers() << " blockers, " << - complex.num_edges() << " edges and" << + complex.num_edges() << " edges and " << complex.num_triangles() << " triangles."; - if (complex.num_vertices() != 7 || complex.num_edges() != 12 || complex.num_triangles() != 6) - return false; + BOOST_CHECK(complex.num_vertices() == 7); + BOOST_CHECK(complex.num_edges() == 12); + BOOST_CHECK(complex.num_triangles() == 6); Gudhi::skeleton_blocker::Skeleton_blocker_off_writer<Complex> off_writer("tmp.off", complex); Complex same; @@ -63,31 +65,47 @@ bool test_constructor1() { std::cout << "\ncomplex:" << complex.to_string() << std::endl; std::cout << "\nsame:" << same.to_string() << std::endl; - return (complex == same); + BOOST_CHECK(complex == same); } -bool test_constructor2() { +BOOST_AUTO_TEST_CASE(test_skeleton_blocker_abstract_link) { Complex complex; Gudhi::skeleton_blocker::Skeleton_blocker_off_reader<Complex> off_reader("test2.off", complex); - if (!off_reader.is_valid()) { - std::cerr << "Unable to read file" << std::endl; - return false; - } + BOOST_CHECK(off_reader.is_valid()); + std::cout << "complex has " << complex.num_vertices() << " vertices, " << complex.num_blockers() << " blockers, " << - complex.num_edges() << " edges and" << + complex.num_edges() << " edges and " << complex.num_triangles() << " triangles."; - if (complex.num_vertices() != 7 || complex.num_edges() != 12 || complex.num_triangles() != 6) - return false; + BOOST_CHECK(complex.num_vertices() == 7); + BOOST_CHECK(complex.num_edges() == 12); + BOOST_CHECK(complex.num_triangles() == 6); auto link_0 = complex.abstract_link(Vertex_handle(0)); - std::cout << "\n link(0):" << link_0.to_string() << std::endl; + BOOST_CHECK(link_0.num_vertices() == 2); + BOOST_CHECK(link_0.num_edges() == 1); + BOOST_CHECK(link_0.num_blockers() == 0); + + // Check the 2 link vertices + auto vertex_handle = link_0.vertex_range().begin(); + BOOST_CHECK(link_0[*vertex_handle].get_id() == Root_vertex_handle(1)); + vertex_handle++; + BOOST_CHECK(link_0[*(vertex_handle)].get_id() == Root_vertex_handle(4)); + + // Check the lonely link edge + auto edge_handle = link_0.edge_range().begin(); + BOOST_CHECK(link_0[*edge_handle].first() == Root_vertex_handle(1)); + BOOST_CHECK(link_0[*(edge_handle)].second() == Root_vertex_handle(4)); + auto link_geometric_0 = complex.link(Vertex_handle(0)); + std::cout << "\n link_geometric(0):" << link_geometric_0.to_string() << std::endl; + + BOOST_CHECK(link_0 == link_geometric_0); auto print_point = [&](Vertex_handle v) { for (auto x : link_geometric_0.point(v)) std::cout << x << " "; @@ -96,19 +114,12 @@ bool test_constructor2() { std::for_each(link_geometric_0.vertex_range().begin(), link_geometric_0.vertex_range().end(), print_point); - // for(auto v : link_geometric_0.vertex_range()) - // std::cout<<"point("<<v<<"):"<<link_geometric_0.point(v)<<std::endl; - - return link_0.num_vertices() == 2; -} - -int main(int argc, char *argv[]) { - Tests tests_geometric_complex; - tests_geometric_complex.add("Test constructor 1", test_constructor1); - tests_geometric_complex.add("Test constructor 2", test_constructor2); + // Check the 2 link vertices + vertex_handle = link_geometric_0.vertex_range().begin(); + std::vector<double> point_1 = {0,2,0}; + std::vector<double> point_4 = {-1,1,0}; + BOOST_CHECK(link_geometric_0.point(*vertex_handle) == point_1); + vertex_handle++; + BOOST_CHECK(link_geometric_0.point(*vertex_handle) == point_4); - if (tests_geometric_complex.run()) - return EXIT_SUCCESS; - else - return EXIT_FAILURE; } |