def test_rejects_simple_cross(): meq = multi_equiv_list(2, 2, 2) meq.link(entry_res_id(0, 0), entry_res_id(1, 1)) meq.link(entry_res_id(1, 0), entry_res_id(2, 1)) with raises(Exception): meq.link(entry_res_id(0, 0), entry_res_id(2, 0))
def test_align_join_joins(): meq = multi_equiv_list(1, 1, 1, 1) meq.link(entry_res_id(0, 0), entry_res_id(1, 0)) meq.link(entry_res_id(2, 0), entry_res_id(3, 0)) meq.link(entry_res_id(1, 0), entry_res_id(2, 0)) assert (get_psuedo_alignment(meq) == [ (0, 0, 0, 0), ])
def test_align_pair(): meq = multi_equiv_list(2, 3) meq.link(entry_res_id(0, 0), entry_res_id(1, 0)) meq.link(entry_res_id(0, 1), entry_res_id(1, 2)) assert (get_psuedo_alignment(meq) == [ (0, 0), (None, 1), (1, 2), ])
def test_rejects_joining_items_within_list(): meq = multi_equiv_list(3, 3, 3) meq.link(entry_res_id(0, 0), entry_res_id(1, 0)) meq.link(entry_res_id(1, 0), entry_res_id(2, 0)) meq.link(entry_res_id(0, 1), entry_res_id(1, 1)) meq.link(entry_res_id(1, 2), entry_res_id(2, 2)) with raises(Exception): meq.link(entry_res_id(0, 1), entry_res_id(2, 2))
def test_align_triple(): meq = multi_equiv_list(3, 3, 3) meq.link(entry_res_id(0, 0), entry_res_id(1, 0)) meq.link(entry_res_id(0, 0), entry_res_id(2, 0)) meq.link(entry_res_id(2, 1), entry_res_id(0, 1)) meq.link(entry_res_id(1, 2), entry_res_id(0, 2)) meq.link(entry_res_id(2, 2), entry_res_id(1, 2)) assert (get_psuedo_alignment(meq) == [ (0, 0, 0), (1, None, 1), (None, 1, None), (2, 2, 2), ])
def test_constructor_works(): assert (multi_equiv_list(1).num_entries() == 1) assert (multi_equiv_list(1, 1).num_entries() == 2) assert (multi_equiv_list(1, 1, 1).num_entries() == 3) with raises(Exception): multi_equiv_list()