Skip to content

Commit d69f987

Browse files
committed
[libc][math] Fix RIntTest.h not expecting FP exceptions
1 parent ea477a6 commit d69f987

File tree

1 file changed

+26
-19
lines changed

1 file changed

+26
-19
lines changed

libc/test/src/math/RIntTest.h

Lines changed: 26 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -66,37 +66,43 @@ class RIntTestTemplate : public LIBC_NAMESPACE::testing::FEnvSafeTest {
6666
void testSpecialNumbers(RIntFunc func) {
6767
for (int mode : ROUNDING_MODES) {
6868
LIBC_NAMESPACE::fputil::set_round(mode);
69-
ASSERT_FP_EQ(inf, func(inf));
70-
ASSERT_FP_EQ(neg_inf, func(neg_inf));
71-
ASSERT_FP_EQ(nan, func(nan));
72-
ASSERT_FP_EQ(zero, func(zero));
73-
ASSERT_FP_EQ(neg_zero, func(neg_zero));
69+
EXPECT_FP_EQ(inf, func(inf));
70+
EXPECT_FP_EQ(neg_inf, func(neg_inf));
71+
EXPECT_FP_EQ(nan, func(nan));
72+
EXPECT_FP_EQ(zero, func(zero));
73+
EXPECT_FP_EQ(neg_zero, func(neg_zero));
7474
}
7575
}
7676

7777
void testRoundNumbers(RIntFunc func) {
7878
for (int mode : ROUNDING_MODES) {
7979
LIBC_NAMESPACE::fputil::set_round(mode);
8080
mpfr::RoundingMode mpfr_mode = to_mpfr_rounding_mode(mode);
81-
ASSERT_FP_EQ(func(T(1.0)), mpfr::round(T(1.0), mpfr_mode));
82-
ASSERT_FP_EQ(func(T(-1.0)), mpfr::round(T(-1.0), mpfr_mode));
83-
ASSERT_FP_EQ(func(T(10.0)), mpfr::round(T(10.0), mpfr_mode));
84-
ASSERT_FP_EQ(func(T(-10.0)), mpfr::round(T(-10.0), mpfr_mode));
85-
ASSERT_FP_EQ(func(T(1234.0)), mpfr::round(T(1234.0), mpfr_mode));
86-
ASSERT_FP_EQ(func(T(-1234.0)), mpfr::round(T(-1234.0), mpfr_mode));
81+
EXPECT_FP_EQ(func(T(1.0)), mpfr::round(T(1.0), mpfr_mode));
82+
EXPECT_FP_EQ(func(T(-1.0)), mpfr::round(T(-1.0), mpfr_mode));
83+
EXPECT_FP_EQ(func(T(10.0)), mpfr::round(T(10.0), mpfr_mode));
84+
EXPECT_FP_EQ(func(T(-10.0)), mpfr::round(T(-10.0), mpfr_mode));
85+
EXPECT_FP_EQ(func(T(1234.0)), mpfr::round(T(1234.0), mpfr_mode));
86+
EXPECT_FP_EQ(func(T(-1234.0)), mpfr::round(T(-1234.0), mpfr_mode));
8787
}
8888
}
8989

9090
void testFractions(RIntFunc func) {
9191
for (int mode : ROUNDING_MODES) {
9292
LIBC_NAMESPACE::fputil::set_round(mode);
9393
mpfr::RoundingMode mpfr_mode = to_mpfr_rounding_mode(mode);
94-
ASSERT_FP_EQ(func(T(0.5)), mpfr::round(T(0.5), mpfr_mode));
95-
ASSERT_FP_EQ(func(T(-0.5)), mpfr::round(T(-0.5), mpfr_mode));
96-
ASSERT_FP_EQ(func(T(0.115)), mpfr::round(T(0.115), mpfr_mode));
97-
ASSERT_FP_EQ(func(T(-0.115)), mpfr::round(T(-0.115), mpfr_mode));
98-
ASSERT_FP_EQ(func(T(0.715)), mpfr::round(T(0.715), mpfr_mode));
99-
ASSERT_FP_EQ(func(T(-0.715)), mpfr::round(T(-0.715), mpfr_mode));
94+
EXPECT_FP_EQ_WITH_EXCEPTION(func(T(0.5)), mpfr::round(T(0.5), mpfr_mode),
95+
FE_INEXACT);
96+
EXPECT_FP_EQ_WITH_EXCEPTION(func(T(-0.5)),
97+
mpfr::round(T(-0.5), mpfr_mode), FE_INEXACT);
98+
EXPECT_FP_EQ_WITH_EXCEPTION(func(T(0.115)),
99+
mpfr::round(T(0.115), mpfr_mode), FE_INEXACT);
100+
EXPECT_FP_EQ_WITH_EXCEPTION(
101+
func(T(-0.115)), mpfr::round(T(-0.115), mpfr_mode), FE_INEXACT);
102+
EXPECT_FP_EQ_WITH_EXCEPTION(func(T(0.715)),
103+
mpfr::round(T(0.715), mpfr_mode), FE_INEXACT);
104+
EXPECT_FP_EQ_WITH_EXCEPTION(
105+
func(T(-0.715)), mpfr::round(T(-0.715), mpfr_mode), FE_INEXACT);
100106
}
101107
}
102108

@@ -110,7 +116,8 @@ class RIntTestTemplate : public LIBC_NAMESPACE::testing::FEnvSafeTest {
110116
for (int mode : ROUNDING_MODES) {
111117
LIBC_NAMESPACE::fputil::set_round(mode);
112118
mpfr::RoundingMode mpfr_mode = to_mpfr_rounding_mode(mode);
113-
ASSERT_FP_EQ(func(x), mpfr::round(x, mpfr_mode));
119+
EXPECT_FP_EQ_WITH_EXCEPTION(func(x), mpfr::round(x, mpfr_mode),
120+
FE_INEXACT);
114121
}
115122
}
116123
}
@@ -131,7 +138,7 @@ class RIntTestTemplate : public LIBC_NAMESPACE::testing::FEnvSafeTest {
131138
for (int mode : ROUNDING_MODES) {
132139
LIBC_NAMESPACE::fputil::set_round(mode);
133140
mpfr::RoundingMode mpfr_mode = to_mpfr_rounding_mode(mode);
134-
ASSERT_FP_EQ(func(x), mpfr::round(x, mpfr_mode));
141+
EXPECT_FP_EQ(func(x), mpfr::round(x, mpfr_mode));
135142
}
136143
}
137144
}

0 commit comments

Comments
 (0)