33import pytest
44
55from napari_matplotlib import HistogramWidget
6+ from napari_matplotlib .tests .helpers import (
7+ assert_figures_equal ,
8+ assert_figures_not_equal ,
9+ )
610
711
812@pytest .mark .mpl_image_compare
@@ -23,3 +27,26 @@ def test_histogram_3D(make_napari_viewer, brain_data):
2327 # Need to return a copy, as original figure is too eagerley garbage
2428 # collected by the widget
2529 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