mirror of
https://github.com/cmusphinx/sphinxtrain.git
synced 2026-06-16 13:14:30 +00:00
75 lines
2.6 KiB
Python
75 lines
2.6 KiB
Python
#!/usr/bin/env python
|
|
|
|
from cmusphinx import s3dict
|
|
import unittest
|
|
import os
|
|
|
|
|
|
class TestS3Dict(unittest.TestCase):
|
|
def setUp(self):
|
|
self.basedir = os.path.dirname(__file__)
|
|
|
|
def testRead(self):
|
|
foodict = s3dict.open(os.path.join(self.basedir, "data", "foo.dict"))
|
|
self.assertTrue('AH' in foodict.phoneset)
|
|
self.assertEqual(foodict.get_phones('A'), ['AH'])
|
|
self.assertEqual(foodict.get_alt_phones('A', 2), ['EY'])
|
|
self.assertEqual(foodict.get_phones('ZSWANG'), ['S', 'W', 'AE', 'NG'])
|
|
try:
|
|
foo = foodict.get_phones('QRXG')
|
|
print(foo)
|
|
except KeyError:
|
|
pass # Expected fail
|
|
else:
|
|
self.fail()
|
|
try:
|
|
foo = foodict.get_alt_phones('A',3)
|
|
except IndexError:
|
|
pass # Expected fail
|
|
else:
|
|
self.fail()
|
|
try:
|
|
foo = foodict.get_alt_phones('!@#$!@',3)
|
|
except KeyError:
|
|
pass # Expected fail
|
|
else:
|
|
self.fail()
|
|
self.assertEqual(foodict['A'], ['AH'])
|
|
self.assertEqual(foodict['A',2], ['EY'])
|
|
self.assertEqual(foodict['A(2)'], ['EY'])
|
|
self.assertEqual(foodict['ZSWANG'], ['S', 'W', 'AE', 'NG'])
|
|
|
|
def testCreate(self):
|
|
mydict = s3dict.S3Dict()
|
|
mydict.set_phones('A', ['AH'])
|
|
mydict.add_alt_phones('A', ['EY'])
|
|
mydict.set_phones('ZSWANG', ['S', 'W', 'AE', 'NG'])
|
|
mydict.set_alt_phones('A', 2, ['EY'])
|
|
try:
|
|
mydict.set_alt_phones('A', 5, ['AX'])
|
|
except IndexError:
|
|
pass # Expected fail
|
|
else:
|
|
self.fail()
|
|
self.assertEqual(mydict.get_phones('A'), ['AH'])
|
|
self.assertEqual(mydict.get_alt_phones('A', 2), ['EY'])
|
|
self.assertEqual(mydict.get_phones('ZSWANG'), ['S', 'W', 'AE', 'NG'])
|
|
mydict.set_alt_phones('A', 2, ['AA'])
|
|
self.assertEqual(mydict.get_alt_phones('A', 2), ['AA'])
|
|
self.assertTrue('ZSWANG' in mydict)
|
|
mydict.del_phones('ZSWANG')
|
|
self.assertTrue('ZSWANG' not in mydict)
|
|
self.assertTrue('NG' not in mydict.phoneset)
|
|
|
|
def testUnion(self):
|
|
foodict = s3dict.open(os.path.join(self.basedir, "data", "foo.dict"))
|
|
bardict = s3dict.open(os.path.join(self.basedir, "data", "bar.dict"))
|
|
bazdict = s3dict.union(foodict, bardict)
|
|
self.assertEqual(foodict['ACTUALLY'], bazdict['ACTUALLY'])
|
|
self.assertTrue('ABANDONED' in bazdict)
|
|
self.assertTrue('ZONES' in bazdict)
|
|
self.assertTrue('ZSWANG' in bazdict)
|
|
|
|
if __name__ == '__main__':
|
|
unittest.main()
|