~ubuntu-branches/ubuntu/raring/sphinxtrain/raring-proposed

« back to all changes in this revision

Viewing changes to python/cmusphinx/test_s3dict.py

  • Committer: Package Import Robot
  • Author(s): Samuel Thibault
  • Date: 2013-01-02 04:10:21 UTC
  • Revision ID: package-import@ubuntu.com-20130102041021-ynsizmz33fx02hea
Tags: upstream-1.0.8
ImportĀ upstreamĀ versionĀ 1.0.8

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#!/usr/bin/env python
 
2
 
 
3
import s3dict
 
4
import unittest
 
5
import os
 
6
import sys
 
7
 
 
8
class TestS3Dict(unittest.TestCase):
 
9
    def setUp(self):
 
10
        self.basedir = os.path.dirname(__file__)
 
11
 
 
12
    def testRead(self):
 
13
        foodict = s3dict.open(os.path.join(self.basedir, "test", "foo.dict"))
 
14
        self.assert_('AH' in foodict.phoneset)
 
15
        self.assertEquals(foodict.get_phones('A'), ['AH'])
 
16
        self.assertEquals(foodict.get_alt_phones('A', 2), ['EY'])
 
17
        self.assertEquals(foodict.get_phones('ZSWANG'), ['S', 'W', 'AE', 'NG'])
 
18
        try:
 
19
            foo = foodict.get_phones('QRXG')
 
20
            print foo
 
21
        except KeyError:
 
22
            pass # Expected fail
 
23
        else:
 
24
            self.fail()
 
25
        try:
 
26
            foo = foodict.get_alt_phones('A',3)
 
27
        except IndexError:
 
28
            pass # Expected fail
 
29
        else:
 
30
            self.fail()
 
31
        try:
 
32
            foo = foodict.get_alt_phones('!@#$!@',3)
 
33
        except KeyError:
 
34
            pass # Expected fail
 
35
        else:
 
36
            self.fail()
 
37
        self.assertEquals(foodict['A'], ['AH'])
 
38
        self.assertEquals(foodict['A',2], ['EY'])
 
39
        self.assertEquals(foodict['A(2)'], ['EY'])
 
40
        self.assertEquals(foodict['ZSWANG'], ['S', 'W', 'AE', 'NG'])
 
41
 
 
42
    def testCreate(self):
 
43
        mydict = s3dict.S3Dict()
 
44
        mydict.set_phones('A', ['AH'])
 
45
        mydict.add_alt_phones('A', ['EY'])
 
46
        mydict.set_phones('ZSWANG', ['S', 'W', 'AE', 'NG'])
 
47
        mydict.set_alt_phones('A', 2, ['EY'])
 
48
        try:
 
49
            mydict.set_alt_phones('A', 5, ['AX'])
 
50
        except IndexError:
 
51
            pass # Expected fail
 
52
        else:
 
53
            self.fail()
 
54
        self.assertEquals(mydict.get_phones('A'), ['AH'])
 
55
        self.assertEquals(mydict.get_alt_phones('A', 2), ['EY'])
 
56
        self.assertEquals(mydict.get_phones('ZSWANG'), ['S', 'W', 'AE', 'NG'])
 
57
        mydict.set_alt_phones('A', 2, ['AA'])
 
58
        self.assertEquals(mydict.get_alt_phones('A', 2), ['AA'])
 
59
        self.assert_('ZSWANG' in mydict)
 
60
        mydict.del_phones('ZSWANG')
 
61
        self.assert_('ZSWANG' not in mydict)
 
62
        self.assert_('NG' not in mydict.phoneset)
 
63
 
 
64
    def testUnion(self):
 
65
        foodict = s3dict.open(os.path.join(self.basedir, "test", "foo.dict"))
 
66
        bardict = s3dict.open(os.path.join(self.basedir, "test", "bar.dict"))
 
67
        bazdict = s3dict.union(foodict, bardict)
 
68
        self.assertEquals(foodict['ACTUALLY'], bazdict['ACTUALLY'])
 
69
        self.assert_('ABANDONED' in bazdict)
 
70
        self.assert_('ZONES' in bazdict)
 
71
        self.assert_('ZSWANG' in bazdict)
 
72
 
 
73
if __name__ == '__main__':
 
74
    unittest.main()