Example #1
0
def test_dup_from_to_dict():
    assert dup_from_raw_dict({}, ZZ) == []
    assert dup_from_dict({}, ZZ) == []

    assert dup_to_raw_dict([]) == {}
    assert dup_to_dict([]) == {}

    assert dup_to_raw_dict([], ZZ, zero=True) == {0: ZZ(0)}
    assert dup_to_dict([], ZZ, zero=True) == {(0,): ZZ(0)}

    f = [3, 0, 0, 2, 0, 0, 0, 0, 8]
    g = {8: 3, 5: 2, 0: 8}
    h = {(8,): 3, (5,): 2, (0,): 8}

    assert dup_from_raw_dict(g, ZZ) == f
    assert dup_from_dict(h, ZZ) == f

    assert dup_to_raw_dict(f) == g
    assert dup_to_dict(f) == h

    R,  x, y = ring("x,y", ZZ)
    K = R.to_domain()

    f = [R(3), R(0), R(2), R(0), R(0), R(8)]
    g = {5: R(3), 3: R(2), 0: R(8)}
    h = {(5,): R(3), (3,): R(2), (0,): R(8)}

    assert dup_from_raw_dict(g, K) == f
    assert dup_from_dict(h, K) == f

    assert dup_to_raw_dict(f) == g
    assert dup_to_dict(f) == h
Example #2
0
def test_dmp_deflate():
    assert dmp_deflate([], 0, ZZ) == ((1, ), [])
    assert dmp_deflate([2], 0, ZZ) == ((1, ), [2])
    assert dmp_deflate([1, 2, 3], 0, ZZ) == ((1, ), [1, 2, 3])
    assert dmp_deflate([1, 0, 2, 0, 3], 0, ZZ) == ((2, ), [1, 2, 3])
    assert dmp_deflate([1, 0, 0, 1, 0, 0, 1], 0, ZZ) == ((3, ), [1, 1, 1])

    assert dmp_deflate(dup_from_dict({(7,): 1, (1,): 1}, ZZ), 0, ZZ) == \
        ((1,), [1, 0, 0, 0, 0, 0, 1, 0])
    assert dmp_deflate(dup_from_dict({
        (7, ): 1,
        (0, ): 1
    }, ZZ), 0, ZZ) == ((7, ), [1, 1])
    assert dmp_deflate(dup_from_dict({(7,): 1, (3,): 1}, ZZ), 0, ZZ) == \
        ((1,), [1, 0, 0, 0, 1, 0, 0, 0])

    assert dmp_deflate(dup_from_dict({(7,): 1, (4,): 1}, ZZ), 0, ZZ) == \
        ((1,), [1, 0, 0, 1, 0, 0, 0, 0])
    assert dmp_deflate(dup_from_dict({
        (8, ): 1,
        (4, ): 1
    }, ZZ), 0, ZZ) == ((4, ), [1, 1, 0])

    assert dmp_deflate(dup_from_dict({(8, ): 1}, ZZ), 0, ZZ) == ((8, ), [1, 0])
    assert dmp_deflate(dup_from_dict({(7, ): 1}, ZZ), 0, ZZ) == ((7, ), [1, 0])
    assert dmp_deflate(dup_from_dict({(1, ): 1}, ZZ), 0, ZZ) == ((1, ), [1, 0])

    assert dmp_deflate([[]], 1, ZZ) == ((1, 1), [[]])
    assert dmp_deflate([[2]], 1, ZZ) == ((1, 1), [[2]])

    f = [[1, 0, 0], [], [1, 0], [], [1]]

    assert dmp_deflate(f, 1, ZZ) == ((2, 1), [[1, 0, 0], [1, 0], [1]])
Example #3
0
def test_dup_integrate():
    assert dup_integrate([], 1, QQ) == []
    assert dup_integrate([], 2, QQ) == []

    assert dup_integrate([QQ(1)], 1, QQ) == [QQ(1), QQ(0)]
    assert dup_integrate([QQ(1)], 2, QQ) == [QQ(1, 2), QQ(0), QQ(0)]

    assert dup_integrate([QQ(1), QQ(2), QQ(3)], 0, QQ) == \
        [QQ(1), QQ(2), QQ(3)]
    assert dup_integrate([QQ(1), QQ(2), QQ(3)], 1, QQ) == \
        [QQ(1, 3), QQ(1), QQ(3), QQ(0)]
    assert dup_integrate([QQ(1), QQ(2), QQ(3)], 2, QQ) == \
        [QQ(1, 12), QQ(1, 3), QQ(3, 2), QQ(0), QQ(0)]
    assert dup_integrate([QQ(1), QQ(2), QQ(3)], 3, QQ) == \
        [QQ(1, 60), QQ(1, 12), QQ(1, 2), QQ(0), QQ(0), QQ(0)]

    assert dup_integrate(dup_from_dict({(29,): QQ(17)}, QQ), 3, QQ) == \
        dup_from_dict({(32,): QQ(17, 29760)}, QQ)

    assert dup_integrate(dup_from_dict({(29,): QQ(17), (5,): QQ(1, 2)}, QQ), 3, QQ) == \
        dup_from_dict({(32,): QQ(17, 29760), (8,): QQ(1, 672)}, QQ)
Example #4
0
def test_dup_from_to_dict():
    assert dup_from_dict({}, ZZ) == []

    assert dmp_to_dict([], 0) == {}

    assert dmp_to_dict([], 0, ZZ, zero=True) == {(0, ): ZZ(0)}

    f = [3, 0, 0, 2, 0, 0, 0, 0, 8]
    h = {(8, ): 3, (5, ): 2, (0, ): 8}

    assert dup_from_dict(h, ZZ) == f

    assert dmp_to_dict(f, 0) == h

    R, x, y = ring("x,y", ZZ)

    f = [R(3), R(0), R(2), R(0), R(0), R(8)]
    h = {(5, ): R(3), (3, ): R(2), (0, ): R(8)}

    assert dup_from_dict(h, R) == f

    assert dmp_to_dict(f, 0) == h

    assert dmp_to_dict([1, 0, 5, 0, 7], 0) == {(0, ): 7, (2, ): 5, (4, ): 1}