algebrite
Version:
Computer Algebra System in Coffeescript
134 lines (89 loc) • 2.01 kB
text/coffeescript
test_factor_number = ->
run_test [
"factor(0)",
"0",
"factor(1)",
"1",
"factor(2)",
"2",
"factor(3)",
"3",
"factor(4)",
"2^2",
"factor(5)",
"5",
"factor(6)",
"2*3",
"factor(7)",
"7",
"factor(8)",
"2^3",
"factor(9)",
"3^2",
"factor(10)",
"2*5",
"factor(100!)",
"2^97*3^48*5^24*7^16*11^9*13^7*17^5*19^5*23^4*29^3*31^3*37^2*41^2*43^2*47^2*53*59*61*67*71*73*79*83*89*97",
"factor(2*(2^30-35))",
"2*1073741789",
# x is the 10,000th prime
# Prime factors greater than x^2 are found using the Pollard rho method
"a=104729",
"",
"factor(2*(a^2+6))",
"2*10968163447",
"factor((a^2+6)^2)",
"10968163447*10968163447", # FIXME should be 10968163447^2
"factor((a^2+6)*(a^2+60))",
"10968163501*10968163447", # FIXME sort order
"f=(x+1)*(x+2)*(y+3)*(y+4)",
"",
"factor(f,x,y)",
"(x+1)*(x+2)*(y+3)*(y+4)",
"factor(f,y,x)",
"(x+1)*(x+2)*(y+3)*(y+4)",
"f=(x+1)*(x+1)*(y+2)*(y+2)",
"",
"factor(f,x,y)",
"(x+1)^2*(y+2)^2",
"factor(f,y,x)",
"(x+1)^2*(y+2)^2",
"factor((x+1)*(-x^2+x+1),x)",
"-(x^2-x-1)*(x+1)",
"factor((x+1)*(x^2-x-1),x)",
"(x^2-x-1)*(x+1)",
"factor(5*x^3-5)",
"5*(x-1)*(x^2+x+1)",
"factor((x+1)*(2x+4))",
"2*(x+1)*(x+2)",
"factor(x^8 - 1)",
"(x-1)*(x+1)*(x^2+1)*(x^4+1)",
"factor((x-1)*(x+1)*(x^2+1)*(2*x^4+2))",
"2*(x-1)*(x+1)*(x^2+1)*(x^4+1)",
"factor((x-1)*(x+1)*(2*x^2+2)*(x^4+1))",
"2*(x-1)*(x+1)*(x^2+1)*(x^4+1)",
"factor(x^1 - 1)",
"x-1",
"factor(x^2 - 1)",
"(x-1)*(x+1)",
"factor(x^3 - 1)",
"(x-1)*(x^2+x+1)",
"factor(x^4 - 1)",
"(x-1)*(x+1)*(x^2+1)",
"factor(x^5 - 1)",
"(x-1)*(x^4+x^3+x^2+x+1)",
"factor(x^6 - 1)",
"(x-1)*(x+1)*(x^2+x+1)*(x^2+1)",
"factor(x^7 - 1)",
"(x-1)*(x^6+x^5+x^4+x^3+x^2+x+1)",
# irreducible in Z
"factor(1+x+x^2+x^3+x^4)",
"x^4+x^3+x^2+x+1",
"factor(x^4 - 1*x^3 + 4*x^2 + 3*x + 5)",
"(x^2+x+1)*(x^2-2*x+5)",
# clean up
"a = quote(a)",
"",
"f = quote(f)",
"",
]