| 59 | } |
| 60 | |
| 61 | void |
| 62 | testSpecialNumbers() |
| 63 | { |
| 64 | using Lims = std::numeric_limits<double>; |
| 65 | value const jv = { |
| 66 | Lims::quiet_NaN(), Lims::infinity(), -Lims::infinity() }; |
| 67 | BOOST_TEST( serialize(jv) == "[null,1e99999,-1e99999]" ); |
| 68 | BOOST_TEST( print(jv) == "[null,1e99999,-1e99999]" ); |
| 69 | |
| 70 | serialize_options opts; |
| 71 | opts.allow_infinity_and_nan = true; |
| 72 | BOOST_TEST( serialize(jv, opts) == "[NaN,Infinity,-Infinity]" ); |
| 73 | |
| 74 | std::stringstream ss; |
| 75 | ss << opts << jv; |
| 76 | BOOST_TEST( ss.str() == "[NaN,Infinity,-Infinity]" ); |
| 77 | |
| 78 | opts.allow_infinity_and_nan = false; |
| 79 | ss.str(""); |
| 80 | ss << opts << jv; |
| 81 | BOOST_TEST( ss.str() == "[null,1e99999,-1e99999]" ); |
| 82 | } |
| 83 | |
| 84 | void |
| 85 | run() |
nothing calls this directly
no test coverage detected