From ebc4b696b0f7b4316b1dc5d28a07998096f398fb Mon Sep 17 00:00:00 2001 From: Vladyslav Baranovskyi Date: Thu, 7 Nov 2024 13:50:13 +0200 Subject: [PATCH] Added debug info for failing tests --- tests/Math/Float16.cpp | 59 ++++++++++++++++++++++++++++-------------- 1 file changed, 39 insertions(+), 20 deletions(-) diff --git a/tests/Math/Float16.cpp b/tests/Math/Float16.cpp index a5f750d..4559ca4 100644 --- a/tests/Math/Float16.cpp +++ b/tests/Math/Float16.cpp @@ -36,11 +36,15 @@ TEST_CASE("Infinity and NaN", "[float16]") fp16 neg_inf = -std::numeric_limits::infinity(); fp16 nan_val = std::numeric_limits::quiet_NaN(); - REQUIRE(std::isinf(static_cast(pos_inf))); - REQUIRE(std::isinf(static_cast(neg_inf))); - REQUIRE(std::isnan(static_cast(nan_val))); - REQUIRE(pos_inf > fp16(65504.0f)); - REQUIRE(neg_inf < fp16(-65504.0f)); + INFO("Value of pos_inf: " << static_cast(pos_inf)); + INFO("Value of nan_val: " << static_cast(nan_val)); + INFO("Result of comparison: " << (nan_val != nan_val)); + + CHECK(std::isinf(static_cast(pos_inf))); + CHECK(std::isinf(static_cast(neg_inf))); + CHECK(std::isnan(static_cast(nan_val))); + CHECK(pos_inf > fp16(65504.0f)); + CHECK(neg_inf < fp16(-65504.0f)); } TEST_CASE("Denormalized Values", "[float16]") @@ -58,11 +62,13 @@ TEST_CASE("Special Cases", "[float16]") fp16 min_normal(std::numeric_limits::min()); fp16 max_fp(std::numeric_limits::max()); - REQUIRE(almostEqual(static_cast(zero), 0.0f)); - REQUIRE(almostEqual(static_cast(neg_zero), 0.0f)); - REQUIRE(almostEqual(static_cast(epsilon_fp), 0.00097656f)); - REQUIRE(almostEqual(static_cast(min_normal), 6.10352e-5f)); - REQUIRE(almostEqual(static_cast(max_fp), 65504.0f)); + INFO("Value of max_fp: " << static_cast(max_fp)); + + CHECK(almostEqual(static_cast(zero), 0.0f)); + CHECK(almostEqual(static_cast(neg_zero), 0.0f)); + CHECK(almostEqual(static_cast(epsilon_fp), 0.00097656f)); + CHECK(almostEqual(static_cast(min_normal), 6.10352e-5f)); + CHECK(almostEqual(static_cast(max_fp), 65504.0f)); } TEST_CASE("Arithmetic Operations", "[float16]") @@ -83,18 +89,26 @@ TEST_CASE("Comparisons", "[float16]") { fp16 a(1.0f), b(2.0f), zero(0.0f), neg(-1.0f), inf = std::numeric_limits::infinity(); - REQUIRE(a < b); - REQUIRE(b > a); - REQUIRE(zero == -zero); - REQUIRE(a != neg); - REQUIRE(inf > b); - REQUIRE(!(inf < b)); + INFO("Value of inf: " << static_cast(inf)); + INFO("Value of zero: " << static_cast(zero)); + INFO("Value of neg: " << static_cast(neg)); + + CHECK(a < b); + CHECK(b > a); + CHECK(zero == -zero); + CHECK(a != neg); + CHECK(inf > b); + CHECK(!(inf < b)); } TEST_CASE("Arithmetic with Special Values", "[float16]") { fp16 a(2.0f), inf = std::numeric_limits::infinity(), nan = std::numeric_limits::quiet_NaN(); + INFO("Value of a: " << static_cast(a)); + INFO("Value of inf: " << static_cast(inf)); + INFO("Value of nan: " << static_cast(nan)); + REQUIRE(std::isinf(static_cast(a + inf))); REQUIRE(std::isinf(static_cast(inf - a))); REQUIRE(std::isnan(static_cast(inf - inf))); @@ -132,8 +146,13 @@ TEST_CASE("Special Comparison with Infinity and NaN", "[float16]") fp16 nan = std::numeric_limits::quiet_NaN(); fp16 one(1.0f); - REQUIRE(inf > one); - REQUIRE(neg_inf < -one); - REQUIRE(std::isnan(static_cast(nan))); - REQUIRE(nan != nan); + INFO("Value of one: " << static_cast(one)); + INFO("Value of inf: " << static_cast(inf)); + INFO("Value of neg_inf: " << static_cast(neg_inf)); + INFO("Value of nan: " << static_cast(nan)); + + CHECK(inf > one); + CHECK(neg_inf < -one); + CHECK(std::isnan(static_cast(nan))); + CHECK(nan != nan); } \ No newline at end of file