예제 #1
0
 def test_clear(self):
     xc = XigtCorpus()
     xc.extend([Igt(id='i1'), Igt(id='i2'), Igt(id='i3')])
     self.assertEqual(len(xc), 3)
     xc.clear()
     self.assertEqual(len(xc), 0)
     self.assertIs(xc.get(0), None)
     self.assertIs(xc.get('i1'), None)
예제 #2
0
파일: test_model.py 프로젝트: xigt/xigt
 def test_clear(self):
     xc = XigtCorpus()
     xc.extend([Igt(id='i1'), Igt(id='i2'), Igt(id='i3')])
     assert len(xc) == 3
     xc.clear()
     assert len(xc) == 0
     assert xc.get(0) is None
     assert xc.get('i1') is None
예제 #3
0
class TestXigtCorpus(unittest.TestCase):

    def setUp(self):
        self.c1 = XigtCorpus()

        self.c2 = XigtCorpus(
            id='xc1',
            type='basic',
            attributes={'attr':'val'},
            metadata=[Metadata(type='meta', metas=[Meta(text='meta')])],
            igts=[Igt(id='i1'), Igt(id='i2')]
        )

    def test_init(self):
        self.assertRaises(ValueError, XigtCorpus, id='1')  # invalid id

        # don't allow multiple igts with the same ID
        self.assertRaises(XigtError, XigtCorpus, igts=[Igt(id='i1'),
                                                       Igt(id='i1')])

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

        self.assertEqual(self.c2.id, 'xc1')

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

        self.assertIs(self.c2.type, 'basic')

    def test_igts(self):
        self.assertEqual(len(self.c1.igts), 0)

        self.assertEqual(len(self.c2.igts), 2)
        # contained Igts should now have their corpus specified
        for i in self.c2.igts:
            self.assertIs(i.corpus, self.c2)

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

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

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

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

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

        self.assertEqual(self.c2.get(0).id, 'i1')
        self.assertIs(self.c2.get(3), None)
        self.assertEqual(self.c2.get('i1').id, 'i1')
        self.assertEqual(
            self.c2.get('i1', default=Igt(id='i3')).id, 'i1'
        )

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

    def test_insert(self):
        xc = XigtCorpus()
        self.assertEqual(len(xc), 0)
        xc.insert(0, Igt(id='i1'))
        self.assertEqual(len(xc), 1)
        self.assertRaises(XigtError, xc.insert, 0, Igt(id='i1'))
        xc.insert(0, Igt(id='i2'))
        xc.insert(100, Igt(id='i3'))
        self.assertEqual(len(xc), 3)
        self.assertEqual(xc[0].id, 'i2')
        self.assertEqual(xc[1].id, 'i1')
        self.assertEqual(xc[2].id, 'i3')

    def test_extend(self):
        xc = XigtCorpus()
        self.assertEqual(len(xc), 0)
        xc.extend([Igt(id='i1')])
        self.assertEqual(len(xc), 1)
        xc.extend([])
        self.assertEqual(len(xc), 1)
        xc.extend([Igt(id='i2'), Igt(id='i3')])
        self.assertEqual(len(xc), 3)
        self.assertEqual(xc[0].id, 'i1')
        self.assertEqual(xc[1].id, 'i2')
        self.assertEqual(xc[2].id, 'i3')

    def test_clear(self):
        xc = XigtCorpus()
        xc.extend([Igt(id='i1'), Igt(id='i2'), Igt(id='i3')])
        self.assertEqual(len(xc), 3)
        xc.clear()
        self.assertEqual(len(xc), 0)
        self.assertIs(xc.get(0), None)
        self.assertIs(xc.get('i1'), None)

    def test_get_attribute(self):
        xc = XigtCorpus(attributes={'one': 1, 'two': 2})
        self.assertEqual(xc.get_attribute('one'), 1)
        self.assertEqual(xc.get_attribute('two'), 2)
        self.assertIs(xc.get_attribute('three'), None)
        self.assertEqual(xc.get_attribute('three', inherit=True), None)