"Testing roots"

clear

check(roots(1) == nil)
check(roots(x^2 + 1) == nil)

check(roots(125 x^3 - 1) == 1/5)

p = (x - 1) (x + 2)
check(roots(p) == (-2,1))
check(roots(p,x) == (-2,1))

p = t (t - 1/2)
check(roots(p,t) == (0,1/2))

check(roots(x) == 0)
check(roots(x^2) == 0)
check(roots(x^3) == 0)

check(roots(x (x - 1)) == (0,1))
check(roots(x^2 (x - 1)) == (0,1))
check(roots(x^3 (x - 1)) == (0,1))

check(roots((x + 1) x) == (-1,0))
check(roots((x + 1) x^2) == (-1,0))
check(roots((x + 1) x^3) == (-1,0))

check(roots((x + 1) x (x - 1)) == (-1,0,1))
check(roots((x + 1) x^2 (x - 1)) == (-1,0,1))
check(roots((x + 1) x^3 (x - 1)) == (-1,0,1))

p = 2 x^2 + 7 x + 6
check(roots(p) == (-2,-3/2))

p = (x + 2) (x + 3/2)
check(roots(p) == (-2,-3/2))
check(roots(p x) == (-2,-3/2,0))
check(roots(p x^2) == (-2,-3/2,0))

