use rust_decimal_macros::dec;
#[test]
fn accepts_integer() {
assert_eq!(german_decimal::parse("1").unwrap(), dec!(1))
}
#[test]
fn accepts_decimals() {
let parsed = german_decimal::parse("0,3").unwrap();
assert_eq!(parsed, dec!(0.3))
}
#[test]
fn accepts_group_seperators() {
let parsed = german_decimal::parse("2.500").unwrap();
assert_eq!(parsed, dec!(2500))
}
#[test]
fn accepts_group_seperators_and_decimals() {
let parsed = german_decimal::parse("2.500,12345").unwrap();
assert_eq!(parsed, dec!(2500.12345))
}
#[test]
fn accepts_minus_sign() {
assert_eq!(
german_decimal::parse("-2.500,12345").unwrap(),
dec!(-2500.12345)
);
}
#[test]
fn accepts_plus_sign() {
assert_eq!(
german_decimal::parse("+2.500,12345").unwrap(),
dec!(2500.12345)
);
}
#[test]
fn rejects_empty_numbers() {
german_decimal::parse("").unwrap_err();
}
#[test]
fn rejects_leading_separator() {
german_decimal::parse(".500,12345").unwrap_err();
}
#[test]
fn rejects_only_decimal_separator() {
german_decimal::parse(",").unwrap_err();
}
#[test]
fn rejects_only_plus_sign() {
german_decimal::parse("+").unwrap_err();
}
#[test]
fn rejects_only_minus_sign() {
german_decimal::parse("-").unwrap_err();
}
#[test]
fn rejects_interior_minus_sign() {
german_decimal::parse("12-345").unwrap_err();
}
#[test]
fn rejects_interior_plus_sign() {
german_decimal::parse("12+345").unwrap_err();
}
#[test]
fn rejects_letters() {
german_decimal::parse("a").unwrap_err();
}
#[test]
fn rejects_symbols() {
german_decimal::parse("_").unwrap_err();
}
#[test]
fn rejects_group_separators_in_decimals() {
german_decimal::parse("2.500,123.456").unwrap_err();
}