diff --git a/tests/test.h b/tests/test.h index 565cda4..718d3f1 100644 --- a/tests/test.h +++ b/tests/test.h @@ -19,6 +19,7 @@ #ifndef TEST_H_ #define TEST_H_ +#include #include #include #include @@ -28,10 +29,20 @@ void run(std::function func, const std::string& message); extern int g_total; extern int g_passes; +template bool equal(const T& a, const T& b) +{ + return a == b; +} + +template<> inline bool equal(const double& a, const double& b) +{ + return std::abs(a - b) < 1e-8; +} + template void test(const std::string& message, const T& expected, const T& actual) { g_total++; - if (expected == actual) { + if (equal(expected, actual)) { g_passes++; } else { std::cerr << "FAIL: " << message;