Make tests expect_close macro show actual values of compared expressions

This commit is contained in:
Nikita Lisitsa 2022-01-21 12:09:53 +03:00
parent 73820d4844
commit 454d975ba6

View file

@ -102,7 +102,7 @@ void name ## _test_case ([[maybe_unused]] ::psemek::test::context & _ctx)
#define expect_gequal(expr1, expr2) if ((expr1) < (expr2)) psemek_test_fail(#expr1, " (", (expr1), ") < ", #expr2, " (", (expr2), ")")
#define expect_small(expr1, expr2) if (std::abs((expr1)) > (expr2)) psemek_test_fail("abs(", #expr1, ") (", std::abs((expr1)), ") >= ", #expr2, " (", (expr2), ")")
#define expect_close(expr1, expr2, expr3) if (std::abs((expr1) - (expr2)) > (expr3)) psemek_test_fail("abs(", #expr1, " - ", #expr2, ") (", std::abs((expr1) - (expr2)), ") >= ", #expr3, " (", (expr3), ")")
#define expect_close(expr1, expr2, expr3) if (std::abs((expr1) - (expr2)) > (expr3)) psemek_test_fail(#expr1, " (", (expr1), ") and ", #expr2, " (", (expr2), ") differ by more than ", (expr3))
#define expect_throw(expr, type) do { bool thrown = false; try { (void)(expr); } catch (type const &) { thrown = true; } if (!thrown) psemek_test_fail(#expr, " didn't throw ", #type); } while (false)