def test_dup_count_complex_roots_implicit():
    f = [1, 0, 0, 0, -1, 0]  # z*(z-1)*(z+1)*(z-I)*(z+I)

    assert dup_count_complex_roots(f, ZZ) == 5

    assert dup_count_complex_roots(f, ZZ, sup=(0, 0)) == 3
    assert dup_count_complex_roots(f, ZZ, inf=(0, 0)) == 3
示例#2
0
def test_dup_count_complex_roots_implicit():
    f = [1,0,0,0,-1,0] # z*(z-1)*(z+1)*(z-I)*(z+I)

    assert dup_count_complex_roots(f, ZZ) == 5

    assert dup_count_complex_roots(f, ZZ, sup=(0, 0)) == 3
    assert dup_count_complex_roots(f, ZZ, inf=(0, 0)) == 3
def test_dup_count_complex_roots_1():
    # z-1
    assert dup_count_complex_roots([1, -1], ZZ, a, b) == 1
    assert dup_count_complex_roots([1, -1], ZZ, c, d) == 1

    # z+1
    assert dup_count_complex_roots([1, 1], ZZ, a, b) == 1
    assert dup_count_complex_roots([1, 1], ZZ, c, d) == 0
示例#4
0
def test_dup_count_complex_roots_1():
    # z-1
    assert dup_count_complex_roots([1,-1], ZZ, a, b) == 1
    assert dup_count_complex_roots([1,-1], ZZ, c, d) == 1

    # z+1
    assert dup_count_complex_roots([1,1], ZZ, a, b) == 1
    assert dup_count_complex_roots([1,1], ZZ, c, d) == 0
示例#5
0
def test_dup_count_complex_roots_8():
    # (z-I-1)*(z+I-1)*(z-I+1)*(z+I+1)*(z-1)*(z+1)*(z-I)*(z+I)*z
    assert dup_count_complex_roots([1,0,0,0,3,0,0,0,-4,0], ZZ, a, b) == 9
    assert dup_count_complex_roots([1,0,0,0,3,0,0,0,-4,0], ZZ, c, d) == 4

    # (z-I-1)*(z+I-1)*(z-I+1)*(z+I+1)*(z-1)*(z+1)*(z-I)*(z+I)*(z**2-2)*z
    assert dup_count_complex_roots([1,0,-2,0,3,0,-6,0,-4,0,8,0], ZZ, a, b) == 9
    assert dup_count_complex_roots([1,0,-2,0,3,0,-6,0,-4,0,8,0], ZZ, c, d) == 4
示例#6
0
def test_dup_count_complex_roots_8():
    # (z-I-1)*(z+I-1)*(z-I+1)*(z+I+1)*(z-1)*(z+1)*(z-I)*(z+I)*z
    assert dup_count_complex_roots([1,0,0,0,3,0,0,0,-4,0], ZZ, a, b) == 9
    assert dup_count_complex_roots([1,0,0,0,3,0,0,0,-4,0], ZZ, c, d) == 4

    # (z-I-1)*(z+I-1)*(z-I+1)*(z+I+1)*(z-1)*(z+1)*(z-I)*(z+I)*(z**2-2)*z
    assert dup_count_complex_roots([1,0,-2,0,3,0,-6,0,-4,0,8,0], ZZ, a, b) == 9
    assert dup_count_complex_roots([1,0,-2,0,3,0,-6,0,-4,0,8,0], ZZ, c, d) == 4
def test_dup_count_complex_roots_2():
    # (z-1)*(z)
    assert dup_count_complex_roots([1, -1, 0], ZZ, a, b) == 2
    assert dup_count_complex_roots([1, -1, 0], ZZ, c, d) == 2

    # (z-1)*(-z)
    assert dup_count_complex_roots([-1, 1, 0], ZZ, a, b) == 2
    assert dup_count_complex_roots([-1, 1, 0], ZZ, c, d) == 2

    # (z+1)*(z)
    assert dup_count_complex_roots([1, 1, 0], ZZ, a, b) == 2
    assert dup_count_complex_roots([1, 1, 0], ZZ, c, d) == 1

    # (z+1)*(-z)
    assert dup_count_complex_roots([-1, -1, 0], ZZ, a, b) == 2
    assert dup_count_complex_roots([-1, -1, 0], ZZ, c, d) == 1
