diff options
| author | Siva Chandra Reddy <sivachandra@google.com> | 2020-08-06 00:19:08 -0700 |
|---|---|---|
| committer | Siva Chandra Reddy <sivachandra@google.com> | 2020-08-07 23:34:15 -0700 |
| commit | db936e0e915377a58032dccc13bedbfccf0a1ca8 (patch) | |
| tree | ac237c9dd4aa323ca6f5b5bce51a3d31244fe991 /libc/test/src/math/fmax_test.cpp | |
| parent | 5c9c4ade9d1269e83fdf8e5d8f62b376a76da2b0 (diff) | |
[libc][NFC] Add library of floating point test matchers.
This eliminates UnitTest's dependency on FPUtil and hence prevents
non-math tests from depending indirectly on FPUtil. The patch
essentially moves some of the existing pieces into a library of its own.
Along the way, renamed add_math_unittest to add_fp_unittest.
Reviewed By: lntue
Differential Revision: https://reviews.llvm.org/D85486
Diffstat (limited to 'libc/test/src/math/fmax_test.cpp')
| -rw-r--r-- | libc/test/src/math/fmax_test.cpp | 45 |
1 files changed, 23 insertions, 22 deletions
diff --git a/libc/test/src/math/fmax_test.cpp b/libc/test/src/math/fmax_test.cpp index 8d1c6c276382..0dc57e4290fc 100644 --- a/libc/test/src/math/fmax_test.cpp +++ b/libc/test/src/math/fmax_test.cpp @@ -9,6 +9,7 @@ #include "include/math.h" #include "src/math/fmax.h" #include "utils/FPUtil/FPBits.h" +#include "utils/FPUtil/TestHelpers.h" #include "utils/UnitTest/Test.h" using FPBits = __llvm_libc::fputil::FPBits<double>; @@ -18,36 +19,36 @@ double inf = FPBits::inf(); double negInf = FPBits::negInf(); TEST(FmaxTest, NaNArg) { - EXPECT_EQ(inf, __llvm_libc::fmax(nan, inf)); - EXPECT_EQ(negInf, __llvm_libc::fmax(negInf, nan)); - EXPECT_EQ(0.0, __llvm_libc::fmax(nan, 0.0)); - EXPECT_EQ(-0.0, __llvm_libc::fmax(-0.0, nan)); - EXPECT_EQ(-1.2345, __llvm_libc::fmax(nan, -1.2345)); - EXPECT_EQ(1.2345, __llvm_libc::fmax(1.2345, nan)); + EXPECT_FP_EQ(inf, __llvm_libc::fmax(nan, inf)); + EXPECT_FP_EQ(negInf, __llvm_libc::fmax(negInf, nan)); + EXPECT_FP_EQ(0.0, __llvm_libc::fmax(nan, 0.0)); + EXPECT_FP_EQ(-0.0, __llvm_libc::fmax(-0.0, nan)); + EXPECT_FP_EQ(-1.2345, __llvm_libc::fmax(nan, -1.2345)); + EXPECT_FP_EQ(1.2345, __llvm_libc::fmax(1.2345, nan)); EXPECT_NE(isnan(__llvm_libc::fmax(nan, nan)), 0); } TEST(FmaxTest, InfArg) { - EXPECT_EQ(inf, __llvm_libc::fmax(negInf, inf)); - EXPECT_EQ(inf, __llvm_libc::fmax(inf, 0.0)); - EXPECT_EQ(inf, __llvm_libc::fmax(-0.0, inf)); - EXPECT_EQ(inf, __llvm_libc::fmax(inf, 1.2345)); - EXPECT_EQ(inf, __llvm_libc::fmax(-1.2345, inf)); + EXPECT_FP_EQ(inf, __llvm_libc::fmax(negInf, inf)); + EXPECT_FP_EQ(inf, __llvm_libc::fmax(inf, 0.0)); + EXPECT_FP_EQ(inf, __llvm_libc::fmax(-0.0, inf)); + EXPECT_FP_EQ(inf, __llvm_libc::fmax(inf, 1.2345)); + EXPECT_FP_EQ(inf, __llvm_libc::fmax(-1.2345, inf)); } TEST(FmaxTest, NegInfArg) { - EXPECT_EQ(inf, __llvm_libc::fmax(inf, negInf)); - EXPECT_EQ(0.0, __llvm_libc::fmax(negInf, 0.0)); - EXPECT_EQ(-0.0, __llvm_libc::fmax(-0.0, negInf)); - EXPECT_EQ(-1.2345, __llvm_libc::fmax(negInf, -1.2345)); - EXPECT_EQ(1.2345, __llvm_libc::fmax(1.2345, negInf)); + EXPECT_FP_EQ(inf, __llvm_libc::fmax(inf, negInf)); + EXPECT_FP_EQ(0.0, __llvm_libc::fmax(negInf, 0.0)); + EXPECT_FP_EQ(-0.0, __llvm_libc::fmax(-0.0, negInf)); + EXPECT_FP_EQ(-1.2345, __llvm_libc::fmax(negInf, -1.2345)); + EXPECT_FP_EQ(1.2345, __llvm_libc::fmax(1.2345, negInf)); } TEST(FmaxTest, BothZero) { - EXPECT_EQ(0.0, __llvm_libc::fmax(0.0, 0.0)); - EXPECT_EQ(0.0, __llvm_libc::fmax(-0.0, 0.0)); - EXPECT_EQ(0.0, __llvm_libc::fmax(0.0, -0.0)); - EXPECT_EQ(-0.0, __llvm_libc::fmax(-0.0, -0.0)); + EXPECT_FP_EQ(0.0, __llvm_libc::fmax(0.0, 0.0)); + EXPECT_FP_EQ(0.0, __llvm_libc::fmax(-0.0, 0.0)); + EXPECT_FP_EQ(0.0, __llvm_libc::fmax(0.0, -0.0)); + EXPECT_FP_EQ(-0.0, __llvm_libc::fmax(-0.0, -0.0)); } TEST(FmaxTest, InDoubleRange) { @@ -65,9 +66,9 @@ TEST(FmaxTest, InDoubleRange) { continue; if (x > y) { - ASSERT_EQ(x, __llvm_libc::fmax(x, y)); + EXPECT_FP_EQ(x, __llvm_libc::fmax(x, y)); } else { - ASSERT_EQ(y, __llvm_libc::fmax(x, y)); + EXPECT_FP_EQ(y, __llvm_libc::fmax(x, y)); } } } |
