85 lines
2.1 KiB
Python
85 lines
2.1 KiB
Python
import sys
|
|
import pytest
|
|
from PyQt5.QtWidgets import QApplication
|
|
import pyqtgraph as pg
|
|
|
|
from grum import theme
|
|
from grum.mainwin import MainWindow
|
|
from grum.mdi.mdisubplot import MDISubPlot
|
|
from grum.plotdesc import PlotDescription
|
|
from grum.theme import pg_plot_style
|
|
|
|
|
|
@pytest.mark.parametrize(
|
|
"plot_name, plot_title, plot_xlabel, plot_ylabel, xs,ys",
|
|
[
|
|
("plot_name", "plot_title", "plot_xlabel", "plot_ylabel", [1, 2], [3, 4]),
|
|
("plot_name", None, None, None, [], []),
|
|
],
|
|
)
|
|
def test_plot_description_init(
|
|
plot_name, plot_title, plot_xlabel, plot_ylabel, xs, ys
|
|
):
|
|
if plot_title:
|
|
pd = PlotDescription(plot_name, plot_title, plot_xlabel, plot_ylabel, xs, ys)
|
|
else:
|
|
pd = PlotDescription(plot_name)
|
|
|
|
assert pd.name == plot_name
|
|
assert pd.title == plot_title
|
|
assert pd.xlabel == plot_xlabel
|
|
assert pd.ylabel == plot_ylabel
|
|
assert pd.xs == xs
|
|
assert pd.ys == ys
|
|
|
|
|
|
def test_data():
|
|
pd = PlotDescription("name", xs=[1, 2], ys=[3, 4])
|
|
|
|
assert pd.data == ([1, 2], [3, 4])
|
|
|
|
|
|
def test_append():
|
|
pd = PlotDescription("name", xs=[1, 2], ys=[3, 4])
|
|
pd.append([3, 5])
|
|
|
|
assert pd.xs == [1, 2, 3]
|
|
assert pd.ys == [3, 4, 5]
|
|
|
|
|
|
def test_make_plot():
|
|
pd = PlotDescription(
|
|
"plot_name", "plot_title", "plot_xlabel", "plot_ylabel", [1, 2], [3, 4]
|
|
)
|
|
app = QApplication(sys.argv)
|
|
theme.apply(app)
|
|
mw = MainWindow(add_examples=True, offline=True)
|
|
|
|
mdi_sub = MDISubPlot("mdi", pd)
|
|
pw = pg.PlotWidget()
|
|
style = pg_plot_style()
|
|
|
|
ret = pd.make_plot(pw, style)
|
|
|
|
assert isinstance(ret, pg.PlotDataItem)
|
|
assert pw.getAxis("left").labelText == "plot_ylabel"
|
|
assert pw.getAxis("bottom").labelText == "plot_xlabel"
|
|
assert pw.getPlotItem().titleLabel.text == "plot_title"
|
|
|
|
|
|
def test_to_dict():
|
|
pd = PlotDescription(
|
|
"plot_name", "plot_title", "plot_xlabel", "plot_ylabel", [1, 2], [3, 4]
|
|
)
|
|
|
|
assert pd.to_dict() == {
|
|
"title": "plot_title",
|
|
"xlabel": "plot_xlabel",
|
|
"xs": [1, 2],
|
|
"ylabel": "plot_ylabel",
|
|
"ys": [3, 4],
|
|
}
|
|
|
|
|
|
|