예제 #1
0
 def test_nr(self):
     nr0, nr1 = 5, 9
     ellipse_array = np.random.randint(10, 100, size=(2, 3, 5))
     lines_array0 = ret._get_lines_array_from_ellipse_array(ellipse_array, nr=nr0)
     lines_array1 = ret._get_lines_array_from_ellipse_array(ellipse_array, nr=nr1)
     for iy, ix in np.ndindex(lines_array0.shape):
         assert len(lines_array0[iy, ix]) == nr0
         assert len(lines_array1[iy, ix]) == nr1
예제 #2
0
 def test_ellipse_array_none(self):
     ellipse_array = np.empty(shape=(2, 3), dtype=object)
     for ix, iy in np.ndindex(ellipse_array.shape):
         ellipse_array[ix, iy] = None
     lines_array = ret._get_lines_array_from_ellipse_array(ellipse_array)
     for ix, iy in np.ndindex(lines_array.shape):
         assert lines_array[ix, iy] is None
예제 #3
0
    def test_correct_values(self):
        xc_array = np.random.randint(10, 20, size=(2, 3))
        yc_array = np.random.randint(30, 40, size=(2, 3))
        sx_array = np.random.randint(70, 80, size=(2, 3))
        sy_array = np.random.randint(89, 99, size=(2, 3))
        ro_array = np.zeros((2, 3))
        ellipse_array = np.empty((2, 3), dtype=np.object)
        for iy, ix in np.ndindex(ellipse_array.shape):
            xc, yc = xc_array[iy, ix], yc_array[iy, ix]
            sx, sy = sx_array[iy, ix], sy_array[iy, ix]
            ro = ro_array[iy, ix]
            ellipse_array[iy, ix] = (yc, xc, sy, sx, ro)

        lines_array = ret._get_lines_array_from_ellipse_array(ellipse_array, nr=4)
        for iy, ix in np.ndindex(ellipse_array.shape):
            xc, yc = xc_array[iy, ix], yc_array[iy, ix]
            sx, sy = sx_array[iy, ix], sy_array[iy, ix]
            ro = ro_array[iy, ix]
            lines_list = lines_array[iy, ix]
            assert approx(lines_list[0]) == [yc + sy, xc, yc, xc + sx]
            assert approx(lines_list[1]) == [yc, xc + sx, yc - sy, xc]
            assert approx(lines_list[2]) == [yc - sy, xc, yc, xc - sx]
            assert approx(lines_list[3]) == [yc, xc - sx, yc + sy, xc]