summaryrefslogtreecommitdiff
path: root/src/silx/math/test/test_marchingcubes.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/silx/math/test/test_marchingcubes.py')
-rw-r--r--src/silx/math/test/test_marchingcubes.py63
1 files changed, 31 insertions, 32 deletions
diff --git a/src/silx/math/test/test_marchingcubes.py b/src/silx/math/test/test_marchingcubes.py
index 7c60414..7ac171e 100644
--- a/src/silx/math/test/test_marchingcubes.py
+++ b/src/silx/math/test/test_marchingcubes.py
@@ -26,8 +26,6 @@ __authors__ = ["T. Vincent"]
__license__ = "MIT"
__date__ = "17/01/2018"
-import unittest
-
import numpy
from silx.utils.testutils import ParametricTestCase
@@ -38,8 +36,7 @@ from silx.math import marchingcubes
class TestMarchingCubes(ParametricTestCase):
"""Tests of marching cubes"""
- def assertAllClose(self, array1, array2, msg=None,
- rtol=1e-05, atol=1e-08):
+ def assertAllClose(self, array1, array2, msg=None, rtol=1e-05, atol=1e-08):
"""Assert that the 2 numpy.ndarrays are almost equal.
:param str msg: Message to provide when assert fails
@@ -55,9 +52,9 @@ class TestMarchingCubes(ParametricTestCase):
# No isosurface
cube_zero = numpy.zeros((2, 2, 2), dtype=numpy.float32)
- result = marchingcubes.MarchingCubes(cube_zero, 1.)
+ result = marchingcubes.MarchingCubes(cube_zero, 1.0)
self.assertEqual(result.shape, cube_zero.shape)
- self.assertEqual(result.isolevel, 1.)
+ self.assertEqual(result.isolevel, 1.0)
self.assertEqual(result.invert_normals, True)
vertices, normals, indices = result
@@ -84,43 +81,45 @@ class TestMarchingCubes(ParametricTestCase):
# isosurface perpendicular to dim 0 (Z)
cube = numpy.array(
- (((0., 0.), (0., 0.)),
- ((1., 1.), (1., 1.))), dtype=numpy.float32)
+ (((0.0, 0.0), (0.0, 0.0)), ((1.0, 1.0), (1.0, 1.0))), dtype=numpy.float32
+ )
level = 0.5
vertices, normals, indices = marchingcubes.MarchingCubes(
- cube, level, invert_normals=False)
+ cube, level, invert_normals=False
+ )
self.assertAllClose(vertices[:, 0], level)
- self.assertAllClose(normals, (1., 0., 0.))
+ self.assertAllClose(normals, (1.0, 0.0, 0.0))
self.assertEqual(len(indices), 2)
# isosurface perpendicular to dim 1 (Y)
cube = numpy.array(
- (((0., 0.), (1., 1.)),
- ((0., 0.), (1., 1.))), dtype=numpy.float32)
+ (((0.0, 0.0), (1.0, 1.0)), ((0.0, 0.0), (1.0, 1.0))), dtype=numpy.float32
+ )
level = 0.2
vertices, normals, indices = marchingcubes.MarchingCubes(cube, level)
self.assertAllClose(vertices[:, 1], level)
- self.assertAllClose(normals, (0., -1., 0.))
+ self.assertAllClose(normals, (0.0, -1.0, 0.0))
self.assertEqual(len(indices), 2)
# isosurface perpendicular to dim 2 (X)
cube = numpy.array(
- (((0., 1.), (0., 1.)),
- ((0., 1.), (0., 1.))), dtype=numpy.float32)
+ (((0.0, 1.0), (0.0, 1.0)), ((0.0, 1.0), (0.0, 1.0))), dtype=numpy.float32
+ )
level = 0.9
vertices, normals, indices = marchingcubes.MarchingCubes(
- cube, level, invert_normals=False)
+ cube, level, invert_normals=False
+ )
self.assertAllClose(vertices[:, 2], level)
- self.assertAllClose(normals, (0., 0., 1.))
+ self.assertAllClose(normals, (0.0, 0.0, 1.0))
self.assertEqual(len(indices), 2)
# isosurface normal in dim1, dim 0 (Y, Z) plane
cube = numpy.array(
- (((0., 0.), (0., 0.)),
- ((0., 0.), (1., 1.))), dtype=numpy.float32)
+ (((0.0, 0.0), (0.0, 0.0)), ((0.0, 0.0), (1.0, 1.0))), dtype=numpy.float32
+ )
level = 0.5
vertices, normals, indices = marchingcubes.MarchingCubes(cube, level)
- self.assertAllClose(normals[:, 2], 0.)
+ self.assertAllClose(normals[:, 2], 0.0)
self.assertEqual(len(indices), 2)
def test_sampling(self):
@@ -146,26 +145,26 @@ class TestMarchingCubes(ParametricTestCase):
with self.subTest(sampling=sampling):
sampling = numpy.array(sampling)
- data = 1e6 * numpy.ones(
- sampling * size, dtype=numpy.float32)
+ data = 1e6 * numpy.ones(sampling * size, dtype=numpy.float32)
# Copy ref chessboard in data according to sampling
- data[::sampling[0], ::sampling[1], ::sampling[2]] = chessboard
+ data[:: sampling[0], :: sampling[1], :: sampling[2]] = chessboard
- result = marchingcubes.MarchingCubes(data, isolevel,
- sampling=sampling)
+ result = marchingcubes.MarchingCubes(data, isolevel, sampling=sampling)
# Compare vertices normalized with shape
self.assertAllClose(
ref_result.get_vertices() / ref_result.shape,
result.get_vertices() / result.shape,
- atol=0., rtol=0.)
+ atol=0.0,
+ rtol=0.0,
+ )
# Compare normals
# This comparison only works for normals aligned with axes
# otherwise non uniform sampling would make different normals
- self.assertAllClose(ref_result.get_normals(),
- result.get_normals(),
- atol=0., rtol=0.)
+ self.assertAllClose(
+ ref_result.get_normals(), result.get_normals(), atol=0.0, rtol=0.0
+ )
- self.assertAllClose(ref_result.get_indices(),
- result.get_indices(),
- atol=0., rtol=0.)
+ self.assertAllClose(
+ ref_result.get_indices(), result.get_indices(), atol=0.0, rtol=0.0
+ )