def testOperators (self): "Test the operators +, -, *, /, %, ^, &, |" x = MA.array([1.,2.,3.,4.,5.,6.]) y = MA.array([-1.,2.,0.,2.,-1, 3.]) assert eq(x + y, [0., 4., 3., 6., 4., 9.]) assert eq(x - y, [2., 0., 3., 2., 6., 3.]) assert eq(x * y, [-1., 4., 0., 8., -5., 18.]) assert eq(y / x, [-1, 1., 0., .5, -.2, .5]) assert eq(x**2, [1., 4., 9., 16., 25., 36.]) xc = MA.array([1.,2.,3.,4.,5.,6.]) xc += y assert eq(xc, x + y) xc = MA.array([1.,2.,3.,4.,5.,6.]) xc -= y assert eq(xc, x - y) yc = MA.array(y, copy=1) yc /= x assert eq ( yc, y / x) xc = MA.array([1.,2.,3.,4.,5.,6.]) y1 = [-1.,2.,0.,2.,-1, 3.] xc *= y1 assert eq(xc, x * y1) assert eq (x + y, MA.add(x, y)) assert eq (x - y, MA.subtract(x, y)) assert eq (x * y, MA.multiply(x, y)) assert eq (y / x, MA.divide (y, x)) d = x / y assert d[2] is MA.masked assert (MA.array(1) / MA.array(0)) is MA.masked assert eq (x**2, MA.power(x,2)) x = MA.array([1,2]) y = MA.zeros((2,)) assert eq (x%x, y) assert eq (MA.remainder(x,x), y) assert eq (x <<1, [2,4]) assert eq (MA.left_shift(x,1), [2,4]) assert eq (x >>1, [0,1]) assert eq (MA.right_shift(x,1), [0,1]) assert eq (x & 2, [0,2]) assert eq (MA.bitwise_and (x, 2), [0,2]) assert eq (x | 1, [1,3]) assert eq (MA.bitwise_or (x, 1), [1,3]) assert eq (x ^ 2, [3,0]) assert eq (MA.bitwise_xor(x,2), [3,0]) # x = divmod(MA.array([2,1]), MA.array([1,2])) # assert eq (x[0], [2,0]) # assert eq (x[1], [0,1]) assert (4L*MA.arange(3)).typecode() == MA.PyObject