示例#8
0
def test_dup_count_complex_roots_2():
    # (z-1)*(z)
    assert dup_count_complex_roots([1,-1,0], ZZ, a, b) == 2
    assert dup_count_complex_roots([1,-1,0], ZZ, c, d) == 2

    # (z-1)*(-z)
    assert dup_count_complex_roots([-1,1,0], ZZ, a, b) == 2
    assert dup_count_complex_roots([-1,1,0], ZZ, c, d) == 2

    # (z+1)*(z)
    assert dup_count_complex_roots([1,1,0], ZZ, a, b) == 2
    assert dup_count_complex_roots([1,1,0], ZZ, c, d) == 1

    # (z+1)*(-z)
    assert dup_count_complex_roots([-1,-1,0], ZZ, a, b) == 2
    assert dup_count_complex_roots([-1,-1,0], ZZ, c, d) == 1
示例#9
0
def test_dup_count_complex_roots_3():
    # (z-1)*(z+1)
    assert dup_count_complex_roots(ZZ.map([1, 0, -1]), ZZ, a, b) == 2
    assert dup_count_complex_roots(ZZ.map([1, 0, -1]), ZZ, c, d) == 1

    # (z-1)*(z+1)*(z)
    assert dup_count_complex_roots(ZZ.map([1, 0, -1, 0]), ZZ, a, b) == 3
    assert dup_count_complex_roots(ZZ.map([1, 0, -1, 0]), ZZ, c, d) == 2

    # (z-1)*(z+1)*(-z)
    assert dup_count_complex_roots(ZZ.map([-1, 0, 1, 0]), ZZ, a, b) == 3
    assert dup_count_complex_roots(ZZ.map([-1, 0, 1, 0]), ZZ, c, d) == 2
示例#10
0
def test_dup_count_complex_roots_3():
    # (z-1)*(z+1)
    assert dup_count_complex_roots(ZZ.map([1, 0, -1]), ZZ, a, b) == 2
    assert dup_count_complex_roots(ZZ.map([1, 0, -1]), ZZ, c, d) == 1

    # (z-1)*(z+1)*(z)
    assert dup_count_complex_roots(ZZ.map([1, 0, -1, 0]), ZZ, a, b) == 3
    assert dup_count_complex_roots(ZZ.map([1, 0, -1, 0]), ZZ, c, d) == 2

    # (z-1)*(z+1)*(-z)
    assert dup_count_complex_roots(ZZ.map([-1, 0, 1, 0]), ZZ, a, b) == 3
    assert dup_count_complex_roots(ZZ.map([-1, 0, 1, 0]), ZZ, c, d) == 2
def test_dup_count_complex_roots_exclude():
    f = [1, 0, 0, 0, -1, 0]  # z*(z-1)*(z+1)*(z-I)*(z+I)

    a, b = (-QQ(1), QQ(0)), (QQ(1), QQ(1))

    assert dup_count_complex_roots(f, ZZ, a, b) == 4

    assert dup_count_complex_roots(f, ZZ, a, b, exclude=['S']) == 3
    assert dup_count_complex_roots(f, ZZ, a, b, exclude=['N']) == 3

    assert dup_count_complex_roots(f, ZZ, a, b, exclude=['S', 'N']) == 2

    assert dup_count_complex_roots(f, ZZ, a, b, exclude=['E']) == 4
    assert dup_count_complex_roots(f, ZZ, a, b, exclude=['W']) == 4

    assert dup_count_complex_roots(f, ZZ, a, b, exclude=['E', 'W']) == 4

    assert dup_count_complex_roots(f, ZZ, a, b, exclude=['N', 'S', 'E',
                                                         'W']) == 2

    assert dup_count_complex_roots(f, ZZ, a, b, exclude=['SW']) == 3
    assert dup_count_complex_roots(f, ZZ, a, b, exclude=['SE']) == 3

    assert dup_count_complex_roots(f, ZZ, a, b, exclude=['SW', 'SE']) == 2
    assert dup_count_complex_roots(f, ZZ, a, b, exclude=['SW', 'SE', 'S']) == 1
    assert dup_count_complex_roots(f, ZZ, a, b, exclude=['SW', 'SE', 'S',
                                                         'N']) == 0

    a, b = (QQ(0), QQ(0)), (QQ(1), QQ(1))

    assert dup_count_complex_roots(f, ZZ, a, b, exclude=True) == 1
