From e50cca7a14139b1ebbc1f6c81fb5863c8e996e72 Mon Sep 17 00:00:00 2001 From: Matej Focko Date: Sat, 7 May 2022 15:40:10 +0200 Subject: [PATCH] tests: generate AVL vs WAVL difference by contradiction Signed-off-by: Matej Focko --- test_generate.py | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/test_generate.py b/test_generate.py index fcbcac1..d9df2bc 100644 --- a/test_generate.py +++ b/test_generate.py @@ -4,6 +4,7 @@ from comparator import Comparator from test_wavl import delete_strategy import hypothesis +import pytest def report_different(before, deleted, comparator): @@ -16,9 +17,10 @@ def report_different(before, deleted, comparator): print(comparator, file=a) +@pytest.mark.xfail @hypothesis.settings(max_examples=10000, deadline=None) @hypothesis.given(config=delete_strategy()) -def test_delete(config): +def test_delete_ranks_differ(config): values, order = config comparator = Comparator(AVLTree(), WAVLTree()) @@ -35,3 +37,25 @@ def test_delete(config): except AssertionError: report_different(before, value, comparator) raise + + +@pytest.mark.xfail +@hypothesis.settings(max_examples=10000, deadline=None) +@hypothesis.given(config=delete_strategy()) +def test_delete_trees_differ(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_similar + except AssertionError: + report_different(before, value, comparator) + raise