summaryrefslogtreecommitdiff
path: root/geom_matching/wasserstein/tests/test_hera_wasserstein.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'geom_matching/wasserstein/tests/test_hera_wasserstein.cpp')
-rw-r--r--geom_matching/wasserstein/tests/test_hera_wasserstein.cpp53
1 files changed, 2 insertions, 51 deletions
diff --git a/geom_matching/wasserstein/tests/test_hera_wasserstein.cpp b/geom_matching/wasserstein/tests/test_hera_wasserstein.cpp
index 3d5db5f..0a80d2f 100644
--- a/geom_matching/wasserstein/tests/test_hera_wasserstein.cpp
+++ b/geom_matching/wasserstein/tests/test_hera_wasserstein.cpp
@@ -8,61 +8,12 @@
#undef LOG_AUCTION
#include "wasserstein.h"
+#include "tests_reader.h"
+using namespace hera_test;
using PairVector = std::vector<std::pair<double, double>>;
-std::vector<std::string> split_on_delim(const std::string& s, char delim)
-{
- std::stringstream ss(s);
- std::string token;
- std::vector<std::string> tokens;
- while(std::getline(ss, token, delim)) {
- tokens.push_back(token);
- }
- return tokens;
-}
-
-
-// single row in a file with test cases
-struct TestFromFileCase {
-
- std::string file_1;
- std::string file_2;
- double q;
- double internal_p;
- double answer;
-
- TestFromFileCase(std::string s)
- {
- auto tokens = split_on_delim(s, ' ');
- assert(tokens.size() == 5);
-
- file_1 = tokens.at(0);
- file_2 = tokens.at(1);
- q = std::stod(tokens.at(2));
- internal_p = std::stod(tokens.at(3));
- answer = std::stod(tokens.at(4));
-
- if ( q < 1.0 or std::isinf(q) or
- (internal_p != hera::get_infinity<double>() and internal_p < 1.0)) {
- throw std::runtime_error("Bad line in test_list.txt");
- }
- }
-};
-
-std::ostream& operator<<(std::ostream& out, const TestFromFileCase& s)
-{
- out << "[" << s.file_1 << ", " << s.file_2 << ", q = " << s.q << ", norm = ";
- if (s.internal_p != hera::get_infinity()) {
- out << s.internal_p;
- } else {
- out << "infinity";
- }
- out << ", answer = " << s.answer << "]";
- return out;
-}
-
TEST_CASE("simple cases", "wasserstein_dist")
{