summaryrefslogtreecommitdiff
path: root/src/Witness_complex/test
diff options
context:
space:
mode:
authorskachano <skachano@636b058d-ea47-450e-bf9e-a15bfbe3eedb>2016-01-13 19:08:03 +0000
committerskachano <skachano@636b058d-ea47-450e-bf9e-a15bfbe3eedb>2016-01-13 19:08:03 +0000
commit7e40efa04f1cc528f49da82df1502af85feb78d1 (patch)
treec5b8a69ead54f94e89b94695aa29c88c6de38eb8 /src/Witness_complex/test
parent6775c601c9c9f7a1f0679dbb1fecb3bd5181eb6a (diff)
Added a test, moved the old test from example
git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/gudhi/branches/witness@964 636b058d-ea47-450e-bf9e-a15bfbe3eedb Former-commit-id: 5744fdd3d30735cebdbd7442f023585a70bf0fca
Diffstat (limited to 'src/Witness_complex/test')
-rw-r--r--src/Witness_complex/test/simple_witness_complex.cpp55
-rw-r--r--src/Witness_complex/test/witness_complex_points.cpp64
2 files changed, 119 insertions, 0 deletions
diff --git a/src/Witness_complex/test/simple_witness_complex.cpp b/src/Witness_complex/test/simple_witness_complex.cpp
new file mode 100644
index 00000000..c7d85a4d
--- /dev/null
+++ b/src/Witness_complex/test/simple_witness_complex.cpp
@@ -0,0 +1,55 @@
+/* This file is part of the Gudhi Library. The Gudhi library
+ * (Geometric Understanding in Higher Dimensions) is a generic C++
+ * library for computational topology.
+ *
+ * Author(s): Vincent Rouvreau
+ *
+ * Copyright (C) 2014 INRIA Sophia Antipolis-Méditerranée (France)
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <iostream>
+#include <ctime>
+//#include "gudhi/graph_simplicial_complex.h"
+#include "gudhi/Simplex_tree.h"
+#include "gudhi/Witness_complex.h"
+
+using namespace Gudhi;
+
+typedef std::vector< Vertex_handle > typeVectorVertex;
+typedef Witness_complex<Simplex_tree<>> WitnessComplex;
+//typedef std::pair<typeVectorVertex, Filtration_value> typeSimplex;
+//typedef std::pair< Simplex_tree<>::Simplex_handle, bool > typePairSimplexBool;
+
+int main (int argc, char * const argv[])
+{
+ Simplex_tree<> complex;
+ std::vector< typeVectorVertex > knn;
+ typeVectorVertex witness0 = {1,0,5,2,6,3,4}; knn.push_back(witness0 );
+ typeVectorVertex witness1 = {2,6,4,5,0,1,3}; knn.push_back(witness1 );
+ typeVectorVertex witness2 = {3,4,2,1,5,6,0}; knn.push_back(witness2 );
+ typeVectorVertex witness3 = {4,2,1,3,5,6,0}; knn.push_back(witness3 );
+ typeVectorVertex witness4 = {5,1,6,0,2,3,4}; knn.push_back(witness4 );
+ typeVectorVertex witness5 = {6,0,5,2,1,3,4}; knn.push_back(witness5 );
+ typeVectorVertex witness6 = {0,5,6,1,2,3,4}; knn.push_back(witness6 );
+ typeVectorVertex witness7 = {2,6,4,5,3,1,0}; knn.push_back(witness7 );
+ typeVectorVertex witness8 = {1,2,5,4,3,6,0}; knn.push_back(witness8 );
+ typeVectorVertex witness9 = {3,4,0,6,5,1,2}; knn.push_back(witness9 );
+ typeVectorVertex witness10 = {5,0,1,3,6,2,4}; knn.push_back(witness10);
+ typeVectorVertex witness11 = {5,6,1,0,2,3,4}; knn.push_back(witness11);
+ typeVectorVertex witness12 = {1,6,0,5,2,3,4}; knn.push_back(witness12);
+ WitnessComplex witnessComplex(knn, complex, 7, 7);
+ assert(witnessComplex.is_witness_complex(knn, true));
+}
diff --git a/src/Witness_complex/test/witness_complex_points.cpp b/src/Witness_complex/test/witness_complex_points.cpp
new file mode 100644
index 00000000..f9680874
--- /dev/null
+++ b/src/Witness_complex/test/witness_complex_points.cpp
@@ -0,0 +1,64 @@
+/* This file is part of the Gudhi Library. The Gudhi library
+ * (Geometric Understanding in Higher Dimensions) is a generic C++
+ * library for computational topology.
+ *
+ * Author(s): Vincent Rouvreau
+ *
+ * Copyright (C) 2014 INRIA Sophia Antipolis-Méditerranée (France)
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <iostream>
+#include <ctime>
+//#include "gudhi/graph_simplicial_complex.h"
+#include "gudhi/Simplex_tree.h"
+#include "gudhi/Witness_complex.h"
+#include "gudhi/Landmark_choice_by_random_point.h"
+#include "gudhi/Landmark_choice_by_furthest_point.h"
+
+
+using namespace Gudhi;
+
+typedef std::vector< Vertex_handle > typeVectorVertex;
+typedef Witness_complex<Simplex_tree<>> WitnessComplex;
+typedef std::vector<double> Point;
+//typedef std::pair<typeVectorVertex, Filtration_value> typeSimplex;
+//typedef std::pair< Simplex_tree<>::Simplex_handle, bool > typePairSimplexBool;
+
+int main (int argc, char * const argv[])
+{
+ std::vector< typeVectorVertex > knn;
+ std::vector< Point > points;
+ // Add grid points as witnesses
+ for (double i = 0; i < 10; i += 1.0)
+ for (double j = 0; j < 10; j += 1.0)
+ for (double k = 0; k < 10; k += 1.0)
+ points.push_back(Point({i,j,k}));
+
+ bool b_print_output = true;
+ // First test: random choice
+ Simplex_tree<> complex1;
+ Landmark_choice_by_random_point lcrp(points, 100, knn);
+ assert(!knn.empty());
+ WitnessComplex witnessComplex1(knn, complex1, 100, 3);
+ assert(witnessComplex1.is_witness_complex(knn, b_print_output));
+
+ // Second test: furthest choice
+ knn.clear();
+ Simplex_tree<> complex2;
+ Landmark_choice_by_furthest_point lcfp(points, 100, knn);
+ WitnessComplex witnessComplex2(knn, complex2, 100, 3);
+ assert(witnessComplex2.is_witness_complex(knn, b_print_output));
+}