コード例 #1
0
ファイル: test_model.py プロジェクト: pombredanne/xigt
 def test_clear(self):
     t = Tier()
     t.extend([Item(id='t1'), Item(id='t2'), Item(id='t3')])
     self.assertEqual(len(t), 3)
     t.clear()
     self.assertEqual(len(t), 0)
     self.assertIs(t.get(0), None)
     self.assertIs(t.get('t1'), None)
コード例 #2
0
ファイル: test_model.py プロジェクト: xigt/xigt
 def test_clear(self):
     t = Tier()
     t.extend([Item(id='t1'), Item(id='t2'), Item(id='t3')])
     assert len(t) == 3
     t.clear()
     assert len(t) == 0
     assert t.get(0) is None
     assert t.get('t1') is None
コード例 #3
0
ファイル: test_core.py プロジェクト: hehaotian/xigt
 def test_get(self):
     t = Tier(items=[Item(id='a1', content='1'),
                     Item(id='a2', content='2')])
     # dictionary key
     self.assertEqual(t.get('a1').content, '1')
     self.assertEqual(t.get('a2').content, '2')
     # list index
     self.assertEqual(t.get(0).content, '1')
     self.assertEqual(t.get(1).content, '2')
     # default value
     self.assertEqual(t.get('a3'), None)
     self.assertEqual(t.get('a3', 'z'), 'z')
     self.assertEqual(t.get(2), None)
     self.assertEqual(t.get(2, 'z'), 'z')
コード例 #4
0
ファイル: test_model.py プロジェクト: pombredanne/xigt
class TestTier(unittest.TestCase):
    def setUp(self):
        self.t1 = Tier()

        self.t2 = Tier(
            id='t',
            type='basic',
            attributes={'attr':'val'},
            metadata=[Metadata(type='meta', metas=[Meta(text='meta')])],
            items=[Item(id='t1'), Item(id='t2')]
        )

    def test_init(self):
        self.assertRaises(ValueError, Tier, id='1')  # invalid id
        # don't allow multiple items with the same ID
        self.assertRaises(XigtError, Tier, items=[Item(id='i1'),
                                                  Item(id='i1')])

    def test_id(self):
        self.assertIs(self.t1.id, None)

        self.assertEqual(self.t2.id, 't')

    def test_type(self):
        self.assertIs(self.t1.type, None)

        self.assertEqual(self.t2.type, 'basic')

    def test_items(self):
        self.assertEqual(len(self.t1._list), 0)
        self.assertEqual(self.t1.items, [])

        self.assertEqual(len(self.t2.items), 2)
        # contained Items should now have their tier specified
        for i in self.t2.items:
            self.assertIs(i.tier, self.t2)

    def test_parents(self):
        self.assertIs(self.t1.igt, None)
        self.assertIs(self.t1.corpus, None)

        self.assertIs(self.t2.igt, None)
        self.assertIs(self.t2.corpus, None)

    def test_metadata(self):
        self.assertEqual(len(self.t1.metadata), 0)

        self.assertEqual(self.t2.metadata[0].type, 'meta')
        self.assertEqual(len(self.t2.metadata[0].metas), 1)
        self.assertEqual(self.t2.metadata[0][0].text, 'meta')

    def test_attributes(self):
        self.assertEqual(self.t1.attributes, dict())

        self.assertEqual(self.t2.attributes, {'attr':'val'})

    def test_reference_attributes(self):
        # segmentation cannot co-occur with alignment or content
        self.assertRaises(XigtError, Tier, alignment='a1', segmentation='b1')
        self.assertRaises(XigtError, Tier, content='a1', segmentation='b1')

        self.assertIs(self.t1.alignment, None)
        self.assertIs(self.t1.content, None)
        self.assertIs(self.t1.segmentation, None)

        self.assertIs(self.t2.alignment, None)
        self.assertIs(self.t2.content, None)
        self.assertIs(self.t2.segmentation, None)

    def test_get(self):
        self.assertIs(self.t1.get(0), None)
        self.assertIs(self.t1.get('t'), None)
        self.assertEqual(self.t1.get('t', default=1), 1)

        self.assertEqual(self.t2.get(0).id, 't1')
        self.assertIs(self.t2.get(2), None)
        self.assertEqual(self.t2.get('t1').id, 't1')
        self.assertEqual(
            self.t2.get('t1', default=Item(id='x')).id, 't1'
        )

    def test_append(self):
        t = Tier()
        self.assertRaises(XigtStructureError, t.append, Tier())
        self.assertRaises(XigtStructureError, t.append, Igt())
        self.assertRaises(XigtStructureError, t.append, XigtCorpus())
        self.assertRaises(XigtStructureError, t.append, Metadata())
        self.assertRaises(XigtStructureError, t.append, Meta())
        self.assertEqual(len(t), 0)
        t.append(Item(id='t1'))
        self.assertEqual(len(t), 1)
        self.assertRaises(XigtError, t.append, Item(id='t1'))
        t.append(Item(id='t2'))
        self.assertEqual(len(t), 2)
        self.assertEqual(t[0].id, 't1')
        self.assertEqual(t[1].id, 't2')

    def test_insert(self):
        t = Tier()
        self.assertEqual(len(t), 0)
        t.insert(0, Item(id='t1'))
        self.assertEqual(len(t), 1)
        self.assertRaises(XigtError, t.insert, 0, Item(id='t1'))
        t.insert(0, Item(id='t2'))
        t.insert(100, Item(id='t3'))
        self.assertEqual(len(t), 3)
        self.assertEqual(t[0].id, 't2')
        self.assertEqual(t[1].id, 't1')
        self.assertEqual(t[2].id, 't3')

    def test_extend(self):
        t = Tier()
        self.assertEqual(len(t), 0)
        t.extend([Item(id='t1')])
        self.assertEqual(len(t), 1)
        t.extend([])
        self.assertEqual(len(t), 1)
        t.extend([Item(id='t2'), Item(id='t3')])
        self.assertEqual(len(t), 3)
        self.assertEqual(t[0].id, 't1')
        self.assertEqual(t[1].id, 't2')
        self.assertEqual(t[2].id, 't3')

    def test_clear(self):
        t = Tier()
        t.extend([Item(id='t1'), Item(id='t2'), Item(id='t3')])
        self.assertEqual(len(t), 3)
        t.clear()
        self.assertEqual(len(t), 0)
        self.assertIs(t.get(0), None)
        self.assertIs(t.get('t1'), None)

    def test_get_attribute(self):
        t = Tier(id='t', attributes={'one': 1, 'two': 2})
        igt = Igt(tiers=[t], attributes={'three': 3})
        self.assertEqual(t.get_attribute('one'), 1)
        self.assertEqual(t.get_attribute('two'), 2)
        self.assertIs(t.get_attribute('three'), None)
        self.assertEqual(t.get_attribute('three', inherit=True), 3)
        self.assertEqual(t.get_attribute('three', default=4), 4)