def test_create_state(self): table = KgenTable(3) new_state = table.create_state(1, PE('m')) self.assertEqual(2, new_state) self.assertEqual(2, len(table)) self.assertEqual([], table[1].context) self.assertEqual([PE('m')], table[2].context)
def build_pair_table(lexseg, surseg, padding=0): columns = PEmap(padding=padding, any_column=False) for i in range(len(lexseg)): lex = lexseg[i] sur = surseg[i] columns.add(PE(lex,sur)) table = KgenTable(len(columns), padding=padding, any_column=False) for col_idx, _ in columns: table.add_transition(1, col_idx, 1) return columns, table
def test_add_transition(self): table = KgenTable(2) table.create_state(1, PE('m')) self.assertEqual(0, table[1,0]) self.assertEqual(0, table[1,1]) self.assertEqual(0, table[2,0]) self.assertEqual(0, table[2,1]) table.add_transition(1, 1, 2) self.assertEqual(0, table[1,0]) self.assertEqual(2, table[1,1]) self.assertEqual(0, table[2,0]) self.assertEqual(0, table[2,1]) table.add_transition(2, 0, 1) self.assertEqual(0, table[1,0]) self.assertEqual(2, table[1,1]) self.assertEqual(1, table[2,0]) self.assertEqual(0, table[2,1]) self.assertEqual('1: 0 2 1\n2: 1 0 1\n', str(table))