"""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)