4bb855a940
Provides a static line chart plotting multi-sensor temperature values over time when a session file is loaded.
62 lines
1.7 KiB
Python
62 lines
1.7 KiB
Python
"""Tests for src/pygui/backend/visualization/graph_quick_item.py."""
|
|
import pytest
|
|
|
|
pytestmark = pytest.mark.usefixtures("qapp")
|
|
|
|
|
|
def test_no_data_initially():
|
|
from pygui.backend.visualization.graph_quick_item import GraphQuickItem
|
|
|
|
item = GraphQuickItem()
|
|
assert item.seriesData == []
|
|
assert item.sensorNames == []
|
|
|
|
|
|
def test_series_data_setter_stores_series():
|
|
from pygui.backend.visualization.graph_quick_item import GraphQuickItem
|
|
|
|
item = GraphQuickItem()
|
|
item.seriesData = [[150.0, 151.0], [148.0, 147.5]]
|
|
|
|
assert item.seriesData == [[150.0, 151.0], [148.0, 147.5]]
|
|
|
|
|
|
def test_series_data_auto_ranges_y_with_padding():
|
|
from pygui.backend.visualization.graph_quick_item import GraphQuickItem
|
|
|
|
item = GraphQuickItem()
|
|
item.seriesData = [[150.0, 100.0], [200.0, 120.0]]
|
|
|
|
# min=100, max=200, range=100, 10% pad => [90, 210]
|
|
assert item._min_y == pytest.approx(90.0)
|
|
assert item._max_y == pytest.approx(210.0)
|
|
|
|
|
|
def test_series_data_empty_keeps_default_range():
|
|
from pygui.backend.visualization.graph_quick_item import GraphQuickItem
|
|
|
|
item = GraphQuickItem()
|
|
item.seriesData = []
|
|
|
|
assert item._min_y == 0.0
|
|
assert item._max_y == 150.0
|
|
|
|
|
|
def test_sensor_names_setter_stores_names():
|
|
from pygui.backend.visualization.graph_quick_item import GraphQuickItem
|
|
|
|
item = GraphQuickItem()
|
|
item.sensorNames = ["Sensor 1", "Sensor 2"]
|
|
|
|
assert item.sensorNames == ["Sensor 1", "Sensor 2"]
|
|
|
|
|
|
def test_non_numeric_values_are_skipped_not_crashing():
|
|
from pygui.backend.visualization.graph_quick_item import GraphQuickItem
|
|
|
|
item = GraphQuickItem()
|
|
item.seriesData = [[150.0, "bad", 151.0]]
|
|
|
|
assert item._min_y == pytest.approx(149.9)
|
|
assert item._max_y == pytest.approx(151.1)
|