From a106902b9f52115ec481029df194dffc4685e2ca Mon Sep 17 00:00:00 2001 From: ROUVREAU Vincent Date: Thu, 4 Jun 2020 16:39:24 +0200 Subject: Fix tests and utils --- src/Collapse/example/CMakeLists.txt | 6 +++--- .../example/edge_collapse_conserve_persistence.cpp | 15 +++++++++------ .../distance_matrix_edge_collapse_rips_persistence.cpp | 4 ++++ .../point_cloud_edge_collapse_rips_persistence.cpp | 6 +++++- 4 files changed, 21 insertions(+), 10 deletions(-) diff --git a/src/Collapse/example/CMakeLists.txt b/src/Collapse/example/CMakeLists.txt index 96354489..ba0e75e3 100644 --- a/src/Collapse/example/CMakeLists.txt +++ b/src/Collapse/example/CMakeLists.txt @@ -17,7 +17,7 @@ if (TBB_FOUND) endif() add_test(NAME Edge_collapse_conserve_persistence_1 COMMAND $ - "${CMAKE_SOURCE_DIR}/data/points/tore3D_300.off" "1.") + "${CMAKE_SOURCE_DIR}/data/points/tore3D_300.off" "0.2") - add_test(NAME Edge_collapse_conserve_persistence_2 COMMAND $ - "${CMAKE_SOURCE_DIR}/data/points/tore3D_300.off" "2.") +add_test(NAME Edge_collapse_conserve_persistence_2 COMMAND $ + "${CMAKE_SOURCE_DIR}/data/points/tore3D_300.off" "1.8") diff --git a/src/Collapse/example/edge_collapse_conserve_persistence.cpp b/src/Collapse/example/edge_collapse_conserve_persistence.cpp index 0beef061..93982081 100644 --- a/src/Collapse/example/edge_collapse_conserve_persistence.cpp +++ b/src/Collapse/example/edge_collapse_conserve_persistence.cpp @@ -109,28 +109,31 @@ int main(int argc, char* argv[]) { exit(-1); } + int ambient_dim = point_vector[0].size(); + // ***** Simplex tree from a flag complex built after collapse ***** Flag_complex_sparse_matrix mat_filt_edge_coll(proximity_graph); Simplex_tree stree_from_collapse; + for (Vertex_handle vertex = 0; vertex < point_vector.size(); vertex++) { + // insert the vertex with a 0. filtration value just like a Rips + stree_from_collapse.insert_simplex({vertex}, 0.); + } mat_filt_edge_coll.filtered_edge_collapse( [&stree_from_collapse](const std::vector& edge, Filtration_value filtration) { - // insert the 2 vertices with a 0. filtration value just like a Rips - stree_from_collapse.insert_simplex({edge[0]}, 0.); - stree_from_collapse.insert_simplex({edge[1]}, 0.); // insert the edge stree_from_collapse.insert_simplex(edge, filtration); }); + std::vector ppairs_from_collapse = get_persistence_pairs(stree_from_collapse, ambient_dim); + // ***** Simplex tree from the complete flag complex ***** Simplex_tree stree_wo_collapse; stree_wo_collapse.insert_graph(proximity_graph); - int ambient_dim = point_vector[0].size(); - - std::vector ppairs_from_collapse = get_persistence_pairs(stree_from_collapse, ambient_dim); std::vector ppairs_wo_collapse = get_persistence_pairs(stree_wo_collapse, ambient_dim); + // ***** Comparison ***** if (ppairs_wo_collapse.size() != ppairs_from_collapse.size()) { std::cerr << "Number of persistence pairs with collapse is " << ppairs_from_collapse.size() << std::endl; std::cerr << "Number of persistence pairs without collapse is " << ppairs_wo_collapse.size() << std::endl; diff --git a/src/Collapse/utilities/distance_matrix_edge_collapse_rips_persistence.cpp b/src/Collapse/utilities/distance_matrix_edge_collapse_rips_persistence.cpp index f39e9764..1ac017c2 100644 --- a/src/Collapse/utilities/distance_matrix_edge_collapse_rips_persistence.cpp +++ b/src/Collapse/utilities/distance_matrix_edge_collapse_rips_persistence.cpp @@ -93,6 +93,10 @@ int main(int argc, char* argv[]) { Flag_complex_sparse_matrix flag_complex(proximity_graph); Simplex_tree stree; + for (Vertex_handle vertex = 0; vertex < distances.size(); vertex++) { + // insert the vertex with a 0. filtration value just like a Rips + stree.insert_simplex({vertex}, 0.); + } flag_complex.filtered_edge_collapse( [&stree](std::vector edge, Filtration_value filtration) { // insert the 2 vertices with a 0. filtration value just like a Rips diff --git a/src/Collapse/utilities/point_cloud_edge_collapse_rips_persistence.cpp b/src/Collapse/utilities/point_cloud_edge_collapse_rips_persistence.cpp index 067b29e3..9624d516 100644 --- a/src/Collapse/utilities/point_cloud_edge_collapse_rips_persistence.cpp +++ b/src/Collapse/utilities/point_cloud_edge_collapse_rips_persistence.cpp @@ -68,7 +68,7 @@ int main(int argc, char* argv[]) { std::cout << "Successfully read " << point_vector.size() << " point_vector.\n"; std::cout << "Ambient dimension is " << point_vector[0].size() << ".\n"; - Proximity_graph proximity_graph = Gudhi::compute_proximity_graph(off_reader.get_point_cloud(), + Proximity_graph proximity_graph = Gudhi::compute_proximity_graph(point_vector, threshold, Gudhi::Euclidean_distance()); @@ -80,6 +80,10 @@ int main(int argc, char* argv[]) { Flag_complex_sparse_matrix mat_filt_edge_coll(proximity_graph); Simplex_tree stree; + for (Vertex_handle vertex = 0; vertex < point_vector.size(); vertex++) { + // insert the vertex with a 0. filtration value just like a Rips + stree.insert_simplex({vertex}, 0.); + } mat_filt_edge_coll.filtered_edge_collapse( [&stree](const std::vector& edge, Filtration_value filtration) { // insert the 2 vertices with a 0. filtration value just like a Rips -- cgit v1.2.3