def testPut (self): "test put and putmask" x=MA.arange(5) MA.put (x, [1,4],[10,40]) assert eq(x, [0,10,2,3,40]) x=MA.arange(5) * 1.0 MA.put (x, [1,4],[10.,40.]) assert eq(x, [0.,10.,2.,3.,40.]) x=MA.arange(5) MA.put (x, [1,4],[10]) assert eq(x, [0,10,2,3,10]) x=MA.arange(5) MA.put (x, [1,4],10) assert eq(x, [0,10,2,3,10]) x=MA.arange(5) MA.put (x, [0,1,2,3], [10,20]) assert eq(x, [10,20,10,20,4]) x=MA.arange(5) MA.put (x, [[0,1],[2,3]], [10,20]) assert eq(x, [10,20,10,20,4]) x = MA.arange(5).astype(MA.Float32) MA.put (x, [1,4],[10.,40.]) assert eq(x, [0,10,2,3,40]) x=MA.arange(6)*1.0 x.shape=(2,3) MA.put(x, [1,4],[10,40]) assert eq(x, [[0,10,2],[3,40,5]]) x=MA.arange(5) MA.putmask (x, [1,0,1,0,1], [-1,10,20,30,40]) assert eq(x, [-1,1,20,3,40]) x=MA.arange(10) MA.putmask(x, MA.ones(10), 5) assert eq(x, 5*MA.ones(10)) x=MA.arange(10)*1.0 x=x.astype(MA.Float32) MA.putmask(x, [0,0,1,0,0,0,0,0,0,1], 3.0) assert eq(x, [0.,1.,3.,3.,4.,5.,6.,7.,8.,3.]) x=MA.zeros((10,),MA.PyObject) MA.putmask(x, [0,0,1,0,0,0,1,0,0,1], 0.0) assert x[2] == 0. assert x[1] == 0 x=MA.zeros((5,2),MA.PyObject) m=MA.zeros((5,2), MA.Int) m[3,1] = 1 m[2,0] = 1 MA.putmask(x, m, 0.0) assert x[3,1] == 0.0 assert x[2,0] == 0