Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitea2f7bc

Browse files
authored
Merge pull request#151 from dstansby/one-layer-changes
Check that single layer widget plots change w/ layer change
2 parents7f675f2 +b2e91fa commitea2f7bc

File tree

2 files changed

+59
-27
lines changed

2 files changed

+59
-27
lines changed

‎src/napari_matplotlib/tests/test_histogram.py

Lines changed: 0 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,6 @@
33
importpytest
44

55
fromnapari_matplotlibimportHistogramWidget
6-
fromnapari_matplotlib.tests.helpersimport (
7-
assert_figures_equal,
8-
assert_figures_not_equal,
9-
)
106

117

128
@pytest.mark.mpl_image_compare
@@ -30,26 +26,3 @@ def test_histogram_3D(make_napari_viewer, brain_data):
3026
# Need to return a copy, as original figure is too eagerley garbage
3127
# collected by the widget
3228
returndeepcopy(fig)
33-
34-
35-
deftest_change_layer(make_napari_viewer,brain_data,astronaut_data):
36-
viewer=make_napari_viewer()
37-
widget=HistogramWidget(viewer)
38-
39-
viewer.add_image(brain_data[0],**brain_data[1])
40-
viewer.add_image(astronaut_data[0],**astronaut_data[1])
41-
42-
# Select first layer
43-
viewer.layers.selection.clear()
44-
viewer.layers.selection.add(viewer.layers[0])
45-
fig1=deepcopy(widget.figure)
46-
47-
# Re-selecting first layer should produce identical plot
48-
viewer.layers.selection.clear()
49-
viewer.layers.selection.add(viewer.layers[0])
50-
assert_figures_equal(widget.figure,fig1)
51-
52-
# Plotting the second layer should produce a different plot
53-
viewer.layers.selection.clear()
54-
viewer.layers.selection.add(viewer.layers[1])
55-
assert_figures_not_equal(widget.figure,fig1)
Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
fromcopyimportdeepcopy
2+
fromtypingimportAny,Dict,Tuple,Type
3+
4+
importnumpyasnp
5+
importnumpy.typingasnpt
6+
importpytest
7+
fromnapari.viewerimportViewer
8+
9+
fromnapari_matplotlibimportHistogramWidget,SliceWidget
10+
fromnapari_matplotlib.baseimportNapariMPLWidget
11+
fromnapari_matplotlib.tests.helpersimport (
12+
assert_figures_equal,
13+
assert_figures_not_equal,
14+
)
15+
16+
17+
@pytest.mark.parametrize("widget_cls", [HistogramWidget,SliceWidget])
18+
deftest_change_one_layer(
19+
make_napari_viewer,brain_data,astronaut_data,widget_cls
20+
):
21+
"""
22+
Test all widgets that take one layer as input to make sure the plot changes
23+
when the napari layer selection changes.
24+
"""
25+
viewer=make_napari_viewer()
26+
assert_one_layer_plot_changes(
27+
viewer,widget_cls,brain_data,astronaut_data
28+
)
29+
30+
31+
defassert_one_layer_plot_changes(
32+
viewer:Viewer,
33+
widget_cls:Type[NapariMPLWidget],
34+
data1:Tuple[npt.NDArray[np.generic],Dict[str,Any]],
35+
data2:Tuple[npt.NDArray[np.generic],Dict[str,Any]],
36+
)->None:
37+
"""
38+
When the selected layer is changed, make sure the plot generated
39+
by `widget_cls` also changes.
40+
"""
41+
widget=widget_cls(viewer)
42+
43+
viewer.add_image(data1[0],**data1[1])
44+
viewer.add_image(data2[0],**data2[1])
45+
46+
# Select first layer
47+
viewer.layers.selection.clear()
48+
viewer.layers.selection.add(viewer.layers[0])
49+
fig1=deepcopy(widget.figure)
50+
51+
# Re-selecting first layer should produce identical plot
52+
viewer.layers.selection.clear()
53+
viewer.layers.selection.add(viewer.layers[0])
54+
assert_figures_equal(widget.figure,fig1)
55+
56+
# Plotting the second layer should produce a different plot
57+
viewer.layers.selection.clear()
58+
viewer.layers.selection.add(viewer.layers[1])
59+
assert_figures_not_equal(widget.figure,fig1)

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp