コード例 #1
0
 def test_namedtuple(self):
     v = Point(1, 2)
     tp_point = typeof(v)
     self.assertEqual(tp_point, types.NamedUniTuple(types.intp, 2, Point))
     v = Point(1, 2.0)
     self.assertEqual(typeof(v),
                      types.NamedTuple([types.intp, types.float64], Point))
     w = Rect(3, 4)
     tp_rect = typeof(w)
     self.assertEqual(tp_rect, types.NamedUniTuple(types.intp, 2, Rect))
     self.assertNotEqual(tp_rect, tp_point)
     self.assertNotEqual(tp_rect,
                         types.UniTuple(tp_rect.dtype, tp_rect.count))
コード例 #2
0
    def test_ndim_not_on_array(self):

        FakeArray = collections.namedtuple('FakeArray', ['ndim'])
        fa = FakeArray(ndim=2)

        def impl(fa):
            if fa.ndim == 2:
                return fa.ndim
            else:
                object()

        # check prune works for array ndim
        self.assert_prune(impl, (types.Array(types.float64, 2, 'C'), ),
                          [False], np.zeros((2, 3)))

        # check prune fails for something with `ndim` attr that is not array
        FakeArrayType = types.NamedUniTuple(types.int64, 1, FakeArray)
        self.assert_prune(impl, (FakeArrayType, ), [None],
                          fa,
                          flags=enable_pyobj_flags)
コード例 #3
0
ファイル: test_types.py プロジェクト: lyabakhP/flask-blog
 def test_namedtuples(self):
     ty1 = types.NamedUniTuple(types.intp, 2, Point)
     self.check_pickling(ty1)
     ty2 = types.NamedTuple((types.intp, types.float64), Point)
     self.check_pickling(ty2)
コード例 #4
0
    # Calculate the theoretical bounding box if the image was
    # perfectly centered on the closest reference point
    # Clip the bounding box to the extents of the image
    left = viewed_img_center_x - half_canvas_width
    right = viewed_img_center_x + half_canvas_width
    return left, right


@jit(float64(float64, float64, float64), nopython=True, cache=True, nogil=True)
def clip(v, n, x):
    return max(min(v, x), n)


@jit(nb_types.NamedUniTuple(float64, 4,
                            Box)(nb_types.NamedUniTuple(float64, 4, Box),
                                 nb_types.Array(float64, 1, 'C'),
                                 nb_types.Array(float64, 1, 'C'),
                                 nb_types.UniTuple(int64, 2), float64,
                                 float64),
     nopython=True,
     cache=True,
     nogil=True)
def calc_view_extents(image_extents_box: Box, canvas_point, image_point,
                      canvas_size, dx, dy) -> Box:
    left, right = _calc_extent_component(canvas_point[0], image_point[0],
                                         canvas_size[0], dx)
    left = clip(left, image_extents_box.left, image_extents_box.right)
    right = clip(right, image_extents_box.left, image_extents_box.right)

    bot, top = _calc_extent_component(canvas_point[1], image_point[1],
                                      canvas_size[1], dy)
    bot = clip(bot, image_extents_box.bottom, image_extents_box.top)
コード例 #5
0
ファイル: common.py プロジェクト: djhoese/sift
    dx = abs((image_point[1, 0] - image_point[0, 0]) /
             (canvas_size[0] * (canvas_point[1, 0] - canvas_point[0, 0]) / 2.))
    dy = abs((image_point[1, 1] - image_point[0, 1]) /
             (canvas_size[1] * (canvas_point[1, 1] - canvas_point[0, 1]) / 2.))
    return dx, dy


@jit(nopython=True)
def clip(v, n, x):
    return max(min(v, x), n)


@jit(nb_types.NamedUniTuple(float64, 4, box)(
        nb_types.NamedUniTuple(float64, 4, box),
        nb_types.Array(float64, 1, 'C'),
        nb_types.Array(float64, 1, 'C'),
        nb_types.UniTuple(int64, 2),
        float64,
        float64
    ),
    nopython=True)
def calc_view_extents(image_extents_box, canvas_point, image_point, canvas_size, dx, dy):
    l, r = _calc_extent_component(canvas_point[0], image_point[0], canvas_size[0], dx)
    l = clip(l, image_extents_box.l, image_extents_box.r)
    r = clip(r, image_extents_box.l, image_extents_box.r)

    b, t = _calc_extent_component(canvas_point[1], image_point[1], canvas_size[1], dy)
    b = clip(b, image_extents_box.b, image_extents_box.t)
    t = clip(t, image_extents_box.b, image_extents_box.t)

    if (r - l) < CANVAS_EXTENTS_EPSILON or (t - b) < CANVAS_EXTENTS_EPSILON:
        # they are viewing essentially nothing or the image isn't in view