p = ((-5) x - (6)) ((5) x - (7)) ((-9) x - (-1))
r = (-6/5,1/9,7/5)
check(roots(p) == r)
p = ((7) x - (-1)) ((-8) x - (8)) ((-7) x - (-1))
r = (-8/8,-1/7,1/7)
check(roots(p) == r)
p = ((-5) x - (7)) ((-9) x - (8)) ((-6) x - (-9))
r = (-7/5,-8/9,9/6)
check(roots(p) == r)
p = ((-7) x - (-9)) ((8) x - (2)) ((4) x - (-4))
r = (-4/4,2/8,9/7)
check(roots(p) == r)
p = ((8) x - (1)) ((-9) x - (1)) ((-7) x - (-5))
r = (-1/9,1/8,5/7)
check(roots(p) == r)
p = ((-8) x - (7)) ((6) x - (-6)) ((7) x - (-1))
r = (-6/6,-7/8,-1/7)
check(roots(p) == r)
p = ((-3) x - (7)) ((1) x - (-4)) ((6) x - (7))
r = (-4/1,-7/3,7/6)
check(roots(p) == r)
p = ((-8) x - (3)) ((-4) x - (3)) ((3) x - (-2))
r = (-3/4,-2/3,-3/8)
check(roots(p) == r)
p = ((4) x - (-6)) ((-6) x - (4)) ((-8) x - (9))
r = (-6/4,-9/8,-4/6)
check(roots(p) == r)
p = ((-1) x - (7)) ((8) x - (6)) ((2) x - (-8))
r = (-7/1,-8/2,6/8)
check(roots(p) == r)
p = ((5) x - (-2)) ((1) x - (-7)) ((-9) x - (-6))
r = (-7/1,-2/5,6/9)
check(roots(p) == r)
p = ((2) x - (-6)) ((9) x - (9)) ((-7) x - (-4))
r = (-6/2,4/7,9/9)
check(roots(p) == r)
p = ((8) x - (2)) ((1) x - (3)) ((1) x - (7))
r = (2/8,3/1,7/1)
check(roots(p) == r)
p = ((8) x - (9)) ((8) x - (2)) ((-9) x - (-8))
r = (2/8,8/9,9/8)
check(roots(p) == r)
p = ((-5) x - (-9)) ((-3) x - (-2)) ((5) x - (6))
r = (2/3,6/5,9/5)
check(roots(p) == r)
p = ((-2) x - (7)) ((-8) x - (7)) ((-4) x - (9))
r = (-7/2,-9/4,-7/8)
check(roots(p) == r)
p = ((-7) x - (-8)) ((-6) x - (-4)) ((9) x - (-9))
r = (-9/9,4/6,8/7)
check(roots(p) == r)
p = ((-1) x - (-8)) ((5) x - (6)) ((-4) x - (-5))
r = (6/5,5/4,8/1)
check(roots(p) == r)
p = ((-4) x - (5)) ((6) x - (-9)) ((-2) x - (-2))
r = (-9/6,-5/4,2/2)
check(roots(p) == r)
p = ((-6) x - (4)) ((1) x - (6)) ((-1) x - (7))
r = (-7/1,-4/6,6/1)
check(roots(p) == r)
p = ((-7) x - (-1)) ((-1) x - (4)) ((-6) x - (3))
r = (-4/1,-3/6,1/7)
check(roots(p) == r)
p = ((-8) x - (2)) ((-7) x - (-4)) ((9) x - (-6))
r = (-6/9,-2/8,4/7)
check(roots(p) == r)
p = ((4) x - (9)) ((8) x - (-5)) ((-6) x - (-5))
r = (-5/8,5/6,9/4)
check(roots(p) == r)
p = ((-6) x - (-4)) ((-4) x - (-6)) ((3) x - (7))
r = (4/6,6/4,7/3)
check(roots(p) == r)
p = ((9) x - (8)) ((7) x - (-3)) ((8) x - (-7))
r = (-7/8,-3/7,8/9)
check(roots(p) == r)
p = ((3) x - (3)) ((-6) x - (6)) ((-7) x - (-3))
r = (-6/6,3/7,3/3)
check(roots(p) == r)
p = ((5) x - (-5)) ((1) x - (-7)) ((1) x - (1))
r = (-7/1,-5/5,1/1)
check(roots(p) == r)
p = ((2) x - (-5)) ((3) x - (1)) ((8) x - (7))
r = (-5/2,1/3,7/8)
check(roots(p) == r)
p = ((-2) x - (3)) ((9) x - (1)) ((-4) x - (-1))
r = (-3/2,1/9,1/4)
check(roots(p) == r)
p = ((6) x - (-8)) ((-8) x - (-4)) ((-7) x - (-1))
r = (-8/6,1/7,4/8)
check(roots(p) == r)
p = ((-1) x - (-3)) ((1) x - (6)) ((-1) x - (7))
r = (-7/1,3/1,6/1)
check(roots(p) == r)
p = ((-4) x - (-8)) ((6) x - (4)) ((6) x - (2))
r = (2/6,4/6,8/4)
check(roots(p) == r)
p = ((-6) x - (9)) ((2) x - (-9)) ((-1) x - (2))
r = (-9/2,-2/1,-9/6)
check(roots(p) == r)
p = ((-7) x - (-6)) ((4) x - (-4)) ((-7) x - (9))
r = (-9/7,-4/4,6/7)
check(roots(p) == r)
p = ((4) x - (-4)) ((7) x - (-9)) ((-9) x - (-4))
r = (-9/7,-4/4,4/9)
check(roots(p) == r)
p = ((9) x - (5)) ((-6) x - (-6)) ((-6) x - (-5))
r = (5/9,5/6,6/6)
check(roots(p) == r)
p = ((5) x - (-7)) ((-5) x - (4)) ((-6) x - (-1))
r = (-7/5,-4/5,1/6)
check(roots(p) == r)
p = ((3) x - (6)) ((-9) x - (6)) ((-9) x - (-3))
r = (-6/9,3/9,6/3)
check(roots(p) == r)
p = ((-9) x - (-3)) ((3) x - (7)) ((-3) x - (-9))
r = (3/9,7/3,9/3)
check(roots(p) == r)
p = ((6) x - (-2)) ((-5) x - (8)) ((5) x - (7))
r = (-8/5,-2/6,7/5)
check(roots(p) == r)
p = ((4) x - (-8)) ((-7) x - (-6)) ((1) x - (-6))
r = (-6/1,-8/4,6/7)
check(roots(p) == r)
p = ((-5) x - (-6)) ((4) x - (-6)) ((6) x - (-8))
r = (-6/4,-8/6,6/5)
check(roots(p) == r)
p = ((-5) x - (-8)) ((-9) x - (2)) ((-6) x - (-1))
r = (-2/9,1/6,8/5)
check(roots(p) == r)
p = ((5) x - (-7)) ((-3) x - (4)) ((6) x - (-6))
r = (-7/5,-4/3,-6/6)
check(roots(p) == r)
p = ((3) x - (4)) ((7) x - (-2)) ((4) x - (7))
r = (-2/7,4/3,7/4)
check(roots(p) == r)
p = ((2) x - (-8)) ((-9) x - (9)) ((1) x - (-8))
r = (-8/1,-8/2,-9/9)
check(roots(p) == r)
p = ((-1) x - (7)) ((5) x - (-4)) ((-6) x - (8))
r = (-7/1,-8/6,-4/5)
check(roots(p) == r)
p = ((4) x - (-5)) ((8) x - (4)) ((-9) x - (-9))
r = (-5/4,4/8,9/9)
check(roots(p) == r)
p = ((-4) x - (-4)) ((1) x - (-5)) ((-9) x - (-2))
r = (-5/1,2/9,4/4)
check(roots(p) == r)
p = ((-4) x - (-9)) ((6) x - (9)) ((-3) x - (3))
r = (-3/3,9/6,9/4)
check(roots(p) == r)
p = ((3) x - (-2)) ((-4) x - (3)) ((4) x - (-4))
r = (-4/4,-3/4,-2/3)
check(roots(p) == r)
p = ((-2) x - (9)) ((-7) x - (-9)) ((1) x - (-8))
r = (-8/1,-9/2,9/7)
check(roots(p) == r)
p = ((-9) x - (-3)) ((-3) x - (-3)) ((6) x - (1))
r = (1/6,3/9,3/3)
check(roots(p) == r)
p = ((2) x - (-4)) ((-8) x - (8)) ((-6) x - (2))
r = (-4/2,-8/8,-2/6)
check(roots(p) == r)
p = ((-5) x - (7)) ((-8) x - (7)) ((-3) x - (1))
r = (-7/5,-7/8,-1/3)
check(roots(p) == r)
p = ((-8) x - (2)) ((2) x - (-4)) ((8) x - (-8))
r = (-4/2,-8/8,-2/8)
check(roots(p) == r)
p = ((3) x - (2)) ((6) x - (-8)) ((9) x - (5))
r = (-8/6,5/9,2/3)
check(roots(p) == r)
p = ((-9) x - (1)) ((-8) x - (9)) ((-1) x - (-2))
r = (-9/8,-1/9,2/1)
check(roots(p) == r)
p = ((-3) x - (2)) ((-2) x - (3)) ((-5) x - (-9))
r = (-3/2,-2/3,9/5)
check(roots(p) == r)
p = ((-5) x - (-1)) ((-7) x - (7)) ((6) x - (-1))
r = (-7/7,-1/6,1/5)
check(roots(p) == r)
p = ((4) x - (8)) ((-8) x - (-1)) ((7) x - (6))
r = (1/8,6/7,8/4)
check(roots(p) == r)
p = ((-3) x - (3)) ((2) x - (-3)) ((-1) x - (6))
r = (-6/1,-3/2,-3/3)
check(roots(p) == r)
p = ((5) x - (-1)) ((6) x - (9)) ((2) x - (2))
r = (-1/5,2/2,9/6)
check(roots(p) == r)
p = ((7) x - (2)) ((-1) x - (-9)) ((-4) x - (-1))
r = (1/4,2/7,9/1)
check(roots(p) == r)
p = ((7) x - (-4)) ((-5) x - (3)) ((-1) x - (9))
r = (-9/1,-3/5,-4/7)
check(roots(p) == r)
p = ((-7) x - (2)) ((-1) x - (7)) ((-6) x - (6))
r = (-7/1,-6/6,-2/7)
check(roots(p) == r)
p = ((7) x - (6)) ((8) x - (9)) ((1) x - (-1))
r = (-1/1,6/7,9/8)
check(roots(p) == r)
p = ((-2) x - (4)) ((-2) x - (-3)) ((-8) x - (-2))
r = (-4/2,2/8,3/2)
check(roots(p) == r)
p = ((-1) x - (3)) ((5) x - (8)) ((2) x - (4))
r = (-3/1,8/5,4/2)
check(roots(p) == r)
p = ((2) x - (-8)) ((7) x - (-7)) ((-1) x - (-2))
r = (-8/2,-7/7,2/1)
check(roots(p) == r)
p = ((6) x - (8)) ((-6) x - (-7)) ((9) x - (-7))
r = (-7/9,7/6,8/6)
check(roots(p) == r)
p = ((5) x - (-3)) ((5) x - (-7)) ((2) x - (-8))
r = (-8/2,-7/5,-3/5)
check(roots(p) == r)
p = ((9) x - (-7)) ((-3) x - (-1)) ((6) x - (-8))
r = (-8/6,-7/9,1/3)
check(roots(p) == r)
p = ((6) x - (5)) ((-1) x - (9)) ((3) x - (-7))
r = (-9/1,-7/3,5/6)
check(roots(p) == r)
p = ((2) x - (3)) ((-9) x - (-1)) ((9) x - (9))
r = (1/9,9/9,3/2)
check(roots(p) == r)
p = ((-4) x - (-4)) ((3) x - (-6)) ((-6) x - (5))
r = (-6/3,-5/6,4/4)
check(roots(p) == r)
p = ((-8) x - (-2)) ((-5) x - (-3)) ((8) x - (-1))
r = (-1/8,2/8,3/5)
check(roots(p) == r)
p = ((3) x - (2)) ((-4) x - (2)) ((-9) x - (-8))
r = (-2/4,2/3,8/9)
check(roots(p) == r)
p = ((-5) x - (1)) ((-4) x - (1)) ((-6) x - (1))
r = (-1/4,-1/5,-1/6)
check(roots(p) == r)
p = ((1) x - (-7)) ((-1) x - (6)) ((-2) x - (4))
r = (-7/1,-6/1,-4/2)
check(roots(p) == r)
p = ((2) x - (-4)) ((2) x - (9)) ((-6) x - (-2))
r = (-4/2,2/6,9/2)
check(roots(p) == r)
p = ((2) x - (1)) ((6) x - (5)) ((9) x - (-3))
r = (-3/9,1/2,5/6)
check(roots(p) == r)
p = ((-7) x - (-8)) ((-7) x - (6)) ((7) x - (-1))
r = (-6/7,-1/7,8/7)
check(roots(p) == r)
p = ((8) x - (7)) ((-3) x - (7)) ((-1) x - (-8))
r = (-7/3,7/8,8/1)
check(roots(p) == r)
p = ((-1) x - (6)) ((5) x - (2)) ((3) x - (-4))
r = (-6/1,-4/3,2/5)
check(roots(p) == r)
p = ((8) x - (-9)) ((3) x - (1)) ((8) x - (9))
r = (-9/8,1/3,9/8)
check(roots(p) == r)
p = ((-7) x - (4)) ((8) x - (-6)) ((7) x - (3))
r = (-6/8,-4/7,3/7)
check(roots(p) == r)
p = ((-4) x - (2)) ((9) x - (4)) ((2) x - (8))
r = (-2/4,4/9,8/2)
check(roots(p) == r)
p = ((1) x - (-9)) ((-1) x - (-2)) ((-8) x - (-9))
r = (-9/1,9/8,2/1)
check(roots(p) == r)
p = ((-2) x - (-4)) ((-7) x - (8)) ((2) x - (-7))
r = (-7/2,-8/7,4/2)
check(roots(p) == r)
p = ((8) x - (-2)) ((2) x - (9)) ((4) x - (6))
r = (-2/8,6/4,9/2)
check(roots(p) == r)
p = ((7) x - (-8)) ((-4) x - (-6)) ((8) x - (9))
r = (-8/7,9/8,6/4)
check(roots(p) == r)
p = ((6) x - (1)) ((-5) x - (-2)) ((5) x - (-8))
r = (-8/5,1/6,2/5)
check(roots(p) == r)
p = ((8) x - (-5)) ((-2) x - (8)) ((2) x - (6))
r = (-8/2,-5/8,6/2)
check(roots(p) == r)
p = ((8) x - (-2)) ((-6) x - (-3)) ((2) x - (-4))
r = (-4/2,-2/8,3/6)
check(roots(p) == r)
p = ((-6) x - (-6)) ((9) x - (1)) ((-7) x - (-2))
r = (1/9,2/7,6/6)
check(roots(p) == r)
p = ((-1) x - (-3)) ((2) x - (-8)) ((6) x - (5))
r = (-8/2,5/6,3/1)
check(roots(p) == r)
p = ((-8) x - (5)) ((4) x - (3)) ((7) x - (-9))
r = (-9/7,-5/8,3/4)
check(roots(p) == r)
p = ((-5) x - (-5)) ((-7) x - (2)) ((3) x - (-7))
r = (-7/3,-2/7,5/5)
check(roots(p) == r)
p = ((2) x - (1)) ((3) x - (-9)) ((3) x - (6))
r = (-9/3,1/2,6/3)
check(roots(p) == r)
