示例#1
0
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))
示例#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),
    ])
示例#3
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),
    ])
示例#4
0
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))
示例#5
0
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),
    ])
示例#6
0
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()