Skip to content

Commit 429c0a2

Browse files
committed
Adjust tests to match behavior
1 parent 3d53da7 commit 429c0a2

File tree

1 file changed

+29
-10
lines changed

1 file changed

+29
-10
lines changed

test/test_to_string.cpp

Lines changed: 29 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -13,19 +13,34 @@ using namespace boost::decimal;
1313

1414
#if !defined(BOOST_DECIMAL_DISABLE_CLIB)
1515

16+
#ifdef _MSC_VER
17+
#pragma warning(push)
18+
#pragma warning(disable:4127)
19+
#endif
20+
1621
template <BOOST_DECIMAL_DECIMAL_FLOATING_TYPE T>
1722
void test()
1823
{
19-
BOOST_TEST_EQ(to_string(T{1}), "1.000000");
20-
BOOST_TEST_EQ(to_string(T{10}), "10.000000");
21-
BOOST_TEST_EQ(to_string(T{100}), "100.000000");
22-
BOOST_TEST_EQ(to_string(T{1000}), "1000.000000");
23-
BOOST_TEST_EQ(to_string(T{10000}), "10000.000000");
24-
BOOST_TEST_EQ(to_string(T{210000}), "210000.000000");
25-
BOOST_TEST_EQ(to_string(T{2100000}), "2100000.000000");
26-
BOOST_TEST_EQ(to_string(T{21U, 6, true}), "-21000000.000000");
27-
BOOST_TEST_EQ(to_string(T{211U, 6, true}), "-211000000.000000");
28-
BOOST_TEST_EQ(to_string(T{2111U, 6, true}), "-2111000000.000000");
24+
BOOST_TEST_EQ(to_string(T{1}), "1");
25+
BOOST_TEST_EQ(to_string(T{10}), "10");
26+
BOOST_TEST_EQ(to_string(T{100}), "100");
27+
BOOST_TEST_EQ(to_string(T{1000}), "1000");
28+
BOOST_TEST_EQ(to_string(T{10000}), "10000");
29+
BOOST_TEST_EQ(to_string(T{210000}), "210000");
30+
BOOST_TEST_EQ(to_string(T{2100000}), "2100000");
31+
32+
BOOST_DECIMAL_IF_CONSTEXPR (detail::decimal_val_v<T> > 32)
33+
{
34+
BOOST_TEST_EQ(to_string(T{21U, 6, true}), "-21000000");
35+
BOOST_TEST_EQ(to_string(T{211U, 6, true}), "-211000000");
36+
BOOST_TEST_EQ(to_string(T{2111U, 6, true}), "-2111000000");
37+
}
38+
else
39+
{
40+
BOOST_TEST_EQ(to_string(T{21U, 6, true}), "-2.1e+07");
41+
BOOST_TEST_EQ(to_string(T{211U, 6, true}), "-2.11e+08");
42+
BOOST_TEST_EQ(to_string(T{2111U, 6, true}), "-2.111e+09");
43+
}
2944

3045
BOOST_TEST_EQ(to_string(std::numeric_limits<T>::infinity()), "inf");
3146
BOOST_TEST_EQ(to_string(-std::numeric_limits<T>::infinity()), "-inf");
@@ -35,6 +50,10 @@ void test()
3550
BOOST_TEST_EQ(to_string(-std::numeric_limits<T>::signaling_NaN()), "-nan(snan)");
3651
}
3752

53+
#ifdef _MSC_VER
54+
#pragma warning(pop)
55+
#endif
56+
3857
int main()
3958
{
4059
test<decimal32_t>();

0 commit comments

Comments
 (0)