From 5541e7a88a797a28d12da9472b969e1d4d6dd60e Mon Sep 17 00:00:00 2001 From: Daniel Date: Sat, 2 Dec 2023 13:45:25 +0100 Subject: [PATCH] add test script for dependency resolving algorithm --- tests/test_utils.py | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 tests/test_utils.py diff --git a/tests/test_utils.py b/tests/test_utils.py new file mode 100644 index 0000000..e462fc6 --- /dev/null +++ b/tests/test_utils.py @@ -0,0 +1,40 @@ +import pytest + +from prototyping.sorting_algo import Rule, is_rule_satisfied, sort_by_rules + + +@pytest.fixture +def in_list(): + return ["a", "b", "c", "d", "e", "f", "g"] + + +@pytest.fixture +def rules() -> list[Rule]: + return [ # X depends on Y + Rule("a", "e"), + Rule("b", "e"), + Rule("b", "f"), + Rule("c", "e"), + Rule("d", "e"), + Rule("f", "e"), + ] + + +def has_unique_elements(in_list): + return len(set(in_list)) == len(in_list) + + +def has_rules_satisfied(in_list, rules): + rule_satisfied: list[bool] = [] + for rule in rules: + if is_rule_satisfied(in_list, rule): + rule_satisfied.append(True) + else: + rule_satisfied.append(False) + return all(rule_satisfied) + + +def test_stuff(in_list, rules): + sort_by_rules(in_list, rules) + assert has_unique_elements(in_list) + assert has_rules_satisfied(in_list, rules)