From e1c502138d39ef98969af292da869231a62bcee4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Romuald=20Texier-Marcad=C3=A9?= Date: Thu, 29 Aug 2024 17:41:21 +0200 Subject: [PATCH] [ES] uno mil = 1 1000, not 1000 --- Cargo.toml | 2 +- src/lang/es/mod.rs | 10 +++++++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 0fada38..b9afe4d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "text2num" -version = "2.5.0" +version = "2.5.1" authors = ["Allo-Media "] edition = "2021" license = "MIT" diff --git a/src/lang/es/mod.rs b/src/lang/es/mod.rs index e6c3579..3a584ee 100644 --- a/src/lang/es/mod.rs +++ b/src/lang/es/mod.rs @@ -98,7 +98,14 @@ impl LangInterpretor for Spanish { "seteciento" | "setecienta" | "septingentésimo" | "septingentésima" => b.put(b"700"), "ochociento" | "ochocienta" | "octingentésimo" | "octingentésima" => b.put(b"800"), "noveciento" | "novecienta" | "noningentésimo" | "noningentésima" => b.put(b"900"), - "mil" | "milésimo" | "milésima" if b.is_range_free(3, 5) => b.shift(3), + "mil" | "milésimo" | "milésima" if b.is_range_free(3, 5) => { + let peek = b.peek(2); + if peek == b"1" { + Err(Error::Overlap) + } else { + b.shift(3) + } + } "millon" | "millón" | "millonésimo" | "millonésima" if b.is_range_free(6, 8) => { b.shift(6) } @@ -315,6 +322,7 @@ mod tests { assert_invalid!("veinte cuarto"); assert_invalid!("vigésimo decimocuarto"); assert_invalid!("diez cuarto"); + assert_invalid!("uno mil"); } #[test]