summaryrefslogtreecommitdiff
path: root/libc/test/src/math/fmax_test.cpp
diff options
context:
space:
mode:
authorSiva Chandra Reddy <sivachandra@google.com>2020-08-06 00:19:08 -0700
committerSiva Chandra Reddy <sivachandra@google.com>2020-08-07 23:34:15 -0700
commitdb936e0e915377a58032dccc13bedbfccf0a1ca8 (patch)
treeac237c9dd4aa323ca6f5b5bce51a3d31244fe991 /libc/test/src/math/fmax_test.cpp
parent5c9c4ade9d1269e83fdf8e5d8f62b376a76da2b0 (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.cpp45
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));
}
}
}