File: large_number.rs

package info (click to toggle)
rust-ron 0.12.0-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 1,096 kB
  • sloc: makefile: 2
file content (29 lines) | stat: -rw-r--r-- 903 bytes parent folder | download | duplicates (20)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
use ron::value::{Number, Value};

#[test]
fn test_large_number() {
    let test_var = Value::Number(Number::new(10000000000000000000000.0f64));
    let test_ser = ron::ser::to_string(&test_var).unwrap();
    let test_deser = ron::de::from_str::<Value>(&test_ser);

    assert_eq!(
        test_deser.unwrap(),
        Value::Number(Number::new(10000000000000000000000.0))
    );
}

#[test]
fn test_large_integer_to_float() {
    use ron::value::Number;
    let test_var = std::u64::MAX as u128 + 1;
    let test_ser = test_var.to_string();
    let test_deser = ron::de::from_str::<Value>(&test_ser);

    #[cfg(not(feature = "integer128"))]
    assert_eq!(
        test_deser.unwrap(),
        Value::Number(Number::F32((test_var as f32).into())), // f64 representation matches f32
    );
    #[cfg(feature = "integer128")]
    assert_eq!(test_deser.unwrap(), Value::Number(Number::U128(test_var)),);
}