示例#12
0
 def count_complex_roots(f, inf=None, sup=None):
     """Return the number of complex roots of ``f`` in ``[inf, sup]``. """
     return dup_count_complex_roots(f.rep, f.dom, inf=inf, sup=sup)
def test_dup_count_complex_roots_7():
    # (z-I-1)*(z+I-1)*(z-I+1)*(z+I+1)
    assert dup_count_complex_roots([1, 0, 0, 0, 4], ZZ, a, b) == 4
    assert dup_count_complex_roots([1, 0, 0, 0, 4], ZZ, c, d) == 1

    # (z-I-1)*(z+I-1)*(z-I+1)*(z+I+1)*(z-2)
    assert dup_count_complex_roots([1, -2, 0, 0, 4, -8], ZZ, a, b) == 4
    assert dup_count_complex_roots([1, -2, 0, 0, 4, -8], ZZ, c, d) == 1

    # (z-I-1)*(z+I-1)*(z-I+1)*(z+I+1)*(z**2-2)
    assert dup_count_complex_roots([1, 0, -2, 0, 4, 0, -8], ZZ, a, b) == 4
    assert dup_count_complex_roots([1, 0, -2, 0, 4, 0, -8], ZZ, c, d) == 1

    # (z-I-1)*(z+I-1)*(z-I+1)*(z+I+1)*(z-1)
    assert dup_count_complex_roots([1, -1, 0, 0, 4, -4], ZZ, a, b) == 5
    assert dup_count_complex_roots([1, -1, 0, 0, 4, -4], ZZ, c, d) == 2

    # (z-I-1)*(z+I-1)*(z-I+1)*(z+I+1)*(z-1)*z
    assert dup_count_complex_roots([1, -1, 0, 0, 4, -4, 0], ZZ, a, b) == 6
    assert dup_count_complex_roots([1, -1, 0, 0, 4, -4, 0], ZZ, c, d) == 3

    # (z-I-1)*(z+I-1)*(z-I+1)*(z+I+1)*(z+1)
    assert dup_count_complex_roots([1, 1, 0, 0, 4, 4], ZZ, a, b) == 5
    assert dup_count_complex_roots([1, 1, 0, 0, 4, 4], ZZ, c, d) == 1

    # (z-I-1)*(z+I-1)*(z-I+1)*(z+I+1)*(z+1)*z
    assert dup_count_complex_roots([1, 1, 0, 0, 4, 4, 0], ZZ, a, b) == 6
    assert dup_count_complex_roots([1, 1, 0, 0, 4, 4, 0], ZZ, c, d) == 2

    # (z-I-1)*(z+I-1)*(z-I+1)*(z+I+1)*(z-1)*(z+1)
    assert dup_count_complex_roots([1, 0, -1, 0, 4, 0, -4], ZZ, a, b) == 6
    assert dup_count_complex_roots([1, 0, -1, 0, 4, 0, -4], ZZ, c, d) == 2

    # (z-I-1)*(z+I-1)*(z-I+1)*(z+I+1)*(z-1)*(z+1)*z
    assert dup_count_complex_roots([1, 0, -1, 0, 4, 0, -4, 0], ZZ, a, b) == 7
    assert dup_count_complex_roots([1, 0, -1, 0, 4, 0, -4, 0], ZZ, c, d) == 3

    # (z-I-1)*(z+I-1)*(z-I+1)*(z+I+1)*(z-1)*(z+1)*(z-I)*(z+I)
    assert dup_count_complex_roots([1, 0, 0, 0, 3, 0, 0, 0, -4], ZZ, a, b) == 8
    assert dup_count_complex_roots([1, 0, 0, 0, 3, 0, 0, 0, -4], ZZ, c, d) == 3
