コード例 #1
0
ファイル: test_str.py プロジェクト: goretkin/diofant
def test_FracElement():
    Fuv, u, v = field("u,v", ZZ)
    Fxyzt, x, y, z, t = field("x,y,z,t", Fuv)

    assert str(x - x) == "0"
    assert str(x - 1) == "x - 1"
    assert str(x + 1) == "x + 1"

    assert str(x / 3) == "x/3"
    assert str(x / z) == "x/z"
    assert str(x * y / z) == "x*y/z"
    assert str(x / (z * t)) == "x/(z*t)"
    assert str(x * y / (z * t)) == "x*y/(z*t)"

    assert str((x - 1) / y) == "(x - 1)/y"
    assert str((x + 1) / y) == "(x + 1)/y"
    assert str((-x - 1) / y) == "(-x - 1)/y"
    assert str((x + 1) / (y * z)) == "(x + 1)/(y*z)"
    assert str(-y / (x + 1)) == "-y/(x + 1)"
    assert str(y * z / (x + 1)) == "y*z/(x + 1)"

    assert str(((u + 1) * x * y + 1) /
               ((v - 1) * z - 1)) == "((u + 1)*x*y + 1)/((v - 1)*z - 1)"
    assert str(((u + 1) * x * y + 1) /
               ((v - 1) * z - t * u * v -
                1)) == "((u + 1)*x*y + 1)/((v - 1)*z - u*v*t - 1)"
コード例 #2
0
ファイル: test_repr.py プロジェクト: goretkin/diofant
def test_FracField():
    sT(field("x", ZZ, lex)[0], "FracField((Symbol('x'),), "
                               "%s, LexOrder())" % repr(ZZ))
    sT(field("x,y", QQ, grlex)[0], "FracField((Symbol('x'), Symbol('y')), "
                                   "%s, GradedLexOrder())" % repr(QQ))
    sT(field("x,y,z", ZZ["t"], lex)[0],
            "FracField((Symbol('x'), Symbol('y'), Symbol('z')), "
            "PolynomialRing(PolyRing((Symbol('t'),), %s, "
            "LexOrder())), LexOrder())" % repr(ZZ))
コード例 #3
0
def test_FracField():
    assert srepr(field("x", ZZ,
                       lex)[0]) == "FracField((Symbol('x'),), ZZ, lex)"
    assert srepr(
        field("x,y", QQ,
              grlex)[0]) == "FracField((Symbol('x'), Symbol('y')), QQ, grlex)"
    assert srepr(
        field("x,y,z", ZZ["t"], lex)[0]
    ) == "FracField((Symbol('x'), Symbol('y'), Symbol('z')), ZZ[t], lex)"
コード例 #4
0
ファイル: test_str.py プロジェクト: goretkin/diofant
def test_FracField():
    assert str(
        field("x", ZZ,
              lex)[0]) == "Rational function field in x over ZZ with lex order"
    assert str(
        field("x,y", QQ, grlex)
        [0]) == "Rational function field in x, y over QQ with grlex order"
    assert str(
        field("x,y,z", ZZ["t"], lex)
        [0]) == "Rational function field in x, y, z over ZZ[t] with lex order"
コード例 #5
0
def test_FracElement():
    F, x, y = field("x,y", ZZ)
    g = F.domain.dtype
    assert repr((3 * x**2 * y + 1) / (x - y**2)) == (
        "FracElement(FractionField(%s, (Symbol('x'), "
        "Symbol('y')), LexOrder()), [((2, 1), %s), "
        "((0, 0), %s)], [((1, 0), %s), "
        "((0, 2), %s)])" %
        (repr(ZZ), repr(g(3)), repr(g(1)), repr(g(1)), repr(g(-1))))
