forked from matplotlib/napari-matplotlib
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtest_histogram.py
56 lines (44 loc) · 1.8 KB
/
test_histogram.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
from copy import deepcopy
import pytest
from numpy import array
from napari_matplotlib import HistogramWidget
from napari_matplotlib.tests.helpers import (
assert_figures_equal,
assert_figures_not_equal,
)
@pytest.mark.mpl_image_compare
def test_histogram_2D(make_napari_viewer, astronaut_data):
viewer = make_napari_viewer()
viewer.add_image(astronaut_data[0], **astronaut_data[1])
fig = HistogramWidget(viewer).figure
# Need to return a copy, as original figure is too eagerley garbage
# collected by the widget
return deepcopy(fig)
@pytest.mark.mpl_image_compare
def test_histogram_3D(make_napari_viewer, brain_data):
viewer = make_napari_viewer()
viewer.add_image(brain_data[0], **brain_data[1])
axis = viewer.dims.last_used
slice_no = array(brain_data[0]).shape[0] - 1
viewer.dims.set_current_step(axis, slice_no)
fig = HistogramWidget(viewer).figure
# Need to return a copy, as original figure is too eagerley garbage
# collected by the widget
return deepcopy(fig)
def test_change_layer(make_napari_viewer, brain_data, astronaut_data):
viewer = make_napari_viewer()
widget = HistogramWidget(viewer)
viewer.add_image(brain_data[0], **brain_data[1])
viewer.add_image(astronaut_data[0], **astronaut_data[1])
# Select first layer
viewer.layers.selection.clear()
viewer.layers.selection.add(viewer.layers[0])
fig1 = deepcopy(widget.figure)
# Re-selecting first layer should produce identical plot
viewer.layers.selection.clear()
viewer.layers.selection.add(viewer.layers[0])
assert_figures_equal(widget.figure, fig1)
# Plotting the second layer should produce a different plot
viewer.layers.selection.clear()
viewer.layers.selection.add(viewer.layers[1])
assert_figures_not_equal(widget.figure, fig1)