mirror of
https://github.com/roc-lang/roc.git
synced 2024-09-20 15:27:45 +03:00
Refactor number literal tests
This commit is contained in:
parent
3926472d4c
commit
6bda934271
@ -36,41 +36,49 @@ mod tests {
|
||||
}
|
||||
|
||||
// NUMBER LITERALS
|
||||
|
||||
fn expect_parsed_int<'a>(expected: i64, actual: &str) {
|
||||
assert_eq!(Ok((Int(expected), "")), parse::number_literal().parse(actual));
|
||||
}
|
||||
|
||||
fn expect_parsed_ratio<'a>(expected_numerator: i64, expected_denominator: u64, actual: &str) {
|
||||
assert_eq!(Ok((Ratio(expected_numerator, expected_denominator), "")), parse::number_literal().parse(actual));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn parse_positive_int() {
|
||||
assert_eq!(Ok((Int(1234), "")), parse::number_literal().parse("1234"));
|
||||
expect_parsed_int(1234, "1234");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn parse_negative_int() {
|
||||
assert_eq!(Ok((Int(-1234), "")), parse::number_literal().parse("-1234"));
|
||||
expect_parsed_int(-1234, "-1234");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn parse_positive_ratio() {
|
||||
assert_eq!(Ok((Ratio(12345, 100), "")), parse::number_literal().parse("123.45"));
|
||||
assert_eq!(Ok((Ratio(4200, 100), "")), parse::number_literal().parse("42.00"));
|
||||
expect_parsed_ratio(12345, 100, "123.45");
|
||||
expect_parsed_ratio(4200, 100, "42.00");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn parse_negative_ratio() {
|
||||
assert_eq!(Ok((Ratio(-1234567, 1000), "")), parse::number_literal().parse("-1234.567"));
|
||||
assert_eq!(Ok((Ratio(-1920, 10), "")), parse::number_literal().parse("-192.0"));
|
||||
expect_parsed_ratio(-1234567, 1000, "-1234.567");
|
||||
expect_parsed_ratio(-1920, 10, "-192.0");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn parse_ints_with_spaces() {
|
||||
assert_eq!(Ok((Int(987654321), "")), parse::number_literal().parse("987 6 5 432 1"));
|
||||
assert_eq!(Ok((Int(-1234567890), "")), parse::number_literal().parse("-1 234 567 890"));
|
||||
expect_parsed_int(987654321, "987 6 5 432 1");
|
||||
expect_parsed_int(-1234567890, "-1 234 567 890");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn parse_ratios_with_spaces() {
|
||||
assert_eq!(Ok((Ratio(-1234567, 1000), "")), parse::number_literal().parse("-1 23 4.567"));
|
||||
assert_eq!(Ok((Ratio(-1920, 10), "")), parse::number_literal().parse("-19 2.0"));
|
||||
assert_eq!(Ok((Ratio(12345, 100), "")), parse::number_literal().parse("1 2 3.45"));
|
||||
assert_eq!(Ok((Ratio(4200, 100), "")), parse::number_literal().parse("4 2.00"));
|
||||
expect_parsed_ratio(-1234567, 1000, "-1 23 4.567");
|
||||
expect_parsed_ratio(-1920, 10, "-19 2.0");
|
||||
expect_parsed_ratio(12345, 100, "1 2 3.45");
|
||||
expect_parsed_ratio(4200, 100, "4 2.00");
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
Loading…
Reference in New Issue
Block a user