Exemple #1
0
def test_parse_no_pick() -> None:
    csv = parse_input("tests/prio/csvs/no_pick.csv")
    assert not csv.isnull().values.any()
    assert set(csv.columns) == {
        "project",
        "value",
        "cost",
        "duration",
        "risk",
        "pick",
        "alternative",
    }
    assert list(csv["pick"].values) == [False, False, False, False]
Exemple #2
0
def test_parse_missing_one_alternative() -> None:
    csv = parse_input("tests/prio/csvs/missing_one_alt.csv")
    assert not csv.isnull().values.any()
    assert set(csv.columns) == {
        "project",
        "value",
        "cost",
        "duration",
        "risk",
        "pick",
        "alternative",
    }
    assert list(csv["alternative"].values) == [("B",), ("A",), ()]
Exemple #3
0
def test_parse_input() -> None:
    csv = parse_input("tests/prio/csvs/prio.csv")
    assert not csv.isnull().values.any()
    assert set(csv.columns) == {
        "project",
        "value",
        "cost",
        "duration",
        "risk",
        "pick",
        "alternative",
    }
    assert list(csv["project"].values) == ["Project A", "Project B", "C", "D"]
    assert list(csv["value"].values) == [0.0, 1.0, 5.0, 0.0]
    assert list(csv["cost"].values) == [4.0, 0.0, 2.0, 2.0]
    assert list(csv["duration"].values) == [2.0, 1.0, 4.0, 6.0]
    assert list(csv["risk"].values) == [5.0, 1.0, 1.0, 1.0]
    assert list(csv["pick"].values) == [True, False, False, True]
    assert list(csv["alternative"].values) == [
        ("Project B",),
        ("Project A", "C"),
        ("Project B",),
        (),
    ]
Exemple #4
0
def test_parse_missing_one_risk() -> None:
    with pytest.raises(ValueError):
        parse_input("tests/prio/csvs/missing_one_risk.csv")
Exemple #5
0
def test_parse_input_not_found() -> None:
    with pytest.raises(FileNotFoundError):
        parse_input("tests/prio/csvs/mamma.csv")
Exemple #6
0
def test_parse_missing_cost() -> None:
    with pytest.raises(ValueError):
        parse_input("tests/prio/csvs/no_cost.csv")
Exemple #7
0
def test_parse_duplicate_projects() -> None:
    with pytest.raises(ValueError):
        parse_input("tests/prio/csvs/duplicate_proj.csv")
Exemple #8
0
def test_parse_asymmetrical_alternatives() -> None:
    with pytest.raises(ValueError):
        parse_input("tests/prio/csvs/asym_alt.csv")
Exemple #9
0
def test_parse_pick_conflicts_alternatives() -> None:
    with pytest.raises(ValueError):
        parse_input("tests/prio/csvs/pick_vs_alts.csv")
Exemple #10
0
def test_parse_wrong_alternatives() -> None:
    with pytest.raises(ValueError):
        parse_input("tests/prio/csvs/wrong_alt.csv")
Exemple #11
0
def test_parse_input_pick_no_bool() -> None:
    with pytest.raises(ValueError):
        parse_input("tests/prio/csvs/pick_wrong.csv")
Exemple #12
0
def test_parse_input_negative() -> None:
    with pytest.raises(ValueError):
        parse_input("tests/prio/csvs/negative.csv")