########################################################
# #
# This is test script for 'polynomial-factor-int.rb' #
# #
########################################################
require "algebra/polynomial-factor-int.rb"
require "algebra/polynomial"
require "algebra/polynomial-factor"
require "algebra/residue-class-ring"
require "algebra/rational"
#include Algebra
def test(f)
print "#{f}\n => "
a = f.factorize
sw = (f == a.pi)
puts "#{a.inspect}, #{sw}"
raise "Test Failed" unless sw
end
PQ = Algebra.Polynomial(Rational, "y")
y = PQ.var
P = Algebra.Polynomial(Integer, "x")
x = P.var
h = x**12 - 12*x**10 - 4*x**9 + 96*x**8 - 442*x**6 + 672*x**5 + 1572*x**4 - 1412*x**3 - 2544*x**2 - 1560*x + 4225
fs = [
PQ.unity,
y,
54*x**3 + 57*x**2 + 28*x + 15, #(9*x**2+2*x+3)*(6*x+5)
(x**2+x+1)**2*(x+1)**3,
(x**2+x+1)**2,
(x**2+x+1)*(x+1)**3,
(x**2+x+1)*(x+1)*(x+2),
(x**2+x+1)*(x+1),
(x**2+x+1),
(x+1)**3,
(3*x + 1)*(2*x + 5)*3,
(x**3 + 1)**3,
# (x**8+x**6+x**5+x**4+x**3+x**2+1)*(x**2+x+1)**3,
(y**2 + 2*y + Rational(3, 4))*(y + Rational(1, 3)),
# h
]
# fs[-1..-1].each do |f|
fs.each do |f|
test(f)
end
syntax highlighted by Code2HTML, v. 0.9.1