예제 #1
0
def test_not_last_constraint_set():
    r = RankingProblem()
    r.set_items(["Dog"])
    r.not_last("Dog")

    assert (r._constraints[1][1] == ("Dog", LAST))
    assert (r._constraints[1][0]._func.__name__ == "not_equal")
예제 #2
0
def test_ranking_problem_solve_not_last_correct():
    r = RankingProblem()
    r.set_items({"Blue", "Red", "Green", "Yellow", "Blue", "Purple"})
    r.not_last("Purple")

    actual_results = r.solve()

    for actual_result in actual_results:
        assert (actual_result[-1] != "Purple")
예제 #3
0
def test_ranking_problem_solve_not_last_in_pair_correct():
    expected_results = [
        (
            "Red",
            "Blue",
        ),
    ]

    r = RankingProblem()
    r.set_items({"Blue", "Red"})
    r.not_last("Red")

    actual_results = r.solve()

    assert (actual_results == expected_results)
예제 #4
0
def test_not_last_fails_unknown_item():
    r = RankingProblem()
    with pytest.raises(ValueError, match="Dog not in Items"):
        r.not_last("Dog")
예제 #5
0
def test_can_call_not_last():
    r = RankingProblem()
    r.set_items(["Dog"])
    r.not_last("Dog")