Skip to content

Commit b80675a

Browse files
committed
🍞 extend tests
1 parent 6abf757 commit b80675a

File tree

1 file changed

+71
-0
lines changed

1 file changed

+71
-0
lines changed

tests/test_serialization.py

Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import pickle
66
import copy
77

8+
from plotly.subplots import make_subplots
89
from plotly_resampler import FigureResampler, FigureWidgetResampler
910
from plotly_resampler.registering import (
1011
register_plotly_resampler,
@@ -45,6 +46,42 @@ def test_pickle_figure_resampler(pickle_figure):
4546
assert len(hf_trace["y"]) == nb_samples
4647
assert np.all(hf_trace["y"] == np.arange(nb_samples))
4748

49+
# Test for figure with subplots (check non-pickled private properties)
50+
fig = FigureResampler(
51+
make_subplots(rows=2, cols=1, shared_xaxes=True),
52+
default_n_shown_samples=50, show_dash_kwargs=dict(port=8051),
53+
)
54+
for i in range(nb_traces):
55+
fig.add_trace(
56+
go.Scattergl(name=f"trace--{i}"), hf_y=np.arange(nb_samples),
57+
row=(i % 2) + 1, col=1,
58+
)
59+
assert fig._global_n_shown_samples == 50
60+
assert fig._show_dash_kwargs["port"] == 8051
61+
assert fig._figure_class == go.Figure
62+
assert fig._xaxis_list == ['xaxis', 'xaxis2']
63+
assert fig._yaxis_list == ['yaxis', 'yaxis2']
64+
65+
pickle.dump(fig, open(pickle_figure, "wb"))
66+
fig_pickle = pickle.load(open(pickle_figure, "rb"))
67+
68+
assert isinstance(fig_pickle, FigureResampler)
69+
assert fig_pickle._global_n_shown_samples == 50
70+
assert fig_pickle._show_dash_kwargs["port"] == 8051
71+
assert fig_pickle._figure_class == go.Figure
72+
assert fig_pickle._xaxis_list == ['xaxis', 'xaxis2']
73+
assert fig_pickle._yaxis_list == ['yaxis', 'yaxis2']
74+
assert len(fig_pickle.data) == nb_traces
75+
assert len(fig_pickle.hf_data) == nb_traces
76+
for i in range(nb_traces):
77+
trace = fig_pickle.data[i]
78+
assert isinstance(trace, go.Scattergl)
79+
assert len(trace.y) == 50
80+
assert f"trace--{i}" in trace.name
81+
hf_trace = fig_pickle.hf_data[i]
82+
assert len(hf_trace["y"]) == nb_samples
83+
assert np.all(hf_trace["y"] == np.arange(nb_samples))
84+
4885

4986
def test_pickle_figurewidget_resampler(pickle_figure):
5087
nb_traces = 2
@@ -69,6 +106,40 @@ def test_pickle_figurewidget_resampler(pickle_figure):
69106
assert len(hf_trace["y"]) == nb_samples
70107
assert np.all(hf_trace["y"] == np.arange(nb_samples))
71108

109+
# Test for figure with subplots (check non-pickled private properties)
110+
fig = FigureWidgetResampler(
111+
make_subplots(rows=2, cols=1, shared_xaxes=True),
112+
default_n_shown_samples=50,
113+
)
114+
for i in range(nb_traces):
115+
fig.add_trace(
116+
go.Scattergl(name=f"trace--{i}"), hf_y=np.arange(nb_samples),
117+
row=(i % 2) + 1, col=1,
118+
)
119+
assert fig._global_n_shown_samples == 50
120+
assert fig._figure_class == go.FigureWidget
121+
assert fig._xaxis_list == ['xaxis', 'xaxis2']
122+
assert fig._yaxis_list == ['yaxis', 'yaxis2']
123+
124+
pickle.dump(fig, open(pickle_figure, "wb"))
125+
fig_pickle = pickle.load(open(pickle_figure, "rb"))
126+
127+
assert isinstance(fig_pickle, FigureWidgetResampler)
128+
assert fig_pickle._global_n_shown_samples == 50
129+
assert fig_pickle._figure_class == go.FigureWidget
130+
assert fig_pickle._xaxis_list == ['xaxis', 'xaxis2']
131+
assert fig_pickle._yaxis_list == ['yaxis', 'yaxis2']
132+
assert len(fig_pickle.data) == nb_traces
133+
assert len(fig_pickle.hf_data) == nb_traces
134+
for i in range(nb_traces):
135+
trace = fig_pickle.data[i]
136+
assert isinstance(trace, go.Scattergl)
137+
assert len(trace.y) == 50
138+
assert f"trace--{i}" in trace.name
139+
hf_trace = fig_pickle.hf_data[i]
140+
assert len(hf_trace["y"]) == nb_samples
141+
assert np.all(hf_trace["y"] == np.arange(nb_samples))
142+
72143

73144
## Test pickling when registered
74145

0 commit comments

Comments
 (0)