summaryrefslogtreecommitdiff
path: root/src/Subsampling/test
diff options
context:
space:
mode:
Diffstat (limited to 'src/Subsampling/test')
-rw-r--r--src/Subsampling/test/test_choose_farthest_point.cpp65
1 files changed, 50 insertions, 15 deletions
diff --git a/src/Subsampling/test/test_choose_farthest_point.cpp b/src/Subsampling/test/test_choose_farthest_point.cpp
index 87c2c38d..dff2cd4e 100644
--- a/src/Subsampling/test/test_choose_farthest_point.cpp
+++ b/src/Subsampling/test/test_choose_farthest_point.cpp
@@ -24,14 +24,15 @@
// # define TBB_USE_THREADING_TOOL
// #endif
-#define BOOST_TEST_DYN_LINK
-#define BOOST_TEST_MODULE "witness_complex_points"
-#include <boost/test/unit_test.hpp>
-#include <boost/mpl/list.hpp>
+// #define BOOST_TEST_DYN_LINK
+// #define BOOST_TEST_MODULE "test_choose_farthest_point"
+//#include <boost/test/unit_test.hpp>
+//#include <boost/mpl/list.hpp>
#include <gudhi/choose_by_farthest_point.h>
#include <vector>
#include <iterator>
+#include <gudhi/Clock.h>
#include <CGAL/Epick_d.h>
@@ -40,18 +41,52 @@ typedef typename K::FT FT;
typedef typename K::Point_d Point_d;
-BOOST_AUTO_TEST_CASE(test_choose_farthest_point) {
- std::vector< Point_d > points, results;
- // Add grid points (625 points)
- for (FT i = 0; i < 5; i += 1.0)
- for (FT j = 0; j < 5; j += 1.0)
- for (FT k = 0; k < 5; k += 1.0)
- for (FT l = 0; l < 5; l += 1.0)
+//BOOST_AUTO_TEST_CASE(test_choose_farthest_point)
+int main() {
+ std::vector< Point_d > points, results, results2;
+ K k;
+ Clock t;
+ // Add grid points (810000 points)
+ for (FT i = 0; i < 30; i += 1.0)
+ for (FT j = 0; j < 30; j += 1.0)
+ for (FT k = 0; k < 30; k += 1.0)
+ for (FT l = 0; l < 30; l += 1.0)
points.push_back(Point_d(std::vector<FT>({i, j, k, l})));
- results.clear();
- K k;
- Gudhi::subsampling::choose_by_farthest_point(k, points, 100, std::back_inserter(results));
+ unsigned final_size = 100, numeral = 1;
+ std::cout << "Test New Old\n";
+ while (final_size < 100001) {
+ std::cout << final_size << ": ";
+ results.clear();
+ t.begin();
+ Gudhi::subsampling::choose_by_farthest_point(k, points, final_size, 0, std::back_inserter(results));
+ t.end();
+ std::cout << t.num_seconds() << " s, ";
- assert(results.size() == 100);
+ // std::cout << "New algorithm result:\n";
+ // for (auto p: results)
+ // std::cout << p << std::endl;
+
+ results2.clear();
+ t.begin();
+ Gudhi::subsampling::choose_by_farthest_point_old(k, points, final_size, 0, std::back_inserter(results2));
+ t.end();
+ std::cout << t.num_seconds() << " s" << std::endl;
+
+
+ // std::cout << "Old algorithm result:\n";
+ // for (auto p: results2)
+ // std::cout << p << std::endl;
+
+ assert(results.size() == final_size);
+ assert(results2.size() == final_size);
+ assert(results == results2);
+
+ switch (numeral) {
+ case 1: numeral = 2; final_size *= 2; break;
+ case 2: numeral = 5; final_size = final_size/2*5; break;
+ case 5: numeral = 1; final_size *= 2; break;
+ default: assert(false);
+ }
+ }
}