UNPKG

algebrite

Version:

Computer Algebra System in Coffeescript

93 lines (61 loc) 1.42 kB
test_expand = -> run_test [ # general cases "expand(1/(x+1)/(x+2))", "1/(x+1)-1/(x+2)", "expand((2x^3-x+2)/(x^2-2x+1))", "4+2*x+5/(x-1)+3/(x^2-2*x+1)", "expand(1/x^2/(x-1))", "-1/(x^2)-1/x+1/(x-1)", "p=5s+2", "", "q=(s+1)*(s+2)^2", "", "expand(p/q)", "-3/(s+1)+3/(s+2)+8/(s^2+4*s+4)", # ensure denominators are expanded (result seems preferable that way) "q=(x-1)*(x-2)^3", "", "expand(1/q)", "1/(x^3-6*x^2+12*x-8)+1/(x-2)-1/(x-1)-1/(x^2-4*x+4)", # fractional poles "expand(1/(x+1/2)/(x+1/3))", "-12/(2*x+1)+18/(3*x+1)", # expand tensor "f=1/(x+1)/(x+2)", "", "g=1/(x+1)-1/(x+2)", "", "expand([[f,f],[f,f]])-[[g,g],[g,g]]", "[[0,0],[0,0]]", # denominator normalized? "expand(1/(1+1/x))", "1-1/(x+1)", # poles at zero "expand(1/x/(x+1))", "1/x-1/(x+1)", "expand(1/x^2/(x+1))", #"x^(-2)-1/x+1/(x+1)", "1/x^2-1/x+1/(x+1)", # other corner cases "expand(1/x)", "1/x", "expand(1/x^2)", #"x^(-2)", "1/x^2", "expand(1/(x^2-4x+4))", "1/(x^2-4*x+4)", # cases where nothing can be done "expand(sin(x))", "sin(x)", "expand(x)", "x", "expand(1/sin(x))", # unclear why the extra parens are added but no biggie "1/(sin(x))", # note that expand isn't needed to execute the # multiplications, expand does something # different. "expand(expand((sin(x)+1)^2))", "1+sin(x)^2+2*sin(x)", ]