Merge pull request #934 from sciunto/coverage2

Tests improvements + doc
This commit is contained in:
Juan Nunez-Iglesias
2014-03-16 01:58:28 +11:00
3 changed files with 30 additions and 23 deletions
+22 -6
View File
@@ -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__":
+3 -2
View File
@@ -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
-------
+5 -15
View File
@@ -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)