def test_bounds_no_collapse(self): points = np.array([1, 1, 1]) bounds = np.array([[0, 1], [0, 1], [0, 2]]) result_pts, result_bds = \ _collapse_degenerate_points_and_bounds(points, bounds) self.assertArrayEqual(result_pts, points) self.assertArrayEqual(result_bds, bounds)
def test_multiple_odd_dims(self): # Test to ensure multiple collapsed dimensions don't interfere. # make a 5-D array where dimensions 0, 2 and 3 are degenerate. array = np.arange(3**5).reshape([3] * 5) array[1:] = array[0:1] array[:, :, 1:] = array[:, :, 0:1] array[:, :, :, 1:] = array[:, :, :, 0:1] result, _ = _collapse_degenerate_points_and_bounds(array) self.assertEqual(array.shape, (3, 3, 3, 3, 3)) self.assertEqual(result.shape, (1, 3, 1, 1, 3)) self.assertTrue(np.all(result == array[0:1, :, 0:1, 0:1, :]))
def test_multiple_odd_dims(self): # Test to ensure multiple collapsed dimensions don't interfere. # make a 5-D array where dimensions 0, 2 and 3 are degenerate. array = np.arange(3 ** 5).reshape([3] * 5) array[1:] = array[0:1] array[:, :, 1:] = array[:, :, 0:1] array[:, :, :, 1:] = array[:, :, :, 0:1] result, _ = _collapse_degenerate_points_and_bounds(array) self.assertEqual(array.shape, (3, 3, 3, 3, 3)) self.assertEqual(result.shape, (1, 3, 1, 1, 3)) self.assertTrue(np.all(result == array[0:1, :, 0:1, 0:1, :]))
def test_3d(self): array = np.array([[[3, 3, 3], [4, 4, 4]], [[3, 3, 3], [4, 4, 4]]]) result, _ = _collapse_degenerate_points_and_bounds(array) self.assertArrayEqual(result, np.array([[[3], [4]]]))
def test_2d_collapse_dim1(self): array = np.array([[1, 1, 1], [2, 2, 2]]) result, _ = _collapse_degenerate_points_and_bounds(array) self.assertArrayEqual(result, np.array([[1], [2]]))
def test_2d_nochange(self): array = np.array([[1, 2, 3], [4, 5, 6]]) result, _ = _collapse_degenerate_points_and_bounds(array) self.assertArrayEqual(result, array)
def test_1d_collapse(self): array = np.array([1, 1, 1]) result, _ = _collapse_degenerate_points_and_bounds(array) self.assertArrayEqual(result, np.array([1]))
def test_scalar(self): array = np.array(1) points, bounds = _collapse_degenerate_points_and_bounds(array) self.assertArrayEqual(points, array) self.assertIsNone(bounds)