From 0266341f999926ab45ec45c812149c71c708e461 Mon Sep 17 00:00:00 2001 From: Nathan Vegdahl Date: Mon, 16 Sep 2024 08:28:11 +0200 Subject: [PATCH] Fix stupid bug in furigana application. It would sometimes result in characters getting swapped. --- src/lib.rs | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/lib.rs b/src/lib.rs index a405047..6f7044f 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -380,7 +380,7 @@ fn apply_furigana<'a>( } // Left over. - out.insert(out.len() - 2, (surface, kana)); + out.insert(out.len() - 1, (surface, kana)); out.iter().filter(|(s, _)| !s.is_empty()).copied().collect() } @@ -540,6 +540,15 @@ mod tests { assert_eq!(&[("物の怪", "もののけ")], &pairs[..]); } + #[test] + fn apply_furigana_07() { + let surface = "ご飯"; + let kana = "ゴハン"; + let pairs = apply_furigana(surface, kana, &FnvHashSet::default()); + + assert_eq!(&[("ご", ""), ("飯", "ハン")], &pairs[..]); + } + #[test] fn is_equivalent_kana_01() { assert!(is_equivalent_kana('か', 'カ'));