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)
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))
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)
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)
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)
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)