@@ 1,7 1,7 @@
// SPDX-FileCopyrightText: 2024 José Alberto Orejuela García <libre@josealberto4444.com>
// SPDX-License-Identifier: AGPL-3.0-or-later
-const TESTED_NUMBERS : std::ops::RangeInclusive<usize> = 1..=1999999;
+const TESTED_NUMBERS : std::ops::RangeInclusive<usize> = 1..=9_999999;
fn main() {
for number in TESTED_NUMBERS {
@@ 72,6 72,7 @@ fn letters(number: usize) -> usize {
..=1999 => reduce(number, 1000, "mil".len()), // Hala, el 1000 también tiene 3 letras
..=999999 => split_number(number, 1000, "mil"),
..=1_999999 => reduce(number, 1000000, "unmillon".len()),
+ ..=999999_999999 => split_number(number, 1_000000, "millones"),
_ => panic!("El número {number} no está contemplado todavía."),
}
}
@@ 163,6 164,22 @@ mod tests {
#[test]
fn millions() {
- assert_eq!(letters(1616432), 55);
+ assert_eq!(letters(1_616432), 55);
+ assert_eq!(letters(662_981177), 73);
+ assert_eq!(letters(70302_866495), 84);
+ }
+
+ #[test]
+ fn millions_ending_in_11() {
+ assert_eq!(letters(11_624429), 62);
+ assert_eq!(letters(611268_787682), 97);
+ assert_eq!(letters(943111_003969), 76);
+ }
+
+ #[test]
+ fn millions_ending_in_1() {
+ assert_eq!(letters(521_769135), 72);
+ assert_eq!(letters(10141_412806), 67);
+ assert_eq!(letters(41739_633280), 89);
}
}