def test_dup_count_complex_roots_6():
    # (z-I-1)*(z+I-1)
    assert dup_count_complex_roots([1, -2, 2], ZZ, a, b) == 2
    assert dup_count_complex_roots([1, -2, 2], ZZ, c, d) == 1

    # (z-I-1)*(z+I-1)*(z-1)
    assert dup_count_complex_roots([1, -3, 4, -2], ZZ, a, b) == 3
    assert dup_count_complex_roots([1, -3, 4, -2], ZZ, c, d) == 2

    # (z-I-1)*(z+I-1)*(z-1)*z
    assert dup_count_complex_roots([1, -3, 4, -2, 0], ZZ, a, b) == 4
    assert dup_count_complex_roots([1, -3, 4, -2, 0], ZZ, c, d) == 3

    # (z-I-1)*(z+I-1)*(z+1)
    assert dup_count_complex_roots([1, -1, 0, 2], ZZ, a, b) == 3
    assert dup_count_complex_roots([1, -1, 0, 2], ZZ, c, d) == 1

    # (z-I-1)*(z+I-1)*(z+1)*z
    assert dup_count_complex_roots([1, -1, 0, 2, 0], ZZ, a, b) == 4
    assert dup_count_complex_roots([1, -1, 0, 2, 0], ZZ, c, d) == 2

    # (z-I-1)*(z+I-1)*(z-1)*(z+1)
    assert dup_count_complex_roots([1, -2, 1, 2, -2], ZZ, a, b) == 4
    assert dup_count_complex_roots([1, -2, 1, 2, -2], ZZ, c, d) == 2

    # (z-I-1)*(z+I-1)*(z-1)*(z+1)*z
    assert dup_count_complex_roots([1, -2, 1, 2, -2, 0], ZZ, a, b) == 5
    assert dup_count_complex_roots([1, -2, 1, 2, -2, 0], ZZ, c, d) == 3
def test_dup_count_complex_roots_5():
    # (z-I+1)*(z+I+1)
    assert dup_count_complex_roots([1, 2, 2], ZZ, a, b) == 2
    assert dup_count_complex_roots([1, 2, 2], ZZ, c, d) == 0

    # (z-I+1)*(z+I+1)*(z-1)
    assert dup_count_complex_roots([1, 1, 0, -2], ZZ, a, b) == 3
    assert dup_count_complex_roots([1, 1, 0, -2], ZZ, c, d) == 1

    # (z-I+1)*(z+I+1)*(z-1)*z
    assert dup_count_complex_roots([1, 1, 0, -2, 0], ZZ, a, b) == 4
    assert dup_count_complex_roots([1, 1, 0, -2, 0], ZZ, c, d) == 2

    # (z-I+1)*(z+I+1)*(z+1)
    assert dup_count_complex_roots([1, 3, 4, 2], ZZ, a, b) == 3
    assert dup_count_complex_roots([1, 3, 4, 2], ZZ, c, d) == 0

    # (z-I+1)*(z+I+1)*(z+1)*z
    assert dup_count_complex_roots([1, 3, 4, 2, 0], ZZ, a, b) == 4
    assert dup_count_complex_roots([1, 3, 4, 2, 0], ZZ, c, d) == 1

    # (z-I+1)*(z+I+1)*(z-1)*(z+1)
    assert dup_count_complex_roots([1, 2, 1, -2, -2], ZZ, a, b) == 4
    assert dup_count_complex_roots([1, 2, 1, -2, -2], ZZ, c, d) == 1

    # (z-I+1)*(z+I+1)*(z-1)*(z+1)*z
    assert dup_count_complex_roots([1, 2, 1, -2, -2, 0], ZZ, a, b) == 5
    assert dup_count_complex_roots([1, 2, 1, -2, -2, 0], ZZ, c, d) == 2
