import unittest import os from ds_ctcdecoder import Alphabet class TestAlphabetParsing(unittest.TestCase): def _ending_tester(self, file, expected): alphabet = Alphabet(os.path.join(os.path.dirname(__file__), 'test_data', file)) label = '' label_id = -1 for expected_label, expected_label_id in expected: try: label_id = alphabet.Encode(expected_label) except KeyError: pass self.assertEqual(label_id, [expected_label_id]) try: label = alphabet.Decode([expected_label_id]) except KeyError: pass self.assertEqual(label, expected_label) def test_macos_ending(self): self._ending_tester('alphabet_macos.txt', [('a', 0), ('b', 1), ('c', 2)]) def test_unix_ending(self): self._ending_tester('alphabet_unix.txt', [('a', 0), ('b', 1), ('c', 2)]) def test_windows_ending(self): self._ending_tester('alphabet_windows.txt', [('a', 0), ('b', 1), ('c', 2)]) if __name__ == '__main__': unittest.main()