MCPcopy Create free account
hub / github.com/numpy/numpy / test_spacing

Method test_spacing

numpy/lib/tests/test_function_base.py:1067–1129  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

1065 assert_(np.all(num_error < 0.03) == True)
1066
1067 def test_spacing(self):
1068 f = np.array([0, 2., 3., 4., 5., 5.])
1069 f = np.tile(f, (6,1)) + f.reshape(-1, 1)
1070 x_uneven = np.array([0., 0.5, 1., 3., 5., 7.])
1071 x_even = np.arange(6.)
1072
1073 fdx_even_ord1 = np.tile([2., 1.5, 1., 1., 0.5, 0.], (6,1))
1074 fdx_even_ord2 = np.tile([2.5, 1.5, 1., 1., 0.5, -0.5], (6,1))
1075 fdx_uneven_ord1 = np.tile([4., 3., 1.7, 0.5, 0.25, 0.], (6,1))
1076 fdx_uneven_ord2 = np.tile([5., 3., 1.7, 0.5, 0.25, -0.25], (6,1))
1077
1078 # evenly spaced
1079 for edge_order, exp_res in [(1, fdx_even_ord1), (2, fdx_even_ord2)]:
1080 res1 = gradient(f, 1., axis=(0,1), edge_order=edge_order)
1081 res2 = gradient(f, x_even, x_even,
1082 axis=(0,1), edge_order=edge_order)
1083 res3 = gradient(f, x_even, x_even,
1084 axis=None, edge_order=edge_order)
1085 assert_array_equal(res1, res2)
1086 assert_array_equal(res2, res3)
1087 assert_almost_equal(res1[0], exp_res.T)
1088 assert_almost_equal(res1[1], exp_res)
1089
1090 res1 = gradient(f, 1., axis=0, edge_order=edge_order)
1091 res2 = gradient(f, x_even, axis=0, edge_order=edge_order)
1092 assert_(res1.shape == res2.shape)
1093 assert_almost_equal(res2, exp_res.T)
1094
1095 res1 = gradient(f, 1., axis=1, edge_order=edge_order)
1096 res2 = gradient(f, x_even, axis=1, edge_order=edge_order)
1097 assert_(res1.shape == res2.shape)
1098 assert_array_equal(res2, exp_res)
1099
1100 # unevenly spaced
1101 for edge_order, exp_res in [(1, fdx_uneven_ord1), (2, fdx_uneven_ord2)]:
1102 res1 = gradient(f, x_uneven, x_uneven,
1103 axis=(0,1), edge_order=edge_order)
1104 res2 = gradient(f, x_uneven, x_uneven,
1105 axis=None, edge_order=edge_order)
1106 assert_array_equal(res1, res2)
1107 assert_almost_equal(res1[0], exp_res.T)
1108 assert_almost_equal(res1[1], exp_res)
1109
1110 res1 = gradient(f, x_uneven, axis=0, edge_order=edge_order)
1111 assert_almost_equal(res1, exp_res.T)
1112
1113 res1 = gradient(f, x_uneven, axis=1, edge_order=edge_order)
1114 assert_almost_equal(res1, exp_res)
1115
1116 # mixed
1117 res1 = gradient(f, x_even, x_uneven, axis=(0,1), edge_order=1)
1118 res2 = gradient(f, x_uneven, x_even, axis=(1,0), edge_order=1)
1119 assert_array_equal(res1[0], res2[1])
1120 assert_array_equal(res1[1], res2[0])
1121 assert_almost_equal(res1[0], fdx_even_ord1.T)
1122 assert_almost_equal(res1[1], fdx_uneven_ord1)
1123
1124 res1 = gradient(f, x_even, x_uneven, axis=(0,1), edge_order=2)

Callers

nothing calls this directly

Calls 5

gradientFunction · 0.90
assert_array_equalFunction · 0.90
assert_almost_equalFunction · 0.90
assert_Function · 0.90
reshapeMethod · 0.80

Tested by

no test coverage detected