def test_dup_count_complex_roots_4():
    # (z-I)*(z+I)
    assert dup_count_complex_roots([1, 0, 1], ZZ, a, b) == 2
    assert dup_count_complex_roots([1, 0, 1], ZZ, c, d) == 1

    # (z-I)*(z+I)*(z)
    assert dup_count_complex_roots([1, 0, 1, 0], ZZ, a, b) == 3
    assert dup_count_complex_roots([1, 0, 1, 0], ZZ, c, d) == 2

    # (z-I)*(z+I)*(-z)
    assert dup_count_complex_roots([-1, 0, -1, 0], ZZ, a, b) == 3
    assert dup_count_complex_roots([-1, 0, -1, 0], ZZ, c, d) == 2

    # (z-I)*(z+I)*(z-1)
    assert dup_count_complex_roots([1, -1, 1, -1], ZZ, a, b) == 3
    assert dup_count_complex_roots([1, -1, 1, -1], ZZ, c, d) == 2

    # (z-I)*(z+I)*(z-1)*(z)
    assert dup_count_complex_roots([1, -1, 1, -1, 0], ZZ, a, b) == 4
    assert dup_count_complex_roots([1, -1, 1, -1, 0], ZZ, c, d) == 3

    # (z-I)*(z+I)*(z-1)*(-z)
    assert dup_count_complex_roots([-1, 1, -1, 1, 0], ZZ, a, b) == 4
    assert dup_count_complex_roots([-1, 1, -1, 1, 0], ZZ, c, d) == 3

    # (z-I)*(z+I)*(z-1)*(z+1)
    assert dup_count_complex_roots([1, 0, 0, 0, -1], ZZ, a, b) == 4
    assert dup_count_complex_roots([1, 0, 0, 0, -1], ZZ, c, d) == 2

    # (z-I)*(z+I)*(z-1)*(z+1)*(z)
    assert dup_count_complex_roots([1, 0, 0, 0, -1, 0], ZZ, a, b) == 5
    assert dup_count_complex_roots([1, 0, 0, 0, -1, 0], ZZ, c, d) == 3

    # (z-I)*(z+I)*(z-1)*(z+1)*(-z)
    assert dup_count_complex_roots([-1, 0, 0, 0, 1, 0], ZZ, a, b) == 5
    assert dup_count_complex_roots([-1, 0, 0, 0, 1, 0], ZZ, c, d) == 3
示例#17
0
def test_dup_count_complex_roots_4():
    # (z-I)*(z+I)
    assert dup_count_complex_roots([1,0,1], ZZ, a, b) == 2
    assert dup_count_complex_roots([1,0,1], ZZ, c, d) == 1

    # (z-I)*(z+I)*(z)
    assert dup_count_complex_roots([1,0,1,0], ZZ, a, b) == 3
    assert dup_count_complex_roots([1,0,1,0], ZZ, c, d) == 2

    # (z-I)*(z+I)*(-z)
    assert dup_count_complex_roots([-1,0,-1,0], ZZ, a, b) == 3
    assert dup_count_complex_roots([-1,0,-1,0], ZZ, c, d) == 2

    # (z-I)*(z+I)*(z-1)
    assert dup_count_complex_roots([1,-1,1,-1], ZZ, a, b) == 3
    assert dup_count_complex_roots([1,-1,1,-1], ZZ, c, d) == 2

    # (z-I)*(z+I)*(z-1)*(z)
    assert dup_count_complex_roots([1,-1,1,-1,0], ZZ, a, b) == 4
    assert dup_count_complex_roots([1,-1,1,-1,0], ZZ, c, d) == 3

    # (z-I)*(z+I)*(z-1)*(-z)
    assert dup_count_complex_roots([-1,1,-1,1,0], ZZ, a, b) == 4
    assert dup_count_complex_roots([-1,1,-1,1,0], ZZ, c, d) == 3

    # (z-I)*(z+I)*(z-1)*(z+1)
    assert dup_count_complex_roots([1,0,0,0,-1], ZZ, a, b) == 4
    assert dup_count_complex_roots([1,0,0,0,-1], ZZ, c, d) == 2

    # (z-I)*(z+I)*(z-1)*(z+1)*(z)
    assert dup_count_complex_roots([1,0,0,0,-1,0], ZZ, a, b) == 5
    assert dup_count_complex_roots([1,0,0,0,-1,0], ZZ, c, d) == 3

    # (z-I)*(z+I)*(z-1)*(z+1)*(-z)
    assert dup_count_complex_roots([-1,0,0,0,1,0], ZZ, a, b) == 5
    assert dup_count_complex_roots([-1,0,0,0,1,0], ZZ, c, d) == 3
