e2e_tests/tests/test_utils.py

40 lines
906 B
Python

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)