示例#1
0
    def test_interpolate_block_2(self):

        def f(i, j):
            return float(i + j)

        origin = (0, 0)
        shape = (3, 5)  # nrows, ncols

        fUL = f(0, 0)   # 0.0
        fUR = f(0, 4)   # 4.0
        fLL = f(2, 0)   # 2.0
        fLR = f(2, 4)   # 6.0

        a = bilinear(shape, fUL, fUR, fLR, fLL)
        # print '\n', a

        self.assertEqual(a[0, 0], fUL)
        self.assertEqual(a[0, -1], fUR)
        self.assertEqual(a[-1, -1], fLR)
        self.assertEqual(a[-1, 0], fLL)

        b = interpolate_block(origin, shape, f, grid=None)
        # print '\n', b

        self.assert_(numpy.max(b - a) < 0.000001)
示例#2
0
    def test_interpolate_block(self):
        """
        Simple test case for the interpolate block function
        """

        def test_fnc(y, x):
            return 8 * y + 2 * x

        expected = np.arange(0, 16).reshape(4, 4) * 2

        in_arr = np.zeros(16).reshape(4, 4)

        in_arr[0, 3] = 3
        in_arr[3, 0] = 12
        in_arr[3, 3] = 15

        interpolate_block((0, 0), shape=in_arr.shape, eval_func=test_fnc, grid=in_arr)

        self.assertTrue(np.allclose(expected, in_arr))
示例#3
0
    def test_interpolate_block_0(self):
        def f(i, j):
            return float(i * j)

        b = interpolate_block((0, 0), (5, 5), f, grid=None)
        # print '\n', b

        self.assertEqual(b[0, 0], 0.0)
        self.assertEqual(b[0, 4], 0.0)
        self.assertEqual(b[4, 0], 0.0)
        self.assertEqual(b[2, 2], 4.0)
        self.assertEqual(b[4, 4], 16.0)
示例#4
0
    def test_interpolate_block_1(self):
        def f(i, j):
            return float(i * j)

        b = interpolate_block((0, 0), (5, 11), f, grid=None)
        # print '\n', b

        self.assertEqual(b[0, 0], 0.0)
        self.assertEqual(b[0, -1], 0.0)
        self.assertEqual(b[-1, 0], 0.0)
        self.assertEqual(b[-1, -1], 40.0)
        self.assertEqual(b[-2, -1], 30.0)
        self.assertEqual(b[-1, -2], 36.0)
示例#5
0
    def test_interpolate_block(self):
        """
        Simple test case for the interpolate block function
        """
        test_fnc = lambda y, x: 8 * y + x

        expected = np.arange(0, 16).reshape(4, 4) * 2

        in_arr = np.zeros(16).reshape(4, 4)

        in_arr[0, 3] = 3
        in_arr[3, 0] = 12
        in_arr[3, 3] = 15

        result = interpolate_block((0, 0), shape=in_arr.shape,
                                   eval_func=test_fnc, grid=in_arr)
示例#6
0
    def test_interpolate_block_3(self):
        def f(i, j):
            return float(i)**2 * math.sqrt(float(j))

        origin = (0, 0)
        shape = (3, 5)  # nrows, ncols

        fUL = f(0, 0)
        fUR = f(0, 4)
        fLL = f(2, 0)
        fLR = f(2, 4)

        a = bilinear(shape, fUL, fUR, fLR, fLL)
        # print '\n', a

        self.assertEqual(a[0, 0], fUL)
        self.assertEqual(a[0, -1], fUR)
        self.assertEqual(a[-1, -1], fLR)
        self.assertEqual(a[-1, 0], fLL)

        b = interpolate_block(origin, shape, f, grid=None)
        # print '\n', b

        self.assertTrue(numpy.max(b - a) < 0.000001)