about summary refs log tree commit diff
path: root/library/coretests/tests/num/dec2flt/decimal_seq.rs
blob: f46ba7c465a6e64908991ec0fb565ee6da2198b3 (plain)
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
30
use core::num::dec2flt::decimal_seq::{DecimalSeq, parse_decimal_seq};

#[test]
fn test_trim() {
    let mut dec = DecimalSeq::default();
    let digits = [1, 2, 3, 4];

    dec.digits[0..4].copy_from_slice(&digits);
    dec.num_digits = 8;
    dec.trim();

    assert_eq!(dec.digits[0..4], digits);
    assert_eq!(dec.num_digits, 4);
}

#[test]
fn test_parse() {
    let tests = [("1.234", [1, 2, 3, 4], 1)];

    for (s, exp_digits, decimal_point) in tests {
        let actual = parse_decimal_seq(s.as_bytes());
        let mut digits = [0; DecimalSeq::MAX_DIGITS];
        digits[..exp_digits.len()].copy_from_slice(&exp_digits);

        let expected =
            DecimalSeq { num_digits: exp_digits.len(), decimal_point, truncated: false, digits };

        assert_eq!(actual, expected);
    }
}