diff options
Diffstat (limited to 'serde_yaml-0.9.25/tests/test_value.rs')
-rw-r--r-- | serde_yaml-0.9.25/tests/test_value.rs | 153 |
1 files changed, 0 insertions, 153 deletions
diff --git a/serde_yaml-0.9.25/tests/test_value.rs b/serde_yaml-0.9.25/tests/test_value.rs deleted file mode 100644 index a7dd448..0000000 --- a/serde_yaml-0.9.25/tests/test_value.rs +++ /dev/null @@ -1,153 +0,0 @@ -#![allow( - clippy::derive_partial_eq_without_eq, - clippy::eq_op, - clippy::uninlined_format_args -)] - -use indoc::indoc; -use serde::de::IntoDeserializer; -use serde::Deserialize; -use serde_derive::{Deserialize, Serialize}; -use serde_yaml::{Number, Value}; - -#[test] -fn test_nan() { - let pos_nan = serde_yaml::from_str::<Value>(".nan").unwrap(); - assert!(pos_nan.is_f64()); - assert_eq!(pos_nan, pos_nan); - - let neg_fake_nan = serde_yaml::from_str::<Value>("-.nan").unwrap(); - assert!(neg_fake_nan.is_string()); - - let significand_mask = 0xF_FFFF_FFFF_FFFF; - let bits = (f64::NAN.to_bits() ^ significand_mask) | 1; - let different_pos_nan = Value::Number(Number::from(f64::from_bits(bits))); - assert_eq!(pos_nan, different_pos_nan); -} - -#[test] -fn test_digits() { - let num_string = serde_yaml::from_str::<Value>("01").unwrap(); - assert!(num_string.is_string()); -} - -#[test] -fn test_into_deserializer() { - #[derive(Debug, Deserialize, PartialEq)] - struct Test { - first: String, - second: u32, - } - - let value = serde_yaml::from_str::<Value>("xyz").unwrap(); - let s = String::deserialize(value.into_deserializer()).unwrap(); - assert_eq!(s, "xyz"); - - let value = serde_yaml::from_str::<Value>("- first\n- second\n- third").unwrap(); - let arr = Vec::<String>::deserialize(value.into_deserializer()).unwrap(); - assert_eq!(arr, &["first", "second", "third"]); - - let value = serde_yaml::from_str::<Value>("first: abc\nsecond: 99").unwrap(); - let test = Test::deserialize(value.into_deserializer()).unwrap(); - assert_eq!( - test, - Test { - first: "abc".to_string(), - second: 99 - } - ); -} - -#[test] -fn test_merge() { - // From https://yaml.org/type/merge.html. - let yaml = indoc! {" - --- - - &CENTER { x: 1, y: 2 } - - &LEFT { x: 0, y: 2 } - - &BIG { r: 10 } - - &SMALL { r: 1 } - - # All the following maps are equal: - - - # Explicit keys - x: 1 - y: 2 - r: 10 - label: center/big - - - # Merge one map - << : *CENTER - r: 10 - label: center/big - - - # Merge multiple maps - << : [ *CENTER, *BIG ] - label: center/big - - - # Override - << : [ *BIG, *LEFT, *SMALL ] - x: 1 - label: center/big - "}; - - let mut value: Value = serde_yaml::from_str(yaml).unwrap(); - value.apply_merge().unwrap(); - for i in 5..=7 { - assert_eq!(value[4], value[i]); - } -} - -#[test] -fn test_debug() { - let yaml = indoc! {" - 'Null': ~ - Bool: true - Number: 1 - String: ... - Sequence: - - true - EmptySequence: [] - EmptyMapping: {} - Tagged: !tag true - "}; - - let value: Value = serde_yaml::from_str(yaml).unwrap(); - let debug = format!("{:#?}", value); - - let expected = indoc! {r#" - Mapping { - "Null": Null, - "Bool": Bool(true), - "Number": Number(1), - "String": String("..."), - "Sequence": Sequence [ - Bool(true), - ], - "EmptySequence": Sequence [], - "EmptyMapping": Mapping {}, - "Tagged": TaggedValue { - tag: !tag, - value: Bool(true), - }, - }"# - }; - - assert_eq!(debug, expected); -} - -#[test] -fn test_tagged() { - #[derive(Serialize)] - enum Enum { - Variant(usize), - } - - let value = serde_yaml::to_value(&Enum::Variant(0)).unwrap(); - - let deserialized: serde_yaml::Value = serde_yaml::from_value(value.clone()).unwrap(); - assert_eq!(value, deserialized); - - let serialized = serde_yaml::to_value(&value).unwrap(); - assert_eq!(value, serialized); -} |