diff options
Diffstat (limited to 'geom_matching/wasserstein/tests/test_hera_wasserstein.cpp')
-rw-r--r-- | geom_matching/wasserstein/tests/test_hera_wasserstein.cpp | 53 |
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") { |