示例#18
0
def test_dup_count_complex_roots_5():
    # (z-I+1)*(z+I+1)
    assert dup_count_complex_roots([1,2,2], ZZ, a, b) == 2
    assert dup_count_complex_roots([1,2,2], ZZ, c, d) == 0

    # (z-I+1)*(z+I+1)*(z-1)
    assert dup_count_complex_roots([1,1,0,-2], ZZ, a, b) == 3
    assert dup_count_complex_roots([1,1,0,-2], ZZ, c, d) == 1

    # (z-I+1)*(z+I+1)*(z-1)*z
    assert dup_count_complex_roots([1,1,0,-2,0], ZZ, a, b) == 4
    assert dup_count_complex_roots([1,1,0,-2,0], ZZ, c, d) == 2

    # (z-I+1)*(z+I+1)*(z+1)
    assert dup_count_complex_roots([1,3,4,2], ZZ, a, b) == 3
    assert dup_count_complex_roots([1,3,4,2], ZZ, c, d) == 0

    # (z-I+1)*(z+I+1)*(z+1)*z
    assert dup_count_complex_roots([1,3,4,2,0], ZZ, a, b) == 4
    assert dup_count_complex_roots([1,3,4,2,0], ZZ, c, d) == 1

    # (z-I+1)*(z+I+1)*(z-1)*(z+1)
    assert dup_count_complex_roots([1,2,1,-2,-2], ZZ, a, b) == 4
    assert dup_count_complex_roots([1,2,1,-2,-2], ZZ, c, d) == 1

    # (z-I+1)*(z+I+1)*(z-1)*(z+1)*z
    assert dup_count_complex_roots([1,2,1,-2,-2,0], ZZ, a, b) == 5
    assert dup_count_complex_roots([1,2,1,-2,-2,0], ZZ, c, d) == 2
示例#19
0
文件: polyclasses.py 项目: fxkr/sympy
 def count_complex_roots(f, inf=None, sup=None):
     """Return the number of complex roots of ``f`` in ``[inf, sup]``. """
     return dup_count_complex_roots(f.rep, f.dom, inf=inf, sup=sup)
示例#20
0
def test_dup_count_complex_roots_exclude():
    f = [1,0,0,0,-1,0] # z*(z-1)*(z+1)*(z-I)*(z+I)

    a, b = (-QQ(1), QQ(0)), (QQ(1), QQ(1))

    assert dup_count_complex_roots(f, ZZ, a, b) == 4

    assert dup_count_complex_roots(f, ZZ, a, b, exclude=['S']) == 3
    assert dup_count_complex_roots(f, ZZ, a, b, exclude=['N']) == 3

    assert dup_count_complex_roots(f, ZZ, a, b, exclude=['S', 'N']) == 2

    assert dup_count_complex_roots(f, ZZ, a, b, exclude=['E']) == 4
    assert dup_count_complex_roots(f, ZZ, a, b, exclude=['W']) == 4

    assert dup_count_complex_roots(f, ZZ, a, b, exclude=['E', 'W']) == 4

    assert dup_count_complex_roots(f, ZZ, a, b, exclude=['N', 'S', 'E', 'W']) == 2

    assert dup_count_complex_roots(f, ZZ, a, b, exclude=['SW']) == 3
    assert dup_count_complex_roots(f, ZZ, a, b, exclude=['SE']) == 3

    assert dup_count_complex_roots(f, ZZ, a, b, exclude=['SW', 'SE']) == 2
    assert dup_count_complex_roots(f, ZZ, a, b, exclude=['SW', 'SE', 'S']) == 1
    assert dup_count_complex_roots(f, ZZ, a, b, exclude=['SW', 'SE', 'S', 'N']) == 0

    a, b = (QQ(0), QQ(0)), (QQ(1), QQ(1))

    assert dup_count_complex_roots(f, ZZ, a, b, exclude=True) == 1
