use crate::builtins::intl::number_format::RoundingIncrement;
use fixed_decimal::RoundingIncrement::*;
#[test]
fn u16_to_rounding_increment_sunny_day() {
#[rustfmt::skip]
let valid_cases: [(u16, RoundingIncrement); 15] = [
(1, RoundingIncrement::from_parts(MultiplesOf1, 0).unwrap()),
(2, RoundingIncrement::from_parts(MultiplesOf2, 0).unwrap()),
(5, RoundingIncrement::from_parts(MultiplesOf5, 0).unwrap()),
(10, RoundingIncrement::from_parts(MultiplesOf1, 1).unwrap()),
(20, RoundingIncrement::from_parts(MultiplesOf2, 1).unwrap()),
(25, RoundingIncrement::from_parts(MultiplesOf25, 0).unwrap()),
(50, RoundingIncrement::from_parts(MultiplesOf5, 1).unwrap()),
(100, RoundingIncrement::from_parts(MultiplesOf1, 2).unwrap()),
(200, RoundingIncrement::from_parts(MultiplesOf2, 2).unwrap()),
(250, RoundingIncrement::from_parts(MultiplesOf25, 1).unwrap()),
(500, RoundingIncrement::from_parts(MultiplesOf5, 2).unwrap()),
(1000, RoundingIncrement::from_parts(MultiplesOf1, 3).unwrap()),
(2000, RoundingIncrement::from_parts(MultiplesOf2, 3).unwrap()),
(2500, RoundingIncrement::from_parts(MultiplesOf25, 2).unwrap()),
(5000, RoundingIncrement::from_parts(MultiplesOf5, 3).unwrap()),
];
for (num, increment) in valid_cases {
assert_eq!(RoundingIncrement::from_u16(num), Some(increment));
}
}
#[test]
fn u16_to_rounding_increment_rainy_day() {
const INVALID_CASES: [u16; 9] = [0, 4, 6, 24, 10000, 65535, 7373, 140, 1500];
for num in INVALID_CASES {
assert!(RoundingIncrement::from_u16(num).is_none());
}
}