def test_small_fst(): fst = VectorFst() # States s1 = fst.add_state() s2 = fst.add_state() assert s1 == 0 assert s2 == 1 fst.set_start(s1) fst.set_final(s2) assert fst.start() == s1 assert fst.is_final(s2) assert pytest.approx(fst.final(s2)) == pytest.approx(0.0) # Trs tr_1 = Tr(3, 5, 10.0, s2) fst.add_tr(s1, tr_1) assert fst.num_trs(s1) == 1 tr_2 = Tr(5, 7, 18.0, s2) fst.add_tr(s1, tr_2) assert fst.num_trs(s1) == 2
def test_fst_trs_iterator(): fst = VectorFst() # States s1 = fst.add_state() s2 = fst.add_state() fst.set_start(s1) fst.set_final(s2) tr_1 = Tr(3, 5, 10.0, s2) tr_2 = Tr(5, 7, 18.0, s2) fst.add_tr(s1, tr_1) fst.add_tr(s1, tr_2) trs = [tr_1, tr_2] num_trs = fst.num_trs(s1) idx = 0 for i, tr in enumerate(fst.trs(s1)): idx += 1 assert tr == trs[i] assert num_trs == idx