def test_getInfectious_invalid_state():
    states = {
        ("70+", "S"): 10,
        ("70+", "E"): 20,
        ("70+", "I"): 7,
        ("70+", "A"): 11,
        ("[17,70)", "S"): 15
    }

    with pytest.raises(KeyError):
        np.getInfectious("70+", states, ["X"])
def test_getInfectious_empty():
    states = {
        ("70+", "S"): 10,
        ("70+", "E"): 20,
        ("70+", "I"): 7,
        ("70+", "A"): 11,
        ("[17,70)", "S"): 15
    }

    assert np.getInfectious("70+", states, []) == 0.0
def test_getInfectious_with_a2():
    states = {
        ("70+", "S"): 10,
        ("70+", "E"): 20,
        ("70+", "I"): 7,
        ("70+", "A"): 11,
        ("70+", "A2"): 5,
        ("[17,70)", "S"): 15
    }

    assert np.getInfectious("70+", states, ["I", "A", "A2"]) == 23.0
def test_getInfectious_non_existant():
    states = {}

    with pytest.raises(KeyError):
        np.getInfectious("70+", states, ["I", "A"])