summaryrefslogtreecommitdiff
path: root/src/Skeleton_blocker/test
diff options
context:
space:
mode:
authorsalinasd <salinasd@636b058d-ea47-450e-bf9e-a15bfbe3eedb>2014-12-18 13:29:14 +0000
committersalinasd <salinasd@636b058d-ea47-450e-bf9e-a15bfbe3eedb>2014-12-18 13:29:14 +0000
commitf3b0595a69340ca5fee47b8c5686f69262beaa58 (patch)
tree3f74420f1dfce588016f82ba138a4005d5cb4cd7 /src/Skeleton_blocker/test
parentc685b05b2ed30d96554ec3271bbbb68f874c54e1 (diff)
skbl add_simplex method
git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/gudhi/trunk@382 636b058d-ea47-450e-bf9e-a15bfbe3eedb Former-commit-id: 0d325bee25bf0f45741aadd29ffe9628dcabb413
Diffstat (limited to 'src/Skeleton_blocker/test')
-rw-r--r--src/Skeleton_blocker/test/TestSimplifiable.cpp76
1 files changed, 67 insertions, 9 deletions
diff --git a/src/Skeleton_blocker/test/TestSimplifiable.cpp b/src/Skeleton_blocker/test/TestSimplifiable.cpp
index 2dafda52..49c064c1 100644
--- a/src/Skeleton_blocker/test/TestSimplifiable.cpp
+++ b/src/Skeleton_blocker/test/TestSimplifiable.cpp
@@ -151,11 +151,7 @@ bool test_link_condition1(){
}
-
-
-bool test_collapse1(){
- // xxx implement remove_star(simplex) before
-
+bool test_collapse0(){
Complex complex(5);
build_complete(4,complex);
complex.add_vertex();
@@ -176,6 +172,27 @@ bool test_collapse1(){
return blocker123_here;
}
+
+bool test_collapse1(){
+ Complex complex(5);
+ build_complete(4,complex);
+ complex.add_blocker(Simplex_handle(Vertex_handle(0),Vertex_handle(1),Vertex_handle(2),Vertex_handle(3)));
+ // Print result
+ cerr << "initial complex :\n"<< complex.to_string();
+ cerr <<endl<<endl;
+
+ Simplex_handle simplex_123(Vertex_handle(1),Vertex_handle(2),Vertex_handle(3));
+ complex.remove_star(simplex_123);
+ cerr << "complex.remove_star(1,2,3):\n"<< complex.to_string();
+ cerr <<endl<<endl;
+
+ // verification
+ bool res = complex.contains_blocker(simplex_123);
+ res = res && complex.num_blockers()==1;
+ cerr <<"----> Ocomplex \n";
+ return res;
+}
+
bool test_collapse2(){
Complex complex(5);
build_complete(4,complex);
@@ -216,13 +233,50 @@ bool test_collapse3(){
bool blocker134_here = complex.contains_blocker(Simplex_handle(Vertex_handle(1),Vertex_handle(3),Vertex_handle(4)));
bool blocker1234_here = complex.contains_blocker(Simplex_handle(Vertex_handle(1),Vertex_handle(2),Vertex_handle(3),Vertex_handle(4)));
- // verification
- // assert_blocker(complex,1,2,3);
- // assert(!complex.ContainsBlocker(new AddressSimplex(1,2,3,4)));
- cerr <<"----> Ocomplex \n";
return blocker134_here && !blocker1234_here;
}
+bool test_add_simplex(){
+ Complex complex(5);
+ build_complete(4,complex);
+ complex.add_blocker(Simplex_handle(Vertex_handle(0),Vertex_handle(1),Vertex_handle(2)));
+ // Print result
+ cerr << "initial complex:\n"<< complex.to_string();
+ cerr <<endl<<endl;
+
+ complex.add_simplex(Simplex_handle(Vertex_handle(0),Vertex_handle(1),Vertex_handle(2),Vertex_handle(3)));
+ cerr << "complex after add_simplex:\n"<< complex.to_string();
+
+ return complex.num_blockers()==0;
+}
+
+bool test_add_simplex2(){
+ Complex complex(5);
+ build_complete(4,complex);
+ complex.add_blocker(Simplex_handle(Vertex_handle(0),Vertex_handle(1),Vertex_handle(2)));
+ // Print result
+ cerr << "initial complex:\n"<< complex.to_string();
+ cerr <<endl<<endl;
+
+ Complex copy;
+
+ std::vector<Simplex_handle> simplices(complex.simplex_range().begin(),complex.simplex_range().end());
+ sort(simplices.begin(),simplices.end(),[&](const Simplex_handle& s1,const Simplex_handle& s2){
+ return s1.dimension()<s2.dimension();
+ });
+ for(const auto & simplex : simplices){
+ if(!copy.contains(simplex))
+ copy.add_simplex(simplex);
+ }
+
+ complex.add_simplex(Simplex_handle(Vertex_handle(0),Vertex_handle(1),Vertex_handle(2),Vertex_handle(3)));
+ cerr << "complex after add_simplex:\n"<< complex.to_string();
+
+ return complex.num_blockers()==copy.num_blockers() &&
+ complex.num_edges()==copy.num_edges() &&
+ complex.num_vertices()==copy.num_vertices();
+}
+
bool test_remove_popable_blockers(){
@@ -282,10 +336,14 @@ int main (int argc, char *argv[])
tests_simplifiable_complex.add("Test remove popable blockers",test_remove_popable_blockers);
+ tests_simplifiable_complex.add("Test collapse 0",test_collapse0);
tests_simplifiable_complex.add("Test collapse 1",test_collapse1);
tests_simplifiable_complex.add("Test collapse 2",test_collapse2);
tests_simplifiable_complex.add("Test collapse 3",test_collapse3);
+ tests_simplifiable_complex.add("Test add simplex",test_add_simplex);
+ tests_simplifiable_complex.add("Test add simplex2",test_add_simplex2);
+
tests_simplifiable_complex.run();