MCPcopy Index your code
hub / github.com/numpy/numpy / test_spacing

Method test_spacing

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

Source from the content-addressed store, hash-verified

1206 assert_(np.all(num_error < 0.03) == True)
1207
1208 def test_spacing(self):
1209 f = np.array([0, 2., 3., 4., 5., 5.])
1210 f = np.tile(f, (6, 1)) + f.reshape(-1, 1)
1211 x_uneven = np.array([0., 0.5, 1., 3., 5., 7.])
1212 x_even = np.arange(6.)
1213
1214 fdx_even_ord1 = np.tile([2., 1.5, 1., 1., 0.5, 0.], (6, 1))
1215 fdx_even_ord2 = np.tile([2.5, 1.5, 1., 1., 0.5, -0.5], (6, 1))
1216 fdx_uneven_ord1 = np.tile([4., 3., 1.7, 0.5, 0.25, 0.], (6, 1))
1217 fdx_uneven_ord2 = np.tile([5., 3., 1.7, 0.5, 0.25, -0.25], (6, 1))
1218
1219 # evenly spaced
1220 for edge_order, exp_res in [(1, fdx_even_ord1), (2, fdx_even_ord2)]:
1221 res1 = gradient(f, 1., axis=(0, 1), edge_order=edge_order)
1222 res2 = gradient(f, x_even, x_even,
1223 axis=(0, 1), edge_order=edge_order)
1224 res3 = gradient(f, x_even, x_even,
1225 axis=None, edge_order=edge_order)
1226 assert_array_equal(res1, res2)
1227 assert_array_equal(res2, res3)
1228 assert_almost_equal(res1[0], exp_res.T)
1229 assert_almost_equal(res1[1], exp_res)
1230
1231 res1 = gradient(f, 1., axis=0, edge_order=edge_order)
1232 res2 = gradient(f, x_even, axis=0, edge_order=edge_order)
1233 assert_(res1.shape == res2.shape)
1234 assert_almost_equal(res2, exp_res.T)
1235
1236 res1 = gradient(f, 1., axis=1, edge_order=edge_order)
1237 res2 = gradient(f, x_even, axis=1, edge_order=edge_order)
1238 assert_(res1.shape == res2.shape)
1239 assert_array_equal(res2, exp_res)
1240
1241 # unevenly spaced
1242 for edge_order, exp_res in [(1, fdx_uneven_ord1), (2, fdx_uneven_ord2)]:
1243 res1 = gradient(f, x_uneven, x_uneven,
1244 axis=(0, 1), edge_order=edge_order)
1245 res2 = gradient(f, x_uneven, x_uneven,
1246 axis=None, edge_order=edge_order)
1247 assert_array_equal(res1, res2)
1248 assert_almost_equal(res1[0], exp_res.T)
1249 assert_almost_equal(res1[1], exp_res)
1250
1251 res1 = gradient(f, x_uneven, axis=0, edge_order=edge_order)
1252 assert_almost_equal(res1, exp_res.T)
1253
1254 res1 = gradient(f, x_uneven, axis=1, edge_order=edge_order)
1255 assert_almost_equal(res1, exp_res)
1256
1257 # mixed
1258 res1 = gradient(f, x_even, x_uneven, axis=(0, 1), edge_order=1)
1259 res2 = gradient(f, x_uneven, x_even, axis=(1, 0), edge_order=1)
1260 assert_array_equal(res1[0], res2[1])
1261 assert_array_equal(res1[1], res2[0])
1262 assert_almost_equal(res1[0], fdx_even_ord1.T)
1263 assert_almost_equal(res1[1], fdx_uneven_ord1)
1264
1265 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