mirror of
https://github.com/wassname/scikit-image.git
synced 2026-07-06 05:16:40 +08:00
Skip tests if matplotlib is not present
This commit is contained in:
@@ -4,15 +4,21 @@ import skimage
|
||||
import skimage.data as data
|
||||
from skimage.filter.rank import median
|
||||
from skimage.morphology import disk
|
||||
from skimage.viewer import ImageViewer
|
||||
from skimage.viewer.qt import qt_api
|
||||
from numpy.testing import assert_equal, assert_allclose, assert_almost_equal
|
||||
from numpy.testing.decorators import skipif
|
||||
from skimage.viewer.plugins import (
|
||||
LineProfile, Measure, CannyPlugin, LabelPainter, Crop, ColorHistogram,
|
||||
PlotPlugin)
|
||||
from skimage.viewer.plugins.base import Plugin
|
||||
from skimage.viewer.widgets import Slider
|
||||
|
||||
try:
|
||||
from skimage.viewer.qt import qt_api
|
||||
from skimage.viewer import ImageViewer
|
||||
from skimage.viewer.plugins import (
|
||||
LineProfile, Measure, CannyPlugin, LabelPainter, Crop, ColorHistogram,
|
||||
PlotPlugin)
|
||||
from skimage.viewer.plugins.base import Plugin
|
||||
from skimage.viewer.widgets import Slider
|
||||
except ImportError:
|
||||
skip_all = True
|
||||
else:
|
||||
skip_all = False
|
||||
|
||||
|
||||
def setup_line_profile(image, limits='image'):
|
||||
@@ -22,7 +28,7 @@ def setup_line_profile(image, limits='image'):
|
||||
return plugin
|
||||
|
||||
|
||||
@skipif(qt_api is None)
|
||||
@skipif(skip_all or qt_api is None)
|
||||
def test_line_profile():
|
||||
""" Test a line profile using an ndim=2 image"""
|
||||
plugin = setup_line_profile(data.camera())
|
||||
@@ -36,7 +42,7 @@ def test_line_profile():
|
||||
assert_allclose(scan_data.mean(), 0.2812, rtol=1e-3)
|
||||
|
||||
|
||||
@skipif(qt_api is None)
|
||||
@skipif(skip_all or qt_api is None)
|
||||
def test_line_profile_rgb():
|
||||
""" Test a line profile using an ndim=3 image"""
|
||||
plugin = setup_line_profile(data.chelsea(), limits=None)
|
||||
@@ -51,7 +57,7 @@ def test_line_profile_rgb():
|
||||
assert_allclose(scan_data.mean(), 0.4359, rtol=1e-3)
|
||||
|
||||
|
||||
@skipif(qt_api is None)
|
||||
@skipif(skip_all or qt_api is None)
|
||||
def test_line_profile_dynamic():
|
||||
"""Test a line profile updating after an image transform"""
|
||||
image = data.coins()[:-50, :] # shave some off to make the line lower
|
||||
@@ -76,7 +82,7 @@ def test_line_profile_dynamic():
|
||||
assert_almost_equal(np.max(line) - np.min(line), 0.639, 1)
|
||||
|
||||
|
||||
@skipif(qt_api is None)
|
||||
@skipif(skip_all or qt_api is None)
|
||||
def test_measure():
|
||||
image = data.camera()
|
||||
viewer = ImageViewer(image)
|
||||
@@ -88,7 +94,7 @@ def test_measure():
|
||||
assert_equal(str(m._angle.text[:5]), '135.0')
|
||||
|
||||
|
||||
@skipif(qt_api is None)
|
||||
@skipif(skip_all or qt_api is None)
|
||||
def test_canny():
|
||||
image = data.camera()
|
||||
viewer = ImageViewer(image)
|
||||
@@ -101,7 +107,7 @@ def test_canny():
|
||||
assert edges.sum() == 2852
|
||||
|
||||
|
||||
@skipif(qt_api is None)
|
||||
@skipif(skip_all or qt_api is None)
|
||||
def test_label_painter():
|
||||
image = data.camera()
|
||||
moon = data.moon()
|
||||
@@ -119,7 +125,7 @@ def test_label_painter():
|
||||
assert_equal(lp.paint_tool.shape, moon.shape)
|
||||
|
||||
|
||||
@skipif(qt_api is None)
|
||||
@skipif(skip_all or qt_api is None)
|
||||
def test_crop():
|
||||
image = data.camera()
|
||||
viewer = ImageViewer(image)
|
||||
@@ -130,7 +136,7 @@ def test_crop():
|
||||
assert_equal(viewer.image.shape, (101, 101))
|
||||
|
||||
|
||||
@skipif(qt_api is None)
|
||||
@skipif(skip_all or qt_api is None)
|
||||
def test_color_histogram():
|
||||
image = skimage.img_as_float(data.load('color.png'))
|
||||
viewer = ImageViewer(image)
|
||||
@@ -142,7 +148,7 @@ def test_color_histogram():
|
||||
assert_almost_equal(viewer.image.std(), 0.325, 3)
|
||||
|
||||
|
||||
@skipif(qt_api is None)
|
||||
@skipif(skip_all or qt_api is None)
|
||||
def test_plot_plugin():
|
||||
viewer = ImageViewer(data.moon())
|
||||
plugin = PlotPlugin(image_filter=lambda x: x)
|
||||
@@ -154,7 +160,7 @@ def test_plot_plugin():
|
||||
viewer.close()
|
||||
|
||||
|
||||
@skipif(qt_api is None)
|
||||
@skipif(skip_all or qt_api is None)
|
||||
def test_plugin():
|
||||
img = skimage.img_as_float(data.moon())
|
||||
viewer = ImageViewer(img)
|
||||
|
||||
@@ -2,14 +2,20 @@ from collections import namedtuple
|
||||
|
||||
import numpy as np
|
||||
from skimage import data
|
||||
from skimage.viewer import ImageViewer
|
||||
from skimage.viewer.canvastools import (
|
||||
LineTool, ThickLineTool, RectangleTool, PaintTool)
|
||||
from skimage.viewer.canvastools.base import CanvasToolBase
|
||||
from skimage.viewer.qt import qt_api
|
||||
from numpy.testing import assert_equal
|
||||
from numpy.testing.decorators import skipif
|
||||
|
||||
try:
|
||||
from skimage.viewer.qt import qt_api
|
||||
from skimage.viewer import ImageViewer
|
||||
from skimage.viewer.canvastools import (
|
||||
LineTool, ThickLineTool, RectangleTool, PaintTool)
|
||||
from skimage.viewer.canvastools.base import CanvasToolBase
|
||||
except ImportError:
|
||||
skip_all = True
|
||||
else:
|
||||
skip_all = False
|
||||
|
||||
|
||||
def get_end_points(image):
|
||||
h, w = image.shape[0:2]
|
||||
@@ -70,7 +76,7 @@ def create_mouse_event(ax, button=1, xdata=0, ydata=0, key=None):
|
||||
return event
|
||||
|
||||
|
||||
@skipif(qt_api is None)
|
||||
@skipif(skip_all or qt_api is None)
|
||||
def test_line_tool():
|
||||
img = data.camera()
|
||||
viewer = ImageViewer(img)
|
||||
@@ -96,7 +102,7 @@ def test_line_tool():
|
||||
assert_equal(tool.geometry, np.array([[100, 100], [10, 10]]))
|
||||
|
||||
|
||||
@skipif(qt_api is None)
|
||||
@skipif(skip_all or qt_api is None)
|
||||
def test_thick_line_tool():
|
||||
img = data.camera()
|
||||
viewer = ImageViewer(img)
|
||||
@@ -121,7 +127,7 @@ def test_thick_line_tool():
|
||||
assert_equal(tool.linewidth, 1)
|
||||
|
||||
|
||||
@skipif(qt_api is None)
|
||||
@skipif(skip_all or qt_api is None)
|
||||
def test_rect_tool():
|
||||
img = data.camera()
|
||||
viewer = ImageViewer(img)
|
||||
@@ -153,7 +159,7 @@ def test_rect_tool():
|
||||
assert_equal(tool.geometry, [10, 100, 10, 100])
|
||||
|
||||
|
||||
@skipif(qt_api is None)
|
||||
@skipif(skip_all or qt_api is None)
|
||||
def test_paint_tool():
|
||||
img = data.moon()
|
||||
viewer = ImageViewer(img)
|
||||
@@ -189,7 +195,7 @@ def test_paint_tool():
|
||||
assert_equal(tool.overlay.sum(), 0)
|
||||
|
||||
|
||||
@skipif(qt_api is None)
|
||||
@skipif(skip_all or qt_api is None)
|
||||
def test_base_tool():
|
||||
img = data.moon()
|
||||
viewer = ImageViewer(img)
|
||||
|
||||
@@ -1,8 +1,12 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from skimage.viewer.qt import qt_api, QtCore, QtGui
|
||||
from numpy.testing.decorators import skipif
|
||||
from skimage.viewer import utils
|
||||
from skimage.viewer.utils import dialogs
|
||||
|
||||
try:
|
||||
from skimage.viewer.qt import qt_api, QtCore, QtGui
|
||||
from skimage.viewer import utils
|
||||
from skimage.viewer.utils import dialogs
|
||||
except ImportError:
|
||||
qt_api = None
|
||||
|
||||
|
||||
@skipif(qt_api is None)
|
||||
@@ -13,6 +17,7 @@ def test_event_loop():
|
||||
utils.start_qtapp()
|
||||
|
||||
|
||||
@skipif(qt_api is None)
|
||||
def test_format_filename():
|
||||
fname = dialogs._format_filename(('apple', 2))
|
||||
assert fname == 'apple'
|
||||
@@ -20,6 +25,7 @@ def test_format_filename():
|
||||
assert fname is None
|
||||
|
||||
|
||||
@skipif(qt_api is None)
|
||||
def test_open_file_dialog():
|
||||
utils.init_qtapp()
|
||||
timer = QtCore.QTimer()
|
||||
@@ -28,6 +34,7 @@ def test_open_file_dialog():
|
||||
assert filename is None
|
||||
|
||||
|
||||
@skipif(qt_api is None)
|
||||
def test_save_file_dialog():
|
||||
utils.init_qtapp()
|
||||
timer = QtCore.QTimer()
|
||||
|
||||
@@ -1,16 +1,22 @@
|
||||
|
||||
from skimage import data
|
||||
from skimage.viewer import ImageViewer, CollectionViewer
|
||||
from skimage.transform import pyramid_gaussian
|
||||
from skimage.viewer.plugins import OverlayPlugin
|
||||
from skimage.viewer.plugins.overlayplugin import recent_mpl_version
|
||||
from skimage.filter import sobel
|
||||
from skimage.viewer.qt import qt_api, QtGui, QtCore
|
||||
from numpy.testing import assert_equal
|
||||
from numpy.testing.decorators import skipif
|
||||
|
||||
try:
|
||||
from skimage.viewer.qt import qt_api, QtGui, QtCore
|
||||
from skimage.viewer.plugins import OverlayPlugin
|
||||
from skimage.viewer.plugins.overlayplugin import recent_mpl_version
|
||||
from skimage.viewer import ImageViewer, CollectionViewer
|
||||
except ImportError:
|
||||
skip_all = True
|
||||
else:
|
||||
skip_all = False
|
||||
|
||||
@skipif(qt_api is None)
|
||||
|
||||
@skipif(skip_all or qt_api is None)
|
||||
def test_viewer():
|
||||
lena = data.lena()
|
||||
coins = data.coins()
|
||||
@@ -37,7 +43,7 @@ def make_key_event(key):
|
||||
QtCore.Qt.NoModifier)
|
||||
|
||||
|
||||
@skipif(qt_api is None)
|
||||
@skipif(skip_all or qt_api is None)
|
||||
def test_collection_viewer():
|
||||
|
||||
img = data.lena()
|
||||
@@ -53,7 +59,7 @@ def test_collection_viewer():
|
||||
view._format_coord(10, 10)
|
||||
|
||||
|
||||
@skipif(qt_api is None or not recent_mpl_version())
|
||||
@skipif(skip_all or qt_api is None or not recent_mpl_version())
|
||||
def test_viewer_with_overlay():
|
||||
img = data.coins()
|
||||
ov = OverlayPlugin(image_filter=sobel)
|
||||
|
||||
@@ -1,15 +1,20 @@
|
||||
|
||||
import os
|
||||
from skimage import data, img_as_float, io
|
||||
from skimage.viewer import ImageViewer
|
||||
from skimage.viewer.widgets import (
|
||||
Slider, OKCancelButtons, SaveButtons, ComboBox, Text)
|
||||
from skimage.viewer.plugins.base import Plugin
|
||||
|
||||
from skimage.viewer.qt import qt_api, QtGui, QtCore
|
||||
from numpy.testing import assert_almost_equal, assert_equal
|
||||
from numpy.testing.decorators import skipif
|
||||
|
||||
try:
|
||||
from skimage.viewer.qt import qt_api, QtGui, QtCore
|
||||
from skimage.viewer import ImageViewer
|
||||
from skimage.viewer.widgets import (
|
||||
Slider, OKCancelButtons, SaveButtons, ComboBox, Text)
|
||||
from skimage.viewer.plugins.base import Plugin
|
||||
except ImportError:
|
||||
skip_all = True
|
||||
else:
|
||||
skip_all = False
|
||||
|
||||
|
||||
def get_image_viewer():
|
||||
image = data.coins()
|
||||
@@ -18,7 +23,7 @@ def get_image_viewer():
|
||||
return viewer
|
||||
|
||||
|
||||
@skipif(qt_api is None)
|
||||
@skipif(skip_all or qt_api is None)
|
||||
def test_combo_box():
|
||||
viewer = get_image_viewer()
|
||||
cb = ComboBox('hello', ('a', 'b', 'c'))
|
||||
@@ -31,7 +36,7 @@ def test_combo_box():
|
||||
assert_equal(cb.index, 2)
|
||||
|
||||
|
||||
@skipif(qt_api is None)
|
||||
@skipif(skip_all or qt_api is None)
|
||||
def test_text_widget():
|
||||
viewer = get_image_viewer()
|
||||
txt = Text('hello', 'hello, world!')
|
||||
@@ -42,7 +47,7 @@ def test_text_widget():
|
||||
assert_equal(str(txt.text), 'goodbye, world!')
|
||||
|
||||
|
||||
@skipif(qt_api is None)
|
||||
@skipif(skip_all or qt_api is None)
|
||||
def test_slider_int():
|
||||
viewer = get_image_viewer()
|
||||
sld = Slider('radius', 2, 10, value_type='int')
|
||||
@@ -56,7 +61,7 @@ def test_slider_int():
|
||||
assert_equal(sld.val, 5)
|
||||
|
||||
|
||||
@skipif(qt_api is None)
|
||||
@skipif(skip_all or qt_api is None)
|
||||
def test_slider_float():
|
||||
viewer = get_image_viewer()
|
||||
sld = Slider('alpha', 2.1, 3.1, value=2.1, value_type='float',
|
||||
@@ -71,7 +76,7 @@ def test_slider_float():
|
||||
assert_almost_equal(sld.val, 2.5, 2)
|
||||
|
||||
|
||||
@skipif(qt_api is None)
|
||||
@skipif(skip_all or qt_api is None)
|
||||
def test_save_buttons():
|
||||
viewer = get_image_viewer()
|
||||
sv = SaveButtons()
|
||||
@@ -94,7 +99,7 @@ def test_save_buttons():
|
||||
assert_almost_equal(img, viewer.image)
|
||||
|
||||
|
||||
@skipif(qt_api is None)
|
||||
@skipif(skip_all or qt_api is None)
|
||||
def test_ok_buttons():
|
||||
viewer = get_image_viewer()
|
||||
ok = OKCancelButtons()
|
||||
|
||||
Reference in New Issue
Block a user