3
3
import pytest
4
4
5
5
from napari_matplotlib import HistogramWidget
6
+ from napari_matplotlib .tests .helpers import (
7
+ assert_figures_equal ,
8
+ assert_figures_not_equal ,
9
+ )
6
10
7
11
8
12
@pytest .mark .mpl_image_compare
9
13
def test_histogram_2D (make_napari_viewer , astronaut_data ):
10
- # Smoke test adding a histogram widget
11
14
viewer = make_napari_viewer ()
12
15
viewer .add_image (astronaut_data [0 ], ** astronaut_data [1 ])
13
16
fig = HistogramWidget (viewer ).figure
@@ -18,10 +21,32 @@ def test_histogram_2D(make_napari_viewer, astronaut_data):
18
21
19
22
@pytest .mark .mpl_image_compare
20
23
def test_histogram_3D (make_napari_viewer , brain_data ):
21
- # Smoke test adding a histogram widget
22
24
viewer = make_napari_viewer ()
23
25
viewer .add_image (brain_data [0 ], ** brain_data [1 ])
24
26
fig = HistogramWidget (viewer ).figure
25
27
# Need to return a copy, as original figure is too eagerley garbage
26
28
# collected by the widget
27
29
return deepcopy (fig )
30
+
31
+
32
+ def test_change_layer (make_napari_viewer , brain_data , astronaut_data ):
33
+ viewer = make_napari_viewer ()
34
+ widget = HistogramWidget (viewer )
35
+
36
+ viewer .add_image (brain_data [0 ], ** brain_data [1 ])
37
+ viewer .add_image (astronaut_data [0 ], ** astronaut_data [1 ])
38
+
39
+ # Select first layer
40
+ viewer .layers .selection .clear ()
41
+ viewer .layers .selection .add (viewer .layers [0 ])
42
+ fig1 = deepcopy (widget .figure )
43
+
44
+ # Re-selecting first layer should produce identical plot
45
+ viewer .layers .selection .clear ()
46
+ viewer .layers .selection .add (viewer .layers [0 ])
47
+ assert_figures_equal (widget .figure , fig1 )
48
+
49
+ # Plotting the second layer should produce a different plot
50
+ viewer .layers .selection .clear ()
51
+ viewer .layers .selection .add (viewer .layers [1 ])
52
+ assert_figures_not_equal (widget .figure , fig1 )
0 commit comments