def test_convert(): F3 = FF(3) F3_gmpy = FF_gmpy(3) F3_python = FF_python(3) assert F3.convert(gmpy.mpz(2)) == F3.dtype(2) assert F3.convert(gmpy.mpq(2, 1)) == F3.dtype(2) pytest.raises(CoercionFailed, lambda: F3.convert(gmpy.mpq(1, 2))) assert ZZ_gmpy.convert(F3_python(1)) == ZZ_gmpy.dtype(1) assert ZZ_gmpy.convert(F3_gmpy(1)) == ZZ_gmpy.dtype(1) assert ZZ_gmpy.convert(PythonRational(2)) == ZZ_gmpy.dtype(2) pytest.raises(CoercionFailed, lambda: ZZ_gmpy.convert(PythonRational(2, 3))) assert QQ_python.convert(gmpy.mpz(3)) == QQ_python.dtype(3) assert QQ_python.convert(gmpy.mpq(2, 3)) == QQ_python.dtype(2, 3) assert QQ_gmpy.convert(PythonRational(2, 3)) == QQ_gmpy.dtype(2, 3) assert ZZ_python.convert(F3_gmpy(1)) == ZZ_python.dtype(1) assert ZZ_python.convert(gmpy.mpz(3)) == ZZ_python.dtype(3) assert ZZ_python.convert(gmpy.mpq(3, 1)) == ZZ_python.dtype(3) pytest.raises(CoercionFailed, lambda: ZZ_python.convert(gmpy.mpq(3, 2))) assert CC.convert(gmpy.mpz(3)) == CC(3) assert CC.convert(gmpy.mpq(1, 2)) == CC(0.5)
def test_Domain_convert(): assert QQ.convert(10e-52) == QQ( 1684996666696915, 1684996666696914987166688442938726917102321526408785780068975640576) R, x = ring("x", ZZ) assert ZZ.convert(x - x) == 0 assert ZZ.convert(x - x, R) == 0 F3 = FF(3) assert F3.convert(Float(2.0)) == F3.dtype(2) assert F3.convert(PythonRational(2, 1)) == F3.dtype(2) pytest.raises(CoercionFailed, lambda: F3.convert(PythonRational(1, 2))) assert F3.convert(2.0) == F3.dtype(2) pytest.raises(CoercionFailed, lambda: F3.convert(2.1)) assert RR.convert(CC(1)) == RR(1) pytest.raises(CoercionFailed, lambda: RR.convert(CC(1, 2))) assert QQ.convert(ALG(1), ALG) == QQ(1) pytest.raises(CoercionFailed, lambda: QQ.convert(ALG([1, 1]), ALG)) assert ZZ.convert(ALG(1), ALG) == ZZ(1) pytest.raises(CoercionFailed, lambda: ZZ.convert(ALG([1, 1]), ALG)) assert EX.convert(ALG([1, 1]), ALG) == sqrt(2) + sqrt(3) + 1 ALG2 = QQ.algebraic_field(sqrt(2)) a2 = ALG2.convert(sqrt(2)) a = ALG.convert(a2, ALG2) assert a.rep.to_dense() == [QQ(1, 2), 0, -QQ(9, 2), 0] assert RR.convert(a) == RR(1.4142135623730951) assert CC.convert(a) == CC(1.4142135623730951) assert ZZ_python.convert(3.0) == ZZ_python.dtype(3) pytest.raises(CoercionFailed, lambda: ZZ_python.convert(3.2)) assert CC.convert(QQ_python(1, 2)) == CC(0.5) CC01 = ComplexField(tol=0.1) assert CC.convert(CC01(0.3)) == CC(0.3) assert RR.convert(complex(2 + 0j)) == RR(2) pytest.raises(CoercionFailed, lambda: RR.convert(complex(2 + 3j))) assert ALG.convert(EX(sqrt(2)), EX) == ALG.from_expr(sqrt(2)) pytest.raises(CoercionFailed, lambda: ALG.convert(EX(sqrt(5)), EX)) pytest.raises(CoercionFailed, lambda: ALG2.convert(ALG.unit))
def test_Domain_convert(): assert QQ.convert(10e-52) == QQ(1684996666696915, 1684996666696914987166688442938726917102321526408785780068975640576) R, x = ring("x", ZZ) assert ZZ.convert(x - x) == 0 assert ZZ.convert(x - x, R) == 0 F3 = FF(3) assert F3.convert(Float(2.0)) == F3.dtype(2) assert F3.convert(PythonRational(2, 1)) == F3.dtype(2) pytest.raises(CoercionFailed, lambda: F3.convert(PythonRational(1, 2))) assert F3.convert(2.0) == F3.dtype(2) pytest.raises(CoercionFailed, lambda: F3.convert(2.1)) assert RR.convert(CC(1)) == RR(1) pytest.raises(CoercionFailed, lambda: RR.convert(CC(1, 2))) assert QQ.convert(ALG.new(1), ALG) == QQ(1) pytest.raises(CoercionFailed, lambda: QQ.convert(ALG.new([1, 1]), ALG)) assert ZZ.convert(ALG.new(1), ALG) == ZZ(1) pytest.raises(CoercionFailed, lambda: ZZ.convert(ALG.new([1, 1]), ALG)) assert EX.convert(ALG.new([1, 1]), ALG) == sqrt(2) + sqrt(3) + 1 ALG2 = QQ.algebraic_field(sqrt(2)) a2 = ALG2.convert(sqrt(2)) a = ALG.convert(a2, ALG2) assert a.rep.to_dense() == [QQ(1, 2), 0, -QQ(9, 2), 0] assert ZZ_python.convert(3.0) == ZZ_python.dtype(3) pytest.raises(CoercionFailed, lambda: ZZ_python.convert(3.2)) assert CC.convert(QQ_python(1, 2)) == CC(0.5) CC01 = ComplexField(tol=0.1) assert CC.convert(CC01(0.3)) == CC(0.3) assert RR.convert(complex(2 + 0j)) == RR(2) pytest.raises(CoercionFailed, lambda: RR.convert(complex(2 + 3j))) assert ALG.convert(EX(sqrt(2)), EX) == ALG.from_expr(sqrt(2)) pytest.raises(CoercionFailed, lambda: ALG.convert(EX(sqrt(5)), EX)) pytest.raises(CoercionFailed, lambda: ALG2.convert(ALG.unit))