@@ -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+
1621template <BOOST_DECIMAL_DECIMAL_FLOATING_TYPE T>
1722void 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+
3857int main ()
3958{
4059 test<decimal32_t >();
0 commit comments