|
1 | 1 | #[macro_use]
|
2 | 2 | extern crate json;
|
3 | 3 |
|
| 4 | +use std::f64; |
4 | 5 | use std::collections::BTreeMap;
|
5 | 6 | use std::collections::HashMap;
|
6 | 7 | use json::{ stringify, stringify_pretty, parse, JsonValue, JsonError, Null };
|
@@ -130,6 +131,37 @@ fn stringify_number() {
|
130 | 131 | assert_eq!(stringify(3.141592653589793), "3.141592653589793");
|
131 | 132 | }
|
132 | 133 |
|
| 134 | +// #[test] |
| 135 | +// fn stringify_precise_positive_number() { |
| 136 | +// assert_eq!(JsonValue::Number(1.2345f64).dump(), "1.2345"); |
| 137 | +// } |
| 138 | + |
| 139 | +// #[test] |
| 140 | +// fn stringify_precise_negative_number() { |
| 141 | +// assert_eq!(JsonValue::Number(-1.2345f64).dump(), "-1.2345"); |
| 142 | +// } |
| 143 | + |
| 144 | +#[test] |
| 145 | +fn stringify_zero() { |
| 146 | + assert_eq!(JsonValue::Number(0.0).dump(), "0"); |
| 147 | +} |
| 148 | + |
| 149 | +#[test] |
| 150 | +fn stringify_nan() { |
| 151 | + assert_eq!(JsonValue::Number(f64::NAN).dump(), "null"); |
| 152 | +} |
| 153 | + |
| 154 | +#[test] |
| 155 | +fn stringify_infinity() { |
| 156 | + assert_eq!(JsonValue::Number(f64::INFINITY).dump(), "null"); |
| 157 | + assert_eq!(JsonValue::Number(f64::NEG_INFINITY).dump(), "null"); |
| 158 | +} |
| 159 | + |
| 160 | +#[test] |
| 161 | +fn stringify_negative_zero() { |
| 162 | + assert_eq!(JsonValue::Number(-0f64).dump(), "-0"); |
| 163 | +} |
| 164 | + |
133 | 165 | #[test]
|
134 | 166 | fn stringify_integer() {
|
135 | 167 | assert_eq!(stringify(42), "42");
|
@@ -299,6 +331,11 @@ fn parse_integer() {
|
299 | 331 | assert_eq!(parse("42").unwrap(), 42);
|
300 | 332 | }
|
301 | 333 |
|
| 334 | +#[test] |
| 335 | +fn parse_negative_zero() { |
| 336 | + assert_eq!(parse("-0").unwrap(), JsonValue::Number(-0f64)); |
| 337 | +} |
| 338 | + |
302 | 339 | #[test]
|
303 | 340 | fn parse_negative_integer() {
|
304 | 341 | assert_eq!(parse("-42").unwrap(), -42);
|
|
0 commit comments