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)
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"]