| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- from __future__ import division
- from test import test
- from fractions import Fraction
- from polynomial import *
- from modp import *
- Mod5 = IntegersModP(5)
- Mod11 = IntegersModP(11)
- polysOverQ = polynomialsOver(Fraction).factory
- polysMod5 = polynomialsOver(Mod5).factory
- polysMod11 = polynomialsOver(Mod11).factory
- for p in [polysOverQ, polysMod5, polysMod11]:
- # equality
- test(True, p([]) == p([]))
- test(True, p([1,2]) == p([1,2]))
- test(True, p([1,2,0]) == p([1,2,0,0]))
- # addition
- test(p([1,2,3]), p([1,0,3]) + p([0,2]))
- test(p([1,2,3]), p([1,2,3]) + p([]))
- test(p([5,2,3]), p([4]) + p([1,2,3]))
- test(p([1,2]), p([1,2,3]) + p([0,0,-3]))
- # subtraction
- test(p([1,-2,3]), p([1,0,3]) - p([0,2]))
- test(p([1,2,3]), p([1,2,3]) - p([]))
- test(p([-1,-2,-3]), p([]) - p([1,2,3]))
- # multiplication
- test(p([1,2,1]), p([1,1]) * p([1,1]))
- test(p([2,5,5,3]), p([2,3]) * p([1,1,1]))
- test(p([0,7,49]), p([0,1,7]) * p([7]))
- # division
- test(p([1,1,1,1,1,1]), p([-1,0,0,0,0,0,1]) / p([-1,1]))
- test(p([-1,1,-1,1,-1,1]), p([1,0,0,0,0,0,1]) / p([1,1]))
- test(p([]), p([]) / p([1,1]))
- test(p([1,1]), p([1,1]) / p([1]))
- test(p([1,1]), p([2,2]) / p([2]))
- # modulus
- test(p([]), p([1,7,49]) % p([7]))
- test(p([-7]), p([-3,10,-5,3]) % p([1,3]))
- test(polysOverQ([Fraction(1,7), 1, 7]), polysOverQ([1,7,49]) / polysOverQ([7]))
- test(polysMod5([1 / Mod5(7), 1, 7]), polysMod5([1,7,49]) / polysMod5([7]))
- test(polysMod11([1 / Mod11(7), 1, 7]), polysMod11([1,7,49]) / polysMod11([7]))
|