| import unittest | |
| from uztts.normalize import canonicalize_apostrophes, normalize | |
| class NormalizeTests(unittest.TestCase): | |
| def test_apostrophes_are_canonicalized(self): | |
| self.assertEqual(canonicalize_apostrophes("oʻzbek o‘g‘li"), "o'zbek o'g'li") | |
| def test_cyrillic_is_transliterated(self): | |
| self.assertEqual(normalize("Бухоро шаҳри", mode="train"), "Buxoro shahri") | |
| def test_date_and_time_are_expanded(self): | |
| result = normalize("16.07.2026 soat 14:30") | |
| self.assertEqual( | |
| result, | |
| "o'n olti iyul ikki ming yigirma olti soat o'n to'rt o'ttiz", | |
| ) | |
| def test_decimal_and_unit_are_expanded(self): | |
| self.assertEqual(normalize("5.5 km"), "besh butun besh kilometr") | |
| def test_train_mode_preserves_written_words(self): | |
| self.assertEqual(normalize("Yigirma besh kishi", mode="train"), "Yigirma besh kishi") | |
| if __name__ == "__main__": | |
| unittest.main() | |