def test_multiplication(): a=Matrix(( (1, 2), (3, 1), (0, 6), )) b = Matrix (( (1, 2), (3, 0), )) c= a*b assert c[0,0]==7 assert c[0,1]==2 assert c[1,0]==6 assert c[1,1]==6 assert c[2,0]==18 assert c[2,1]==0 h = matrix_multiply_elementwise(a, c) assert h == a.multiply_elementwise(c) assert h[0,0]==7 assert h[0,1]==4 assert h[1,0]==18 assert h[1,1]==6 assert h[2,0]==0 assert h[2,1]==0 raises(ShapeError, 'matrix_multiply_elementwise(a, b)') x = Symbol("x") c = b * Symbol("x") assert isinstance(c,Matrix) assert c[0,0] == x assert c[0,1] == 2*x assert c[1,0] == 3*x assert c[1,1] == 0 c2 = x * b assert c == c2 c = 5 * b assert isinstance(c,Matrix) assert c[0,0] == 5 assert c[0,1] == 2*5 assert c[1,0] == 3*5 assert c[1,1] == 0