python/test_generate.py
Matej Focko db35a07738
feat: implement comparator for trees
Signed-off-by: Matej Focko <mfocko@redhat.com>
2022-02-03 11:35:12 +01:00

37 lines
930 B
Python

from avl import AVLTree
from wavl import WAVLTree
from comparator import Comparator
from test_wavl import delete_strategy
import hypothesis
def report_different(before, deleted, comparator):
h = abs(hash(before))
with (
open(f"trees/{h}_before.dot", "w") as b,
open(f"trees/{h}_d{deleted}_after.dot", "w") as a,
):
print(before, file=b)
print(comparator, file=a)
@hypothesis.settings(max_examples=10000, deadline=None)
@hypothesis.given(config=delete_strategy())
def test_delete(config):
values, order = config
comparator = Comparator(AVLTree(), WAVLTree())
for value in values:
comparator.insert(value)
for value in order:
before = str(comparator.left)
comparator.delete(value)
try:
assert comparator.are_equal
except AssertionError:
report_different(before, value, comparator)
raise