0
0
mirror of https://github.com/bec-project/bec_widgets.git synced 2025-07-14 11:41:49 +02:00

feat: add first draft for alignment_1d GUI

This commit is contained in:
2024-09-10 17:44:44 +02:00
parent efe90eb163
commit 63c24f97a3
6 changed files with 1253 additions and 0 deletions

View File

@ -0,0 +1,90 @@
import pyqtgraph as pg
import pytest
from bec_qthemes._main import AccentColors
from bec_widgets.utils.plot_indicator_items import BECArrowItem, BECTickItem
@pytest.fixture(scope="function")
def arrow_item():
"""Fixture for the BECArrowItem class"""
item = BECArrowItem(plot_item=pg.PlotItem())
yield item
def test_arrow_item_add_to_plot(arrow_item):
"""Test the add_to_plot method"""
assert arrow_item.plot_item is not None
assert arrow_item.plot_item.items == []
arrow_item.accent_colors = AccentColors(theme="dark")
arrow_item.add_to_plot()
assert arrow_item.plot_item.items == [arrow_item.arrow_item]
def test_arrow_item_remove_to_plot(arrow_item):
"""Test the remove_from_plot method"""
arrow_item.accent_colors = AccentColors(theme="dark")
arrow_item.add_to_plot()
assert arrow_item.plot_item.items == [arrow_item.arrow_item]
arrow_item.remove_from_plot()
assert arrow_item.plot_item.items == []
def test_arrow_item_set_position(arrow_item):
"""Test the set_position method"""
container = []
def signal_callback(tup: tuple):
container.append(tup)
arrow_item.accent_colors = AccentColors(theme="dark")
arrow_item.add_to_plot()
arrow_item.position_changed.connect(signal_callback)
arrow_item.set_position(pos=(1, 1))
assert arrow_item.arrow_item.pos().toTuple() == (1, 1)
arrow_item.set_position(pos=(2, 2))
assert arrow_item.arrow_item.pos().toTuple() == (2, 2)
assert container == [(1, 1), (2, 2)]
@pytest.fixture(scope="function")
def tick_item():
"""Fixture for the BECArrowItem class"""
item = BECTickItem(plot_item=pg.PlotItem())
yield item
def test_tick_item_add_to_plot(tick_item):
"""Test the add_to_plot method"""
assert tick_item.plot_item is not None
assert tick_item.plot_item.items == []
tick_item.accent_colors = AccentColors(theme="dark")
tick_item.add_to_plot()
assert tick_item.plot_item.layout.itemAt(4, 1) == tick_item.tick_item
def test_tick_item_remove_to_plot(tick_item):
"""Test the remove_from_plot method"""
tick_item.accent_colors = AccentColors(theme="dark")
tick_item.add_to_plot()
assert tick_item.plot_item.layout.itemAt(4, 1) == tick_item.tick_item
tick_item.remove_from_plot()
assert tick_item.plot_item.layout.itemAt(4, 1) is None
def test_tick_item_set_position(tick_item):
"""Test the set_position method"""
container = []
def signal_callback(val: float):
container.append(val)
tick_item.accent_colors = AccentColors(theme="dark")
tick_item.add_to_plot()
tick_item.position_changed.connect(signal_callback)
tick_item.set_position(pos=1)
assert tick_item._tick_pos == 1
tick_item.set_position(pos=2)
assert tick_item._tick_pos == 2
assert container == [1.0, 2.0]