aboutsummaryrefslogtreecommitdiff
path: root/libc/test/src/math/atan2f_test.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'libc/test/src/math/atan2f_test.cpp')
-rw-r--r--libc/test/src/math/atan2f_test.cpp19
1 files changed, 15 insertions, 4 deletions
diff --git a/libc/test/src/math/atan2f_test.cpp b/libc/test/src/math/atan2f_test.cpp
index 50ab382..56b6967 100644
--- a/libc/test/src/math/atan2f_test.cpp
+++ b/libc/test/src/math/atan2f_test.cpp
@@ -8,11 +8,18 @@
#include "hdr/math_macros.h"
#include "src/__support/FPUtil/FPBits.h"
+#include "src/__support/macros/optimization.h"
#include "src/math/atan2f.h"
#include "test/UnitTest/FPMatcher.h"
#include "test/UnitTest/Test.h"
#include "utils/MPFRWrapper/MPFRUtils.h"
+#ifdef LIBC_MATH_HAS_SKIP_ACCURATE_PASS
+#define TOLERANCE 1
+#else
+#define TOLERANCE 0
+#endif // LIBC_MATH_HAS_SKIP_ACCURATE_PASS
+
using LlvmLibcAtan2fTest = LIBC_NAMESPACE::testing::FPTest<float>;
using LIBC_NAMESPACE::testing::tlog;
@@ -36,16 +43,20 @@ TEST_F(LlvmLibcAtan2fTest, TrickyInputs) {
float x = INPUTS[i].x;
float y = INPUTS[i].y;
ASSERT_MPFR_MATCH_ALL_ROUNDING(mpfr::Operation::Atan2, INPUTS[i],
- LIBC_NAMESPACE::atan2f(x, y), 0.5);
+ LIBC_NAMESPACE::atan2f(x, y),
+ TOLERANCE + 0.5);
INPUTS[i].x = -INPUTS[i].x;
ASSERT_MPFR_MATCH_ALL_ROUNDING(mpfr::Operation::Atan2, INPUTS[i],
- LIBC_NAMESPACE::atan2f(-x, y), 0.5);
+ LIBC_NAMESPACE::atan2f(-x, y),
+ TOLERANCE + 0.5);
INPUTS[i].y = -INPUTS[i].y;
ASSERT_MPFR_MATCH_ALL_ROUNDING(mpfr::Operation::Atan2, INPUTS[i],
- LIBC_NAMESPACE::atan2f(-x, -y), 0.5);
+ LIBC_NAMESPACE::atan2f(-x, -y),
+ TOLERANCE + 0.5);
INPUTS[i].x = -INPUTS[i].x;
ASSERT_MPFR_MATCH_ALL_ROUNDING(mpfr::Operation::Atan2, INPUTS[i],
- LIBC_NAMESPACE::atan2f(x, -y), 0.5);
+ LIBC_NAMESPACE::atan2f(x, -y),
+ TOLERANCE + 0.5);
}
}