示例#21
0
def test_dup_count_complex_roots_6():
    # (z-I-1)*(z+I-1)
    assert dup_count_complex_roots([1,-2,2], ZZ, a, b) == 2
    assert dup_count_complex_roots([1,-2,2], ZZ, c, d) == 1

    # (z-I-1)*(z+I-1)*(z-1)
    assert dup_count_complex_roots([1,-3,4,-2], ZZ, a, b) == 3
    assert dup_count_complex_roots([1,-3,4,-2], ZZ, c, d) == 2

    # (z-I-1)*(z+I-1)*(z-1)*z
    assert dup_count_complex_roots([1,-3,4,-2,0], ZZ, a, b) == 4
    assert dup_count_complex_roots([1,-3,4,-2,0], ZZ, c, d) == 3

    # (z-I-1)*(z+I-1)*(z+1)
    assert dup_count_complex_roots([1,-1,0,2], ZZ, a, b) == 3
    assert dup_count_complex_roots([1,-1,0,2], ZZ, c, d) == 1

    # (z-I-1)*(z+I-1)*(z+1)*z
    assert dup_count_complex_roots([1,-1,0,2,0], ZZ, a, b) == 4
    assert dup_count_complex_roots([1,-1,0,2,0], ZZ, c, d) == 2

    # (z-I-1)*(z+I-1)*(z-1)*(z+1)
    assert dup_count_complex_roots([1,-2,1,2,-2], ZZ, a, b) == 4
    assert dup_count_complex_roots([1,-2,1,2,-2], ZZ, c, d) == 2

    # (z-I-1)*(z+I-1)*(z-1)*(z+1)*z
    assert dup_count_complex_roots([1,-2,1,2,-2,0], ZZ, a, b) == 5
    assert dup_count_complex_roots([1,-2,1,2,-2,0], ZZ, c, d) == 3
示例#22
0
def test_dup_count_complex_roots_7():
    # (z-I-1)*(z+I-1)*(z-I+1)*(z+I+1)
    assert dup_count_complex_roots([1,0,0,0,4], ZZ, a, b) == 4
    assert dup_count_complex_roots([1,0,0,0,4], ZZ, c, d) == 1

    # (z-I-1)*(z+I-1)*(z-I+1)*(z+I+1)*(z-2)
    assert dup_count_complex_roots([1,-2,0,0,4,-8], ZZ, a, b) == 4
    assert dup_count_complex_roots([1,-2,0,0,4,-8], ZZ, c, d) == 1

    # (z-I-1)*(z+I-1)*(z-I+1)*(z+I+1)*(z**2-2)
    assert dup_count_complex_roots([1,0,-2,0,4,0,-8], ZZ, a, b) == 4
    assert dup_count_complex_roots([1,0,-2,0,4,0,-8], ZZ, c, d) == 1

    # (z-I-1)*(z+I-1)*(z-I+1)*(z+I+1)*(z-1)
    assert dup_count_complex_roots([1,-1,0,0,4,-4], ZZ, a, b) == 5
    assert dup_count_complex_roots([1,-1,0,0,4,-4], ZZ, c, d) == 2

    # (z-I-1)*(z+I-1)*(z-I+1)*(z+I+1)*(z-1)*z
    assert dup_count_complex_roots([1,-1,0,0,4,-4,0], ZZ, a, b) == 6
    assert dup_count_complex_roots([1,-1,0,0,4,-4,0], ZZ, c, d) == 3

    # (z-I-1)*(z+I-1)*(z-I+1)*(z+I+1)*(z+1)
    assert dup_count_complex_roots([1,1,0,0,4,4], ZZ, a, b) == 5
    assert dup_count_complex_roots([1,1,0,0,4,4], ZZ, c, d) == 1

    # (z-I-1)*(z+I-1)*(z-I+1)*(z+I+1)*(z+1)*z
    assert dup_count_complex_roots([1,1,0,0,4,4,0], ZZ, a, b) == 6
    assert dup_count_complex_roots([1,1,0,0,4,4,0], ZZ, c, d) == 2

    # (z-I-1)*(z+I-1)*(z-I+1)*(z+I+1)*(z-1)*(z+1)
    assert dup_count_complex_roots([1,0,-1,0,4,0,-4], ZZ, a, b) == 6
    assert dup_count_complex_roots([1,0,-1,0,4,0,-4], ZZ, c, d) == 2

    # (z-I-1)*(z+I-1)*(z-I+1)*(z+I+1)*(z-1)*(z+1)*z
    assert dup_count_complex_roots([1,0,-1,0,4,0,-4,0], ZZ, a, b) == 7
    assert dup_count_complex_roots([1,0,-1,0,4,0,-4,0], ZZ, c, d) == 3

    # (z-I-1)*(z+I-1)*(z-I+1)*(z+I+1)*(z-1)*(z+1)*(z-I)*(z+I)
    assert dup_count_complex_roots([1,0,0,0,3,0,0,0,-4], ZZ, a, b) == 8
    assert dup_count_complex_roots([1,0,0,0,3,0,0,0,-4], ZZ, c, d) == 3