from Numeric import *
def close(x,y):
return abs(x-y) < 1.e5
x=arange(5)
put (x, [1,4],[10,40])
assert allclose(x, [0,10,2,3,40])
x=arange(5) * 1.0
put (x, [1,4],[10.,40.])
assert allclose(x, [0.,10.,2.,3.,40.])
x=arange(5)
put (x, [1,4],[10])
assert allclose(x, [0,10,2,3,10])
x=arange(5)
put (x, [1,4],10)
assert allclose(x, [0,10,2,3,10])
x=arange(5)
put (x, [0,1,2,3], [10,20])
assert allclose(x, [10,20,10,20,4])
x=arange(5)
put (x, [[0,1],[2,3]], [10,20])
assert allclose(x, [10,20,10,20,4])
x = arange(5).astype(Float32)
put (x, [1,4],[10.,40.])
assert allclose(x, [0,10,2,3,40])
x=arange(6)*1.0
x.shape=(2,3)
put(x, [1,4],[10,40])
assert allclose(x, [[0,10,2],[3,40,5]])
x=arange(5)
putmask (x, [1,0,1,0,1], [-1,10,20,30,40])
assert allclose(x, [-1,1,20,3,40])
x=arange(10)
putmask(x, ones(10), 5)
assert allclose(x, 5*ones(10))
x=arange(10)*1.0
x=x.astype(Float32)
putmask(x, [0,0,1,0,0,0,0,0,0,1], 3.0)
assert allclose(x, [0.,1.,3.,3.,4.,5.,6.,7.,8.,3.])
print "Puttest: all tests passed."
syntax highlighted by Code2HTML, v. 0.9.1