Esempio n. 1
0
def test_term_init():
    term = Term("AAF", None)
    assert term.name == "AAF"
    assert term.term == MACROS["AAF"]
    assert term.samples == None
    assert term.subsets == None

    term = Term("AAF", items=[".05", ".95"])
    assert term.subsets == [0.05, 0.95]

    term = One()
    assert term.name == "_ONE"

    with pytest.raises(ValueError):
        Term("NoSuchTerm", None)

    MACROS["NOTYPE"] = {}
    with pytest.raises(TypeError):
        Term("NOTYPE", None)
    del MACROS["NOTYPE"]

    term = Term("AFs", samples=["1"])
    assert term.samples == ["1"]

    term = Term("AFs", [None, 0.5], ["sample2"])
    term.set_samples(["sample1", "sample2"])
    assert term.samples == [1]
    assert term.subsets == [None, 0.5]

    term2 = Term("AFs", [None, 0.5], ["sample2"])
    term2.set_samples(["sample1", "sample2"])
    assert term2.samples == [1]
    assert term2.subsets == [None, 0.5]
    assert repr(term2) == "<Term AFs(subsets=[None, 0.5], samples=[1])>"
    assert term2 == term
    assert term2 != 1

    with pytest.raises(KeyError):
        Term("AFs", [1, 2, 3], None)
Esempio n. 2
0
def test_term_run(variants):
    term = Term("FILTER", "PASS")
    assert term.run(variants[0], passed=True) == False
    assert term.run(variants[5], passed=True) == ["PASS"]

    term = Term("FILTER2")
    assert term.run(variants[5], passed=True) == False

    term = Term("GTTYPEs", None, ["0"])
    term.set_samples(variants[-1])
    assert term.run(variants[0], passed=False) == ["HOM_REF"]

    term = Term("AAF", [0.126, None])
    # .125
    assert term.run(variants[0], passed=False) == False
    assert term.run(variants[2], passed=False) == [0.25]
    term = Term("AAF", [None, 0.24])
    # .25
    assert term.run(variants[0], passed=False) == [0.125]
    assert term.run(variants[2], passed=False) == False

    term = Term("FILTER", "PASS")
    assert term.run(variants[0], passed=False) == False
    assert term.run(variants[5], passed=False) == ["PASS"]