@@ -66,37 +66,43 @@ class RIntTestTemplate : public LIBC_NAMESPACE::testing::FEnvSafeTest {
66
66
void testSpecialNumbers (RIntFunc func) {
67
67
for (int mode : ROUNDING_MODES) {
68
68
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));
74
74
}
75
75
}
76
76
77
77
void testRoundNumbers (RIntFunc func) {
78
78
for (int mode : ROUNDING_MODES) {
79
79
LIBC_NAMESPACE::fputil::set_round (mode);
80
80
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));
87
87
}
88
88
}
89
89
90
90
void testFractions (RIntFunc func) {
91
91
for (int mode : ROUNDING_MODES) {
92
92
LIBC_NAMESPACE::fputil::set_round (mode);
93
93
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);
100
106
}
101
107
}
102
108
@@ -110,7 +116,8 @@ class RIntTestTemplate : public LIBC_NAMESPACE::testing::FEnvSafeTest {
110
116
for (int mode : ROUNDING_MODES) {
111
117
LIBC_NAMESPACE::fputil::set_round (mode);
112
118
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);
114
121
}
115
122
}
116
123
}
@@ -131,7 +138,7 @@ class RIntTestTemplate : public LIBC_NAMESPACE::testing::FEnvSafeTest {
131
138
for (int mode : ROUNDING_MODES) {
132
139
LIBC_NAMESPACE::fputil::set_round (mode);
133
140
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));
135
142
}
136
143
}
137
144
}
0 commit comments