def test_variantRefDoesntMatchPanel_returnsFalse(self, mock_variant):
        index = {
            1: PanelVariant(Lineage("1"), 1, "G", "A"),
        }
        classifier = Classifier(index)
        mock_variant.POS = 1
        mock_variant.REF = "d"
        mock_variant.FILTER = None

        assert not classifier.is_variant_valid(mock_variant)
    def test_posNotInPanel_returnsFalse(self, mock_variant):
        index = {
            1: PanelVariant(Lineage("1"), 1, "G", "A"),
        }
        classifier = Classifier(index)
        mock_variant.POS = 4
        mock_variant.REF = "G"
        mock_variant.FILTER = None

        assert not classifier.is_variant_valid(mock_variant)
    def test_panelVariantFailsFilter_returnsFalse(self, mock_variant):
        index = {
            1: PanelVariant(Lineage("1"), 1, "G", "A"),
        }
        classifier = Classifier(index)
        mock_variant.POS = 1
        mock_variant.REF = "G"
        mock_variant.ALT = ["T", "A"]
        mock_variant.FILTER = "FAIL"

        assert not classifier.is_variant_valid(mock_variant)
    def test_refLineagePosPanelRefInAlt_returnsTrue(self, mock_variant):
        index = {
            1: PanelVariant(Lineage("1"), 1, "G", "A"),
        }
        classifier = Classifier(index)
        mock_variant.POS = 1
        mock_variant.REF = "G"
        mock_variant.ALT = ["T", "C"]
        mock_variant.FILTER = None

        assert not classifier.is_variant_valid(mock_variant)
    def test_panelVariantAltNotInVariantAlts_returnsFalse(self, mock_variant):
        index = {
            1: PanelVariant(Lineage("1"), 1, "G", "A"),
        }
        classifier = Classifier(index)
        mock_variant.POS = 1
        mock_variant.REF = "G"
        mock_variant.ALT = ["T", "C"]
        mock_variant.FILTER = None

        assert not classifier.is_variant_valid(mock_variant)
    def test_panelVariantAltIsNotVariantRef_returnsFalse(self, mock_variant):
        pos = 1692141
        index = {
            pos: PanelVariant(Lineage.from_str("4.10"), position=pos, ref="C", alt="T"),
        }
        classifier = Classifier(index, ref_lineage_position=pos)
        mock_variant.POS = pos
        mock_variant.REF = "A"
        mock_variant.ALT = ["C"]
        mock_variant.FILTER = None

        assert not classifier.is_variant_valid(mock_variant)