Files
pyGUI/tests/test_comparison.py

63 lines
1.7 KiB
Python

"""Tests for src/pygui/backend/comparison.py."""
from pygui.backend.comparison import compare_runs
def test_identical_series():
a = [20.0, 30.0, 40.0, 50.0, 60.0]
result = compare_runs(a, a)
assert result["distance"] == 0.0
assert len(result["index_a"]) == len(a)
assert result["index_a"] == result["index_b"]
def test_empty_series():
result = compare_runs([], [])
assert result["distance"] == float("inf")
assert result["index_a"] == []
assert result["index_b"] == []
assert result["warping_path"] == []
def test_one_empty():
result = compare_runs([10.0, 20.0], [])
assert result["distance"] == float("inf")
def test_aligned_series():
a = [10.0, 20.0, 30.0]
b = [15.0, 25.0, 35.0]
result = compare_runs(a, b)
assert result["distance"] >= 0.0
assert len(result["index_a"]) > 0
assert len(result["index_b"]) > 0
def test_single_element():
result = compare_runs([42.0], [42.0])
assert result["distance"] == 0.0
def test_different_lengths():
short = [10.0, 20.0]
long_ = [10.0, 15.0, 20.0, 25.0, 30.0]
result = compare_runs(short, long_)
assert result["distance"] >= 0.0
assert len(result["index_a"]) > 0
assert len(result["index_b"]) > 0
assert len(result["index_a"]) == len(result["index_b"])
def test_return_structure():
a = [1.0, 2.0, 3.0, 4.0, 5.0]
b = [2.0, 3.0, 4.0, 5.0, 6.0]
result = compare_runs(a, b)
assert "distance" in result
assert "index_a" in result
assert "index_b" in result
assert "warping_path" in result
assert isinstance(result["distance"], float)
assert isinstance(result["index_a"], list)
assert isinstance(result["index_b"], list)
assert isinstance(result["warping_path"], list)