def test_SDM_convert_to(): A = SDM({0: {1: ZZ(1)}, 1: {0: ZZ(2), 1: ZZ(3)}}, (2, 2), ZZ) B = SDM({0: {1: QQ(1)}, 1: {0: QQ(2), 1: QQ(3)}}, (2, 2), QQ) C = A.convert_to(QQ) assert C == B assert C.domain == QQ D = A.convert_to(ZZ) assert D == A assert D.domain == ZZ
def test_SDM_mul_elementwise(): A = SDM({0: {0: ZZ(2), 1: ZZ(2)}}, (2, 2), ZZ) B = SDM({0: {0: ZZ(4)}, 1: {0: ZZ(3)}}, (2, 2), ZZ) C = SDM({0: {0: ZZ(8)}}, (2, 2), ZZ) assert A.mul_elementwise(B) == C assert B.mul_elementwise(A) == C Aq = A.convert_to(QQ) A1 = SDM({0: {0: ZZ(1)}}, (1, 1), ZZ) raises(DDMDomainError, lambda: Aq.mul_elementwise(B)) raises(DDMShapeError, lambda: A1.mul_elementwise(B))