def test_tensorgrid_corners(): vec1 = np.array([2, 3, 4, 5]) vec2 = np.array([-4, -2, 0, 2, 4]) vec3 = np.array([-1, 0]) scalar = 0.5 minmax1 = (vec1[0], vec1[-1]) minmax2 = (vec2[0], vec2[-1]) minmax3 = (vec3[0], vec3[-1]) # C ordering corners = [] for x1 in minmax1: for x2 in minmax2: for x3 in minmax3: corners.append(np.array((x1, x2, x3), dtype=float)) grid = TensorGrid(vec1, vec2, vec3) assert all_equal(corners, grid.corners()) assert all_equal(corners, grid.corners(order='C')) # minpt and maxpt should appear at the beginning and the end, resp. assert all_equal(grid.min_pt, grid.corners()[0]) assert all_equal(grid.max_pt, grid.corners()[-1]) # F ordering corners = [] for x3 in minmax3: for x2 in minmax2: for x1 in minmax1: corners.append(np.array((x1, x2, x3), dtype=float)) assert all_equal(corners, grid.corners(order='F')) # Degenerate axis 1 corners = [] for x2 in minmax2: for x3 in minmax3: corners.append(np.array((scalar, x2, x3), dtype=float)) grid = TensorGrid(scalar, vec2, vec3) assert all_equal(corners, grid.corners()) # Degenerate axis 2 corners = [] for x1 in minmax1: for x3 in minmax3: corners.append(np.array((x1, scalar, x3), dtype=float)) grid = TensorGrid(vec1, scalar, vec3) assert all_equal(corners, grid.corners()) # Degenerate axis 3 corners = [] for x1 in minmax1: for x2 in minmax2: corners.append(np.array((x1, x2, scalar), dtype=float)) grid = TensorGrid(vec1, vec2, scalar) assert all_equal(corners, grid.corners()) # All degenerate corners = [(scalar, scalar)] grid = TensorGrid(scalar, scalar) assert all_equal(corners, grid.corners())
def test_corners(as_midp): vec1 = np.arange(2, 6) vec2 = np.arange(-4, 5, 2) vec3 = np.arange(-1, 1) scalar = 0.5 minmax1 = (vec1[0], vec1[-1]) minmax2 = (vec2[0], vec2[-1]) minmax3 = (vec3[0], vec3[-1]) # C ordering corners = [] for x1 in minmax1: for x2 in minmax2: for x3 in minmax3: corners.append(np.array((x1, x2, x3), dtype=float)) grid = TensorGrid(vec1, vec2, vec3, as_midp=as_midp) assert all_equal(corners, grid.corners()) assert all_equal(corners, grid.corners(order='C')) # minpt and maxpt should appear at the beginning and the end, resp. assert all_equal(grid.min_pt, grid.corners()[0]) assert all_equal(grid.max_pt, grid.corners()[-1]) # F ordering corners = [] for x3 in minmax3: for x2 in minmax2: for x1 in minmax1: corners.append(np.array((x1, x2, x3), dtype=float)) assert all_equal(corners, grid.corners(order='F')) # Degenerate axis 1 corners = [] for x2 in minmax2: for x3 in minmax3: corners.append(np.array((scalar, x2, x3), dtype=float)) grid = TensorGrid(scalar, vec2, vec3) assert all_equal(corners, grid.corners()) # Degenerate axis 2 corners = [] for x1 in minmax1: for x3 in minmax3: corners.append(np.array((x1, scalar, x3), dtype=float)) grid = TensorGrid(vec1, scalar, vec3, as_midp=as_midp) assert all_equal(corners, grid.corners()) # Degenerate axis 3 corners = [] for x1 in minmax1: for x2 in minmax2: corners.append(np.array((x1, x2, scalar), dtype=float)) grid = TensorGrid(vec1, vec2, scalar, as_midp=as_midp) assert all_equal(corners, grid.corners()) # All degenerate corners = [(scalar, scalar)] grid = TensorGrid(scalar, scalar) assert all_equal(corners, grid.corners())