Skip to content

Commit

Permalink
More test cases
Browse files Browse the repository at this point in the history
  • Loading branch information
mike-fabian committed Dec 17, 2024
1 parent 01af6e0 commit bf38ad0
Showing 1 changed file with 48 additions and 1 deletion.
49 changes: 48 additions & 1 deletion tests/test_m17n_translit.py
Original file line number Diff line number Diff line change
Expand Up @@ -437,7 +437,7 @@ def test_mr_itrans(self) -> None:
self.assertEqual(trans.transliterate(['S-C-Return']), 'S-C-Return')

def test_hi_itrans(self) -> None:
trans = m17n_translit.Transliterator('hi-itrans')
trans = self.get_transliterator_or_skip('hi-itrans')
self.assertEqual(trans.transliterate(list('namaste')), 'नमस्ते')
self.assertEqual(trans.transliterate(list('. ')), '। ')
self.assertEqual(trans.transliterate(['S-C-Return']), 'S-C-Return')
Expand All @@ -455,6 +455,53 @@ def test_hi_itrans(self) -> None:
self.assertEqual(trans.transliterate(['a', ' ']), 'अ ')
self.assertEqual(trans.transliterate(['a', 'S-C-Return']), 'अS-C-Return')

def test_hi_itrans_parts(self) -> None:
trans = self.get_transliterator_or_skip('hi-itrans')
self.assertEqual(trans.transliterate_parts(list('n')), ('', 0, 'न्'))
self.assertEqual(trans.transliterate_parts(['n', 'S-C-Return']), ('न्', 2, ''))
self.assertEqual(trans.transliterate_parts(['n', 'S-C-Return', ' ']), ('न् ', 3, ''))
self.assertEqual(trans.transliterate_parts(list('n ')), ('न ', 2, ''))
self.assertEqual(trans.transliterate_parts(list('na')), ('', 0, 'न'))
self.assertEqual(trans.transliterate_parts(list('nam')), ('न', 2, 'म्'))
self.assertEqual(trans.transliterate_parts(list('nama')), ('न', 2, 'म'))
self.assertEqual(trans.transliterate_parts(list('namas')), ('नम', 4, 'स्'))
self.assertEqual(trans.transliterate_parts(list('namast')), ('नम', 4, 'स्त्'))
self.assertEqual(trans.transliterate_parts(list('namaste')), ('नम', 4, 'स्ते'))
self.assertEqual(trans.transliterate_parts(list('namaste ')), ('नमस्ते ', 8, ''))

def test_t_latn_post_parts(self) -> None:
trans = self.get_transliterator_or_skip('t-latn-post')
self.assertEqual(trans.transliterate_parts(list('u')), ('', 0, 'u'))
self.assertEqual(trans.transliterate_parts(list('u"')), ('', 0, 'ü'))
self.assertEqual(trans.transliterate_parts(list('u""')), ('u"', 3, ''))
self.assertEqual(trans.transliterate_parts(list('u"u')), ('ü', 2, 'u'))
self.assertEqual(trans.transliterate_parts(list('üu"u')), ('üü', 3, 'u'))

def test_t_rfc1345_parts(self) -> None:
trans = self.get_transliterator_or_skip('t-rfc1345')
self.assertEqual(trans.transliterate_parts(list('&')), ('', 0, '&'))
self.assertEqual(trans.transliterate_parts(list('&C')), ('', 0, '&C'))
self.assertEqual(trans.transliterate_parts(list('&Co')), ('©', 3, ''))
self.assertEqual(trans.transliterate_parts(list('&f')), ('', 0, '&f'))
self.assertEqual(trans.transliterate_parts(list('&ff')), ('', 0, 'ff'))
self.assertEqual(trans.transliterate_parts(list('&ffi')), ('ffi', 4, ''))
self.assertEqual(trans.transliterate_parts(list('☺&ffi中')), ('☺ffi中', 6, ''))

@unittest.skipUnless(
M17N_DB_VERSION >= (1, 8, 8),
'Skipping because m17n-db is too old')
def test_t_math_latex_parts(self) -> None:
trans = self.get_transliterator_or_skip('t-math-latex')
self.assertEqual(trans.transliterate_parts(list('\\')), ('', 0, '\\'))
self.assertEqual(trans.transliterate_parts(list('\\i')), ('', 0, '\\i'))
self.assertEqual(trans.transliterate_parts(list('\\in')), ('', 0, '\\∈'))
self.assertEqual(trans.transliterate_parts(list('\\int')), ('', 0, '\\∫'))
self.assertEqual(trans.transliterate_parts(list('\\inter')), ('', 0, '\\inter'))
self.assertEqual(trans.transliterate_parts(list('\\inters')), ('', 0, '∩'))
self.assertEqual(trans.transliterate_parts(list('\\inters ')), ('∩ ', 8, ''))
self.assertEqual(trans.transliterate_parts(list('\\inters☺')), ('∩☺', 8, ''))
self.assertEqual(trans.transliterate_parts(list('☺\\int')), ('☺', 1, '\\∫'))

def test_unicode(self) -> None:
trans = self.get_transliterator_or_skip('t-unicode')
self.assertEqual('', trans.transliterate([]))
Expand Down

0 comments on commit bf38ad0

Please sign in to comment.