コード例 #6
0
def test_FracElement():
    F, x, y = field("x,y", ZZ)
    g = F.domain.dtype
    assert srepr(
        (3 * x**2 * y + 1) /
        (x - y**2)) == ("FracElement(FracField((Symbol('x'), "
                        "Symbol('y')), ZZ, lex), [((2, 1), %s), "
                        "((0, 0), %s)], [((1, 0), %s), "
                        "((0, 2), %s)])" %
                        (repr(g(3)), repr(g(1)), repr(g(1)), repr(g(-1))))
コード例 #7
0
ファイル: test_repr.py プロジェクト: skirpichev/diofant
def test_FracElement():
    F, x, y = field("x,y", ZZ)
    g = F.domain.dtype
    assert repr((3*x**2*y + 1)/(x - y**2)) == ("FracElement(FractionField(%s, (Symbol('x'), "
                                               "Symbol('y')), LexOrder()), [((2, 1), %s), "
                                               "((0, 0), %s)], [((1, 0), %s), "
                                               "((0, 2), %s)])" % (repr(ZZ),
                                                                   repr(g(3)),
                                                                   repr(g(1)),
                                                                   repr(g(1)),
                                                                   repr(g(-1))))
コード例 #8
0
ファイル: test_domains.py プロジェクト: cbm755/diofant
def test_FractionField_from_PolynomialRing():
    R, x, y = ring("x,y", QQ)
    F, X, Y = field("x,y", ZZ)

    f = 3 * x**2 + 5 * y**2
    g = x**2 / 3 + y**2 / 5

    assert F.convert(f, R) == 3 * X**2 + 5 * Y**2
    assert F.convert(g, R) == (5 * X**2 + 3 * Y**2) / 15

    RALG, u, v = ring("u,v", ALG)
    pytest.raises(CoercionFailed,
                  lambda: F.convert(3 * u**2 + 5 * sqrt(2) * v**2))
コード例 #9
0
ファイル: test_domains.py プロジェクト: cbm755/diofant
def test_PolynomialRing_from_FractionField():
    F, x, y = field("x,y", ZZ)
    R, X, Y = ring("x,y", ZZ)

    f = (x**2 + y**2) / (x + 1)
    g = (x**2 + y**2) / 4
    h = x**2 + y**2

    pytest.raises(CoercionFailed, lambda: R.convert(f, F))
    pytest.raises(CoercionFailed, lambda: R.convert(g, F))
    assert R.convert(h, F) == X**2 + Y**2

    F, x, y = field("x,y", QQ)
    R, X, Y = ring("x,y", QQ)

    f = (x**2 + y**2) / (x + 1)
    g = (x**2 + y**2) / 4
    h = x**2 + y**2

    pytest.raises(CoercionFailed, lambda: R.convert(f, F))
    assert R.convert(g, F) == X**2 / 4 + Y**2 / 4
    assert R.convert(h, F) == X**2 + Y**2
コード例 #10
0
ファイル: test_domains.py プロジェクト: skirpichev/diofant
def test_FractionField_from_PolynomialRing():
    R,  x, y = ring("x,y", QQ)
    F,  X, Y = field("x,y", ZZ)

    f = 3*x**2 + 5*y**2
    g = x**2/3 + y**2/5

    assert F.convert(f, R) == 3*X**2 + 5*Y**2
    assert F.convert(g, R) == (5*X**2 + 3*Y**2)/15

    RALG,  u, v = ring("u,v", ALG)
    pytest.raises(CoercionFailed,
                  lambda: F.convert(3*u**2 + 5*sqrt(2)*v**2))
