mirror of
https://github.com/wassname/scikit-image.git
synced 2026-07-21 12:50:27 +08:00
Merge pull request #934 from sciunto/coverage2
Tests improvements + doc
This commit is contained in:
@@ -1,9 +1,25 @@
|
||||
import numpy as np
|
||||
from numpy.testing import assert_array_equal, assert_allclose
|
||||
from nose.tools import raises
|
||||
|
||||
from skimage.draw import ellipsoid, ellipsoid_stats
|
||||
|
||||
|
||||
@raises(ValueError)
|
||||
def test_ellipsoid_sign_parameters1():
|
||||
ellipsoid(-1, 2, 2)
|
||||
|
||||
|
||||
@raises(ValueError)
|
||||
def test_ellipsoid_sign_parameters2():
|
||||
ellipsoid(0, 2, 2)
|
||||
|
||||
|
||||
@raises(ValueError)
|
||||
def test_ellipsoid_sign_parameters3():
|
||||
ellipsoid(-3, -2, 2)
|
||||
|
||||
|
||||
def test_ellipsoid_bool():
|
||||
test = ellipsoid(2, 2, 2)[1:-1, 1:-1, 1:-1]
|
||||
test_anisotropic = ellipsoid(2, 2, 4, spacing=(1., 1., 2.))
|
||||
@@ -86,18 +102,18 @@ def test_ellipsoid_levelset():
|
||||
def test_ellipsoid_stats():
|
||||
# Test comparison values generated by Wolfram Alpha
|
||||
vol, surf = ellipsoid_stats(6, 10, 16)
|
||||
assert(round(1280 * np.pi, 4) == round(vol, 4))
|
||||
assert(1383.28 == round(surf, 2))
|
||||
assert_allclose(1280 * np.pi, vol, atol=1e-4)
|
||||
assert_allclose(1383.28, surf, atol=1e-2)
|
||||
|
||||
# Test when a <= b <= c does not hold
|
||||
vol, surf = ellipsoid_stats(16, 6, 10)
|
||||
assert(round(1280 * np.pi, 4) == round(vol, 4))
|
||||
assert(1383.28 == round(surf, 2))
|
||||
assert_allclose(1280 * np.pi, vol, atol=1e-4)
|
||||
assert_allclose(1383.28, surf, atol=1e-2)
|
||||
|
||||
# Larger test to ensure reliability over broad range
|
||||
vol, surf = ellipsoid_stats(17, 27, 169)
|
||||
assert(round(103428 * np.pi, 4) == round(vol, 4))
|
||||
assert(37426.3 == round(surf, 1))
|
||||
assert_allclose(103428 * np.pi, vol, atol=1e-4)
|
||||
assert_allclose(37426.3, surf, atol=1e-1)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
|
||||
@@ -111,9 +111,10 @@ def view_as_windows(arr_in, window_shape, step=1):
|
||||
window_shape: tuple
|
||||
Defines the shape of the elementary n-dimensional orthotope
|
||||
(better know as hyperrectangle [1]_) of the rolling window view.
|
||||
step : int
|
||||
step : int, optional
|
||||
Number of elements to skip when moving the window forward (by
|
||||
default, move forward by one).
|
||||
default, move forward by one). The value must be equal or larger
|
||||
than one.
|
||||
|
||||
Returns
|
||||
-------
|
||||
|
||||
@@ -6,41 +6,35 @@ from skimage.util.shape import view_as_blocks, view_as_windows
|
||||
|
||||
@raises(TypeError)
|
||||
def test_view_as_blocks_block_not_a_tuple():
|
||||
|
||||
A = np.arange(10)
|
||||
view_as_blocks(A, [5])
|
||||
|
||||
|
||||
@raises(ValueError)
|
||||
def test_view_as_blocks_negative_shape():
|
||||
|
||||
A = np.arange(10)
|
||||
view_as_blocks(A, (-2,))
|
||||
|
||||
|
||||
@raises(ValueError)
|
||||
def test_view_as_blocks_block_too_large():
|
||||
|
||||
A = np.arange(10)
|
||||
view_as_blocks(A, (11,))
|
||||
|
||||
|
||||
@raises(ValueError)
|
||||
def test_view_as_blocks_wrong_block_dimension():
|
||||
|
||||
A = np.arange(10)
|
||||
view_as_blocks(A, (2, 2))
|
||||
|
||||
|
||||
@raises(ValueError)
|
||||
def test_view_as_blocks_1D_array_wrong_block_shape():
|
||||
|
||||
A = np.arange(10)
|
||||
view_as_blocks(A, (3,))
|
||||
|
||||
|
||||
def test_view_as_blocks_1D_array():
|
||||
|
||||
A = np.arange(10)
|
||||
B = view_as_blocks(A, (5,))
|
||||
assert_equal(B, np.array([[0, 1, 2, 3, 4],
|
||||
@@ -48,7 +42,6 @@ def test_view_as_blocks_1D_array():
|
||||
|
||||
|
||||
def test_view_as_blocks_2D_array():
|
||||
|
||||
A = np.arange(4 * 4).reshape(4, 4)
|
||||
B = view_as_blocks(A, (2, 2))
|
||||
assert_equal(B[0, 1], np.array([[2, 3],
|
||||
@@ -57,7 +50,6 @@ def test_view_as_blocks_2D_array():
|
||||
|
||||
|
||||
def test_view_as_blocks_3D_array():
|
||||
|
||||
A = np.arange(4 * 4 * 6).reshape(4, 4, 6)
|
||||
B = view_as_blocks(A, (1, 2, 2))
|
||||
assert_equal(B.shape, (4, 2, 3, 1, 2, 2))
|
||||
@@ -69,41 +61,40 @@ def test_view_as_blocks_3D_array():
|
||||
|
||||
@raises(TypeError)
|
||||
def test_view_as_windows_input_not_array():
|
||||
|
||||
A = [1, 2, 3, 4, 5]
|
||||
view_as_windows(A, (2,))
|
||||
|
||||
|
||||
@raises(TypeError)
|
||||
def test_view_as_windows_window_not_tuple():
|
||||
|
||||
A = np.arange(10)
|
||||
view_as_windows(A, [2])
|
||||
|
||||
|
||||
@raises(ValueError)
|
||||
def test_view_as_windows_wrong_window_dimension():
|
||||
|
||||
A = np.arange(10)
|
||||
view_as_windows(A, (2, 2))
|
||||
|
||||
|
||||
@raises(ValueError)
|
||||
def test_view_as_windows_negative_window_length():
|
||||
|
||||
A = np.arange(10)
|
||||
view_as_windows(A, (-1,))
|
||||
|
||||
|
||||
@raises(ValueError)
|
||||
def test_view_as_windows_window_too_large():
|
||||
|
||||
A = np.arange(10)
|
||||
view_as_windows(A, (11,))
|
||||
|
||||
|
||||
def test_view_as_windows_1D():
|
||||
@raises(ValueError)
|
||||
def test_view_as_windows_step_below_one():
|
||||
A = np.arange(10)
|
||||
view_as_windows(A, (11,), step=0.9)
|
||||
|
||||
def test_view_as_windows_1D():
|
||||
A = np.arange(10)
|
||||
window_shape = (3,)
|
||||
B = view_as_windows(A, window_shape)
|
||||
@@ -118,7 +109,6 @@ def test_view_as_windows_1D():
|
||||
|
||||
|
||||
def test_view_as_windows_2D():
|
||||
|
||||
A = np.arange(5 * 4).reshape(5, 4)
|
||||
window_shape = (4, 3)
|
||||
B = view_as_windows(A, window_shape)
|
||||
|
||||
Reference in New Issue
Block a user