From 1e8c931514b937fa76f7f19807fbd03e25b17e8f Mon Sep 17 00:00:00 2001 From: Paul McCarthy <pauld.mccarthy@gmail.com> Date: Wed, 15 Jun 2016 11:31:47 +0100 Subject: [PATCH] Adjusted image wrapper test to generate slices which are outside of coverage, but overlap on some dimensions. --- test/test_imagewrapper.py | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/test/test_imagewrapper.py b/test/test_imagewrapper.py index e6d471d0f..94aad7959 100644 --- a/test/test_imagewrapper.py +++ b/test/test_imagewrapper.py @@ -66,6 +66,17 @@ def random_slices(coverage, shape, mode): slices = np.zeros((2, len(shape))) + origMode = mode + + # If we're generating an 'out' slice (i.e. + # a slice which is not covered by the coverage), + # then only one dimension needs to be out. The + # other dimensions don't matter. + if mode == 'out': + dimModes = [random.choice(('in', 'out', 'overlap')) for i in range(ndims)] + if not any([m == 'out' for m in dimModes]): + dimModes[random.randint(0, ndims - 1)] = 'out' + for dim, size in enumerate(shape): # Volumes @@ -75,13 +86,19 @@ def random_slices(coverage, shape, mode): slices[:, dim] = lowCover, highCover continue + + if origMode == 'out': + mode = dimModes[dim] # Assuming that coverage is same for each volume lowCover = coverage[0, dim, 0] highCover = coverage[1, dim, 0] if (np.isnan(lowCover) or np.isnan(highCover)) and mode in ('in', 'overlap'): - raise RuntimeError('Can\'t generate in/overlapping slices on an empty coverage') + if origMode == 'out': + mode = 'out' + else: + raise RuntimeError('Can\'t generate in/overlapping slices on an empty coverage') # Generate some slices that will # be contained within the coverage -- GitLab