コード例 #11
0
ファイル: test_domains.py プロジェクト: skirpichev/diofant
def test_PolynomialRing_from_FractionField():
    F,  x, y = field("x,y", ZZ)
    R,  X, Y = ring("x,y", ZZ)

    f = (x**2 + y**2)/(x + 1)
    g = (x**2 + y**2)/4
    h = x**2 + y**2

    pytest.raises(CoercionFailed, lambda: R.convert(f, F))
    assert R.convert(g, F) == X**2/4 + Y**2/4
    assert R.convert(h, F) == X**2 + Y**2

    F,  x, y = field("x,y", QQ)
    R,  X, Y = ring("x,y", QQ)

    f = (x**2 + y**2)/(x + 1)
    g = (x**2 + y**2)/4
    h = x**2 + y**2

    pytest.raises(CoercionFailed, lambda: R.convert(f, F))
    assert R.convert(g, F) == X**2/4 + Y**2/4
    assert R.convert(h, F) == X**2 + Y**2
コード例 #12
0
ファイル: test_str.py プロジェクト: skirpichev/diofant
def test_FracElement():
    Fuv,  u, v = field("u,v", ZZ)
    Fxyzt,  x, y, z, t = field("x,y,z,t", Fuv)

    assert str(x - x) == "0"
    assert str(x - 1) == "x - 1"
    assert str(x + 1) == "x + 1"

    assert str(x/3) == "x/3"
    assert str(x/z) == "x/z"
    assert str(x*y/z) == "x*y/z"
    assert str(x/(z*t)) == "x/(z*t)"
    assert str(x*y/(z*t)) == "x*y/(z*t)"

    assert str((x - 1)/y) == "(x - 1)/y"
    assert str((x + 1)/y) == "(x + 1)/y"
    assert str((-x - 1)/y) == "(-x - 1)/y"
    assert str((x + 1)/(y*z)) == "(x + 1)/(y*z)"
    assert str(-y/(x + 1)) == "-y/(x + 1)"
    assert str(y*z/(x + 1)) == "y*z/(x + 1)"

    assert str(((u + 1)*x*y + 1)/((v - 1)*z - 1)) == "((u + 1)*x*y + 1)/((v - 1)*z - 1)"
    assert str(((u + 1)*x*y + 1)/((v - 1)*z - t*u*v - 1)) == "((u + 1)*x*y + 1)/((v - 1)*z - u*v*t - 1)"
コード例 #13
0
ファイル: test_str.py プロジェクト: cbm755/diofant
def test_PolyElement():
    Ruv,  u, v = ring("u,v", ZZ)
    Rxyz,  x, y, z = ring("x,y,z", Ruv)

    assert str(x - x) == "0"
    assert str(x - 1) == "x - 1"
    assert str(x + 1) == "x + 1"

    assert str((u**2 + 3*u*v + 1)*x**2*y + u + 1) == "(u**2 + 3*u*v + 1)*x**2*y + u + 1"
    assert str((u**2 + 3*u*v + 1)*x**2*y + (u + 1)*x) == "(u**2 + 3*u*v + 1)*x**2*y + (u + 1)*x"
    assert str((u**2 + 3*u*v + 1)*x**2*y + (u + 1)*x + 1) == "(u**2 + 3*u*v + 1)*x**2*y + (u + 1)*x + 1"
    assert str((-u**2 + 3*u*v - 1)*x**2*y - (u + 1)*x - 1) == "-(u**2 - 3*u*v + 1)*x**2*y - (u + 1)*x - 1"

    assert str(-(v**2 + v + 1)*x + 3*u*v + 1) == "-(v**2 + v + 1)*x + 3*u*v + 1"
    assert str(-(v**2 + v + 1)*x - 3*u*v + 1) == "-(v**2 + v + 1)*x - 3*u*v + 1"

    K, t = field('t', ZZ)
    R, x = ring('x', K)

    assert str(x/t) == '1/t*x'
コード例 #14
0
ファイル: test_domains.py プロジェクト: cbm755/diofant
def test_FractionField_convert():
    F, X, Y = field("x,y", QQ)
    F.convert(QQ_python(1, 3)) == F.one / 3
コード例 #15
0
ファイル: test_domains.py プロジェクト: skirpichev/diofant
def test_FractionField_convert():
    F,  X, Y = field("x,y", QQ)
    F.convert(QQ_python(1, 3)) == F.one/3