def test_smooth_nd():
for edge in ['m', 'c']:
a = rand(20, 2, 3) + 10
for M in [5, 20, 123]:
print "nd", edge, "M=%i" %M
kern = gaussian(M, 2.0)
asm = smooth(a, kern[:,None,None], axis=0, edge=edge)
assert asm.shape == a.shape
for jj in range(asm.shape[1]):
for kk in range(asm.shape[2]):
assert np.allclose(asm[:,jj,kk], smooth(a[:,jj,kk], kern,
edge=edge))
mn = a[:,jj,kk].min()
mx = a[:,jj,kk].max()
smn = asm[:,jj,kk].min()
smx = asm[:,jj,kk].max()
assert smn >= mn, "min: data=%f, smooth=%f" %(mn, smn)
assert smx <= mx, "max: data=%f, smooth=%f" %(mx, smx)
评论列表
文章目录