Skip to content
This repository was archived by the owner on Mar 25, 2024. It is now read-only.

Commit 3c68165

Browse files
committed
Add test of Number parsing
1 parent 610d7b2 commit 3c68165

File tree

1 file changed

+28
-1
lines changed

1 file changed

+28
-1
lines changed

tests/test_de.rs

Lines changed: 28 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88

99
use indoc::indoc;
1010
use serde_derive::Deserialize;
11-
use serde_yaml::{Deserializer, Value};
11+
use serde_yaml::{Deserializer, Number, Value};
1212
use std::collections::BTreeMap;
1313
use std::fmt::Debug;
1414

@@ -676,3 +676,30 @@ fn test_tag_resolution() {
676676

677677
test_de(yaml, &expected);
678678
}
679+
680+
#[test]
681+
fn test_parse_number() {
682+
let n = "111".parse::<Number>().unwrap();
683+
assert_eq!(n, Number::from(111));
684+
685+
let n = "-111".parse::<Number>().unwrap();
686+
assert_eq!(n, Number::from(-111));
687+
688+
let n = "-1.1".parse::<Number>().unwrap();
689+
assert_eq!(n, Number::from(-1.1));
690+
691+
let n = ".nan".parse::<Number>().unwrap();
692+
assert_eq!(n, Number::from(f64::NAN));
693+
694+
let n = ".inf".parse::<Number>().unwrap();
695+
assert_eq!(n, Number::from(f64::INFINITY));
696+
697+
let n = "-.inf".parse::<Number>().unwrap();
698+
assert_eq!(n, Number::from(f64::NEG_INFINITY));
699+
700+
let err = "null".parse::<Number>().unwrap_err();
701+
assert_eq!(err.to_string(), "failed to parse YAML number");
702+
703+
let err = " 1 ".parse::<Number>().unwrap_err();
704+
assert_eq!(err.to_string(), "failed to parse YAML number");
705+
}

0 commit comments

Comments
 (0)