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")
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")
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)
def test_not_last_fails_unknown_item(): r = RankingProblem() with pytest.raises(ValueError, match="Dog not in Items"): r.not_last("Dog")
def test_can_call_not_last(): r = RankingProblem() r.set_items(["Dog"]) r.not_last("Dog")