1 use serde_yaml::{Number, Value}; 2 use std::f64; 3 4 #[test] test_nan()5fn test_nan() { 6 let pos_nan = serde_yaml::from_str::<Value>(".nan").unwrap(); 7 assert!(pos_nan.is_f64()); 8 assert_eq!(pos_nan, pos_nan); 9 10 let neg_fake_nan = serde_yaml::from_str::<Value>("-.nan").unwrap(); 11 assert!(neg_fake_nan.is_string()); 12 13 let significand_mask = 0xF_FFFF_FFFF_FFFF; 14 let bits = (f64::NAN.to_bits() ^ significand_mask) | 1; 15 let different_pos_nan = Value::Number(Number::from(f64::from_bits(bits))); 16 assert_eq!(pos_nan, different_pos_nan); 17 } 18