test: add comprehensive test suite for visualization and comparison modules
This commit is contained in:
@@ -0,0 +1,63 @@
|
||||
"""Tests for src/pygui/backend/comparison.py."""
|
||||
|
||||
import numpy as np
|
||||
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)
|
||||
Reference in New Issue
Block a user