asr-th / tests /test_thai_word.py
patharanor's picture
test: updated text format and unittest
1b3124c
import unittest
from utils.thai_word import ThaiWord
from collections import deque
class TestThaiWord(unittest.TestCase):
def setUp(self) -> None:
self.thw = ThaiWord()
def test_pretty_text_to_numeric(self):
tokens = deque(['ฮา','โหล','หนึ่ง','สอง','สาม','สี่'])
self.assertEqual(self.thw.pretty(tokens),
'ฮาโหล 1234',
'should convert single word number in thai to numeric')
def test_pretty_long_words_to_numeric(self):
tokens1 = deque([
'ปี','นี้','สอง','พัน','ห้า','ร้อย','หก','สิบ','เจ็ด','นะ', ' ',
'ปี','หน้า','ก็','สอง','พัน','ห้า','ร้อย','หก','สิบ','แปด'
])
self.assertEqual(self.thw.pretty(tokens1),
'ปีนี้ 2,567 นะ ปีหน้าก็ 2,568 ',
'should convert full-words number in thai to numeric in long words (case1)')
tokens2 = deque([
'อืม', ' ', 'อยาก', 'ได้', 'ราย', 'ได้', 'ยี่', 'สิบ',
'เอ็ดล้าน', 'แบบ', 'เข้า', 'บ้าง', ' ', 'ทำ', 'ยัง', 'ไง', 'ดี'
])
self.assertEqual(self.thw.pretty(tokens2),
'อืม อยากได้รายได้ 21,000,000 แบบเข้าบ้าง ทำยังไงดี',
'should convert full-words number in thai to numeric in long words (case2)')
tokens3 = deque([
'อืม',' ','อยาก','ได้','ราย','ได้','ยี่สิบ','เอ็ด','ล้าน',
'แบบ', 'ร้าน','พร้อม','ทำ','ยัง','ไง','ดี'
])
self.assertEqual(self.thw.pretty(tokens3),
'อืม อยากได้รายได้ 21,000,000 แบบร้านพร้อมทำยังไงดี',
'should convert full-words number in thai to numeric in long words (case3)')
def test_pretty_word11_to_numeric(self):
tokens1 = deque(['ซื้อ','มา','สิบ','เอ็ด','บาท'])
self.assertEqual(self.thw.pretty(tokens1),
'ซื้อมา 11 บาท',
'should correct specific numeric "สิบ" and "เอ็ด"')
tokens2 = deque(['ซื้อ','มา','สิบเอ็ด','บาท'])
self.assertEqual(self.thw.pretty(tokens2),
'ซื้อมา 11 บาท',
'should correct specific numeric "สิบเอ็ด"')
def test_pretty_word2x_to_numeric(self):
tokens1 = deque(['ซื้อ','มา','ยี่','สิบ','ห้า','บาท'])
self.assertEqual(self.thw.pretty(tokens1),
'ซื้อมา 25 บาท',
'should correct specific numeric "ยี่" and "สิบ"')
token2 = deque(['ซื้อ','มา','ยี่สิบ','ห้า','บาท'])
self.assertEqual(self.thw.pretty(token2),
'ซื้อมา 25 บาท',
'should correct specific numeric "ยี่สิบ"')
def tearDown(self) -> None:
self.thw = None