From 0e17d3cc8b89fc9fae4f358bb6a8cedaeaff6f0b Mon Sep 17 00:00:00 2001 From: vrouvrea Date: Thu, 14 Feb 2019 14:32:14 +0000 Subject: Fix of duplicated vertices in list. Modify dimension computation. git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/gudhi/branches/simplex_tree_insert_duplicated_vertices_fix_vincent@4107 636b058d-ea47-450e-bf9e-a15bfbe3eedb Former-commit-id: e6ac9ee4c9d34e59c07d9f5b16b13b5151608009 --- src/Simplex_tree/test/simplex_tree_unit_test.cpp | 63 ++++++++++++++++++++++-- 1 file changed, 60 insertions(+), 3 deletions(-) (limited to 'src/Simplex_tree/test') diff --git a/src/Simplex_tree/test/simplex_tree_unit_test.cpp b/src/Simplex_tree/test/simplex_tree_unit_test.cpp index b27bbce8..f2a5d54d 100644 --- a/src/Simplex_tree/test/simplex_tree_unit_test.cpp +++ b/src/Simplex_tree/test/simplex_tree_unit_test.cpp @@ -2,10 +2,11 @@ #include #include #include -#include // std::pair, std::make_pair -#include // float comparison +#include // std::pair, std::make_pair +#include // float comparison #include -#include // greater +#include // greater +#include // std::tie #define BOOST_TEST_DYN_LINK #define BOOST_TEST_MODULE "simplex_tree" @@ -921,3 +922,59 @@ BOOST_AUTO_TEST_CASE_TEMPLATE(simplex_tree_insert_graph, Graph, list_of_graph_va BOOST_CHECK(st1 == st2); } + +BOOST_AUTO_TEST_CASE_TEMPLATE(insert_duplicated_vertices, typeST, list_of_tested_variants) { + std::cout << "********************************************************************" << std::endl; + std::cout << "TEST INSERT DUPLICATED VERTICES" << std::endl; + typeST st; + + typename typeST::Simplex_handle sh; + bool success = false; + std::tie(sh, success) = st.insert_simplex_and_subfaces({1}); + BOOST_CHECK(success); + BOOST_CHECK(sh != st.null_simplex()); + std::cout << "st.dimension(sh)= " << st.dimension(sh) << std::endl; + BOOST_CHECK(st.dimension(sh) == 0); + std::tie(sh, success) = st.insert_simplex_and_subfaces({2, 2}); + BOOST_CHECK(success); + BOOST_CHECK(sh != st.null_simplex()); + std::cout << "st.dimension(sh)= " << st.dimension(sh) << std::endl; + BOOST_CHECK(st.dimension(sh) == 0); + std::tie(sh, success) = st.insert_simplex_and_subfaces({3, 3, 3}); + BOOST_CHECK(success); + BOOST_CHECK(sh != st.null_simplex()); + std::cout << "st.dimension(sh)= " << st.dimension(sh) << std::endl; + BOOST_CHECK(st.dimension(sh) == 0); + std::tie(sh, success) = st.insert_simplex_and_subfaces({4, 4, 4, 4}); + BOOST_CHECK(success); + BOOST_CHECK(sh != st.null_simplex()); + std::cout << "st.dimension(sh)= " << st.dimension(sh) << std::endl; + BOOST_CHECK(st.dimension(sh) == 0); + + std::cout << "dimension =" << st.dimension() << " - num_vertices = " << st.num_vertices() + << " - num_simplices = " << st.num_simplices() << std::endl; + BOOST_CHECK(st.dimension() == 0); + BOOST_CHECK(st.num_simplices() == st.num_vertices()); + + std::tie(sh, success) = st.insert_simplex_and_subfaces({2, 1, 1, 2}); + BOOST_CHECK(success); + BOOST_CHECK(sh != st.null_simplex()); + std::cout << "st.dimension(sh)= " << st.dimension(sh) << std::endl; + BOOST_CHECK(st.dimension(sh) == 1); + + std::cout << "dimension =" << st.dimension() << " - num_vertices = " << st.num_vertices() + << " - num_simplices = " << st.num_simplices() << std::endl; + BOOST_CHECK(st.dimension() == 1); + BOOST_CHECK(st.num_simplices() == st.num_vertices() + 1); + + // Already inserted + std::tie(sh, success) = st.insert_simplex_and_subfaces({1, 2, 2, 1}); + BOOST_CHECK(!success); + BOOST_CHECK(sh == st.null_simplex()); + + std::cout << "dimension =" << st.dimension() << " - num_vertices = " << st.num_vertices() + << " - num_simplices = " << st.num_simplices() << std::endl; + BOOST_CHECK(st.dimension() == 1); + BOOST_CHECK(st.num_simplices() == st.num_vertices() + 1); + +} -- cgit v1.2.3