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_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
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')
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)