text:
@testset "1.1.1.4 (a+b x)^m (c+d x)^n (e+f x)^p (g+h x)^q" begin
    (A, B, a, b, c, d, e, f, g, h, i, m, n, p, x, ) = @variables A B a b c d e f g h i m n p x

    #= ::Package:: =#

    #= ::Title:: =#
    #=Integrands*of*the*form*(a+b*x)^m*(c+d*x)^n*(e+f*x)^p*(g+h*x)^q=#

    #= ::Section::Closed:: =#
    #=Integrands*of*the*form*(a+b*x)^m*(c+d*x)^n*(e+f*x)^p*(g+h*x)^q=#

    @test_int [(a+b*x)*(c+d*x)*(e+f*x)*(g+h*x), x, 2, a*c*e*g*x + (1/2)*(b*c*e*g + a*(d*e*g + c*f*g + c*e*h))*x^2 + (1/3)*(b*(d*e*g + c*f*g + c*e*h) + a*(d*f*g + d*e*h + c*f*h))*x^3 + (1/4)*(a*d*f*h + b*(d*f*g + d*e*h + c*f*h))*x^4 + (1/5)*b*d*f*h*x^5]
    @test_int [(a+b*x)*(c+d*x)*(e+f*x)/(g+h*x), x, 2, ((b*(d*g - c*h)*(f*g - e*h) - a*h*(d*f*g - d*e*h - c*f*h))*x)/h^3 + ((a*d*f*h - b*(d*f*g - d*e*h - c*f*h))*x^2)/(2*h^2) + (b*d*f*x^3)/(3*h) - ((b*g - a*h)*(d*g - c*h)*(f*g - e*h)*log(g + h*x))/h^4]
    @test_int [(a+b*x)*(c+d*x)/((e+f*x)*(g+h*x)), x, 2, (b*d*x)/(f*h) + ((b*e - a*f)*(d*e - c*f)*log(e + f*x))/(f^2*(f*g - e*h)) - ((b*g - a*h)*(d*g - c*h)*log(g + h*x))/(h^2*(f*g - e*h))]
    @test_int [(a+b*x)/((c+d*x)*(e+f*x)*(g+h*x)), x, 2, -(((b*c - a*d)*log(c + d*x))/((d*e - c*f)*(d*g - c*h))) + ((b*e - a*f)*log(e + f*x))/((d*e - c*f)*(f*g - e*h)) - ((b*g - a*h)*log(g + h*x))/((d*g - c*h)*(f*g - e*h))]
    @test_int [1/((a+b*x)*(c+d*x)*(e+f*x)*(g+h*x)), x, 2, (b^2*log(a + b*x))/((b*c - a*d)*(b*e - a*f)*(b*g - a*h)) - (d^2*log(c + d*x))/((b*c - a*d)*(d*e - c*f)*(d*g - c*h)) + (f^2*log(e + f*x))/((b*e - a*f)*(d*e - c*f)*(f*g - e*h)) - (h^2*log(g + h*x))/((b*g - a*h)*(d*g - c*h)*(f*g - e*h))]

    @test_int [x/((1 + x)*(2 + x)*(3 + x)), x, 2, (-(1/2))*log(1 + x) + 2*log(2 + x) - (3/2)*log(3 + x)]

    @test_int [(-x^2 + x^3)/((-6 + x)*(3 + 5*x)^3), x, 3, -(12/(1375*(3 + 5*x)^2)) + 201/(15125*(3 + 5*x)) + (20*log(6 - x))/3993 + (1493*log(3 + 5*x))/499125]

    #= ::Section::Closed:: =#
    #=Integrands*of*the*form*(a+b*x)^m*(c+d*x)^n*(e+f*x)^p*(g+h*x)^(q/2)=#

    #= ::Subsection::Closed:: =#
    #=Integrands*of*the*form*x^m*(a+b*x)^n*(c+d*x)^p*(e+f*x)^(q/2)=#

    @test_int [(a + b*x)^3*sqrt(c + d*x)*(e + f*x)/x, x, 6, 2*a^3*e*sqrt(c + d*x) + (2*(3*b*d*e - 2*b*c*f + 2*a*d*f)*(a + b*x)^2*(c + d*x)^(3/2))/(21*d^2) + (2*f*(a + b*x)^3*(c + d*x)^(3/2))/(9*d) + (2*(c + d*x)^(3/2)*(2*(20*a^3*d^3*f + 3*a^2*b*d^2*(45*d*e - 16*c*f) - 9*a*b^2*c*d*(7*d*e - 4*c*f) + 4*b^3*c^2*(3*d*e - 2*c*f)) + 3*b*d*(21*a*b*d^2*e - 4*(b*c - a*d)*(3*b*d*e - 2*b*c*f + 2*a*d*f))*x))/(315*d^4) - 2*a^3*sqrt(c)*e*atanh(sqrt(c + d*x)/sqrt(c))]
    @test_int [(a + b*x)^2*sqrt(c + d*x)*(e + f*x)/x, x, 5, 2*a^2*e*sqrt(c + d*x) + (2*f*(a + b*x)^2*(c + d*x)^(3/2))/(7*d) + (2*(c + d*x)^(3/2)*(2*(10*a^2*d^2*f - b^2*c*(7*d*e - 4*c*f) + 7*a*b*d*(5*d*e - 2*c*f)) + 3*b*d*(7*b*d*e - 4*b*c*f + 4*a*d*f)*x))/(105*d^3) - 2*a^2*sqrt(c)*e*atanh(sqrt(c + d*x)/sqrt(c))]
    @test_int [(a + b*x)^1*sqrt(c + d*x)*(e + f*x)/x, x, 4, 2*a*e*sqrt(c + d*x) - (2*(c + d*x)^(3/2)*(2*b*c*f - 5*d*(b*e + a*f) - 3*b*d*f*x))/(15*d^2) - 2*a*sqrt(c)*e*atanh(sqrt(c + d*x)/sqrt(c))]
    @test_int [(a + b*x)^0*sqrt(c + d*x)*(e + f*x)/x, x, 4, 2*e*sqrt(c + d*x) + (2*f*(c + d*x)^(3/2))/(3*d) - 2*sqrt(c)*e*atanh(sqrt(c + d*x)/sqrt(c))]
    @test_int [1/(a + b*x)^1*sqrt(c + d*x)*(e + f*x)/x, x, 6, (2*f*sqrt(c + d*x))/b - (2*sqrt(c)*e*atanh(sqrt(c + d*x)/sqrt(c)))/a + (2*sqrt(b*c - a*d)*(b*e - a*f)*atanh((sqrt(b)*sqrt(c + d*x))/sqrt(b*c - a*d)))/(a*b^(3/2))]
    @test_int [1/(a + b*x)^2*sqrt(c + d*x)*(e + f*x)/x, x, 6, ((b*e - a*f)*sqrt(c + d*x))/(a*b*(a + b*x)) - (2*sqrt(c)*e*atanh(sqrt(c + d*x)/sqrt(c)))/a^2 + ((2*b^2*c*e - a*d*(b*e + a*f))*atanh((sqrt(b)*sqrt(c + d*x))/sqrt(b*c - a*d)))/(a^2*b^(3/2)*sqrt(b*c - a*d))]
    @test_int [1/(a + b*x)^3*sqrt(c + d*x)*(e + f*x)/x, x, 7, ((b*e - a*f)*sqrt(c + d*x))/(2*a*b*(a + b*x)^2) + ((4*b^2*c*e - 3*a*b*d*e - a^2*d*f)*sqrt(c + d*x))/(4*a^2*b*(b*c - a*d)*(a + b*x)) - (2*sqrt(c)*e*atanh(sqrt(c + d*x)/sqrt(c)))/a^3 + ((8*b^3*c^2*e - 12*a*b^2*c*d*e + 3*a^2*b*d^2*e + a^3*d^2*f)*atanh((sqrt(b)*sqrt(c + d*x))/sqrt(b*c - a*d)))/(4*a^3*b^(3/2)*(b*c - a*d)^(3/2))]

    @test_int [sqrt(a + b*x)*(c + d*x)^3*(e + f*x)/x, x, 6, 2*c^3*e*sqrt(a + b*x) + (2*(3*b*d*e + 2*b*c*f - 2*a*d*f)*(a + b*x)^(3/2)*(c + d*x)^2)/(21*b^2) + (2*f*(a + b*x)^(3/2)*(c + d*x)^3)/(9*b) - (2*(a + b*x)^(3/2)*(2*(8*a^3*d^3*f - 12*a^2*b*d^2*(d*e + 3*c*f) - 5*b^3*c^2*(27*d*e + 4*c*f) + 3*a*b^2*c*d*(21*d*e + 16*c*f)) - 3*b*d*(21*b^2*c*d*e + 4*(b*c - a*d)*(3*b*d*e + 2*b*c*f - 2*a*d*f))*x))/(315*b^4) - 2*sqrt(a)*c^3*e*atanh(sqrt(a + b*x)/sqrt(a))]
    @test_int [sqrt(a + b*x)*(c + d*x)^2*(e + f*x)/x, x, 5, 2*c^2*e*sqrt(a + b*x) + (2*f*(a + b*x)^(3/2)*(c + d*x)^2)/(7*b) + (2*(a + b*x)^(3/2)*(2*(4*a^2*d^2*f - 7*a*b*d*(d*e + 2*c*f) + 5*b^2*c*(7*d*e + 2*c*f)) + 3*b*d*(7*b*d*e + 4*b*c*f - 4*a*d*f)*x))/(105*b^3) - 2*sqrt(a)*c^2*e*atanh(sqrt(a + b*x)/sqrt(a))]
    @test_int [sqrt(a + b*x)*(c + d*x)^1*(e + f*x)/x, x, 4, 2*c*e*sqrt(a + b*x) - (2*(a + b*x)^(3/2)*(2*a*d*f - 5*b*(d*e + c*f) - 3*b*d*f*x))/(15*b^2) - 2*sqrt(a)*c*e*atanh(sqrt(a + b*x)/sqrt(a))]
    @test_int [sqrt(a + b*x)*(c + d*x)^0*(e + f*x)/x, x, 4, 2*e*sqrt(a + b*x) + (2*f*(a + b*x)^(3/2))/(3*b) - 2*sqrt(a)*e*atanh(sqrt(a + b*x)/sqrt(a))]
    @test_int [sqrt(a + b*x)/(c + d*x)^1*(e + f*x)/x, x, 6, (2*f*sqrt(a + b*x))/d + (2*sqrt(b*c - a*d)*(d*e - c*f)*atan((sqrt(d)*sqrt(a + b*x))/sqrt(b*c - a*d)))/(c*d^(3/2)) - (2*sqrt(a)*e*atanh(sqrt(a + b*x)/sqrt(a)))/c]
    @test_int [sqrt(a + b*x)/(c + d*x)^2*(e + f*x)/x, x, 6, ((d*e - c*f)*sqrt(a + b*x))/(c*d*(c + d*x)) - ((2*a*d^2*e - b*c*(d*e + c*f))*atan((sqrt(d)*sqrt(a + b*x))/sqrt(b*c - a*d)))/(c^2*d^(3/2)*sqrt(b*c - a*d)) - (2*sqrt(a)*e*atanh(sqrt(a + b*x)/sqrt(a)))/c^2]
    @test_int [sqrt(a + b*x)/(c + d*x)^3*(e + f*x)/x, x, 7, ((d*e - c*f)*sqrt(a + b*x))/(2*c*d*(c + d*x)^2) - ((4*a*d^2*e - b*c*(3*d*e + c*f))*sqrt(a + b*x))/(4*c^2*d*(b*c - a*d)*(c + d*x)) - ((12*a*b*c*d^2*e - 8*a^2*d^3*e - b^2*c^2*(3*d*e + c*f))*atan((sqrt(d)*sqrt(a + b*x))/sqrt(b*c - a*d)))/(4*c^3*d^(3/2)*(b*c - a*d)^(3/2)) - (2*sqrt(a)*e*atanh(sqrt(a + b*x)/sqrt(a)))/c^3]

    #= ::Section::Closed:: =#
    #=Integrands*of*the*form*(a+b*x)^m*(c+d*x)^n*(e+f*x)^(p/2)*(g+h*x)^(q/2)=#

    #= ::Subsection::Closed:: =#
    #=Integrands*of*the*form*x^m*(a+b*x)^n*(c+d*x)^(p/2)*(e+f*x)^(q/2)=#

    @test_int [x^3*(1 + a*x)/(sqrt(a*x)*sqrt(1 - a*x)), x, 8, -((75*sqrt(a*x)*sqrt(1 - a*x))/(64*a^4)) - (25*(a*x)^(3/2)*sqrt(1 - a*x))/(32*a^4) - (5*(a*x)^(5/2)*sqrt(1 - a*x))/(8*a^4) - ((a*x)^(7/2)*sqrt(1 - a*x))/(4*a^4) - (75*asin(1 - 2*a*x))/(128*a^4)]
    @test_int [x^2*(1 + a*x)/(sqrt(a*x)*sqrt(1 - a*x)), x, 7, -((11*sqrt(a*x)*sqrt(1 - a*x))/(8*a^3)) - (11*(a*x)^(3/2)*sqrt(1 - a*x))/(12*a^3) - ((a*x)^(5/2)*sqrt(1 - a*x))/(3*a^3) - (11*asin(1 - 2*a*x))/(16*a^3)]
    @test_int [x^1*(1 + a*x)/(sqrt(a*x)*sqrt(1 - a*x)), x, 6, -((7*sqrt(a*x)*sqrt(1 - a*x))/(4*a^2)) - ((a*x)^(3/2)*sqrt(1 - a*x))/(2*a^2) - (7*asin(1 - 2*a*x))/(8*a^2)]
    @test_int [x^0*(1 + a*x)/(sqrt(a*x)*sqrt(1 - a*x)), x, 4, -((sqrt(a*x)*sqrt(1 - a*x))/a) - (3*asin(1 - 2*a*x))/(2*a)]
    @test_int [(1 + a*x)/(x^1*sqrt(a*x)*sqrt(1 - a*x)), x, 5, -((2*sqrt(1 - a*x))/sqrt(a*x)) - asin(1 - 2*a*x)]
    @test_int [(1 + a*x)/(x^2*sqrt(a*x)*sqrt(1 - a*x)), x, 3, -((2*a*sqrt(1 - a*x))/(3*(a*x)^(3/2))) - (10*a*sqrt(1 - a*x))/(3*sqrt(a*x))]
    @test_int [(1 + a*x)/(x^3*sqrt(a*x)*sqrt(1 - a*x)), x, 4, -((2*a^2*sqrt(1 - a*x))/(5*(a*x)^(5/2))) - (6*a^2*sqrt(1 - a*x))/(5*(a*x)^(3/2)) - (12*a^2*sqrt(1 - a*x))/(5*sqrt(a*x))]
    @test_int [(1 + a*x)/(x^4*sqrt(a*x)*sqrt(1 - a*x)), x, 5, -((2*a^3*sqrt(1 - a*x))/(7*(a*x)^(7/2))) - (26*a^3*sqrt(1 - a*x))/(35*(a*x)^(5/2)) - (104*a^3*sqrt(1 - a*x))/(105*(a*x)^(3/2)) - (208*a^3*sqrt(1 - a*x))/(105*sqrt(a*x))]
    @test_int [(1 + a*x)/(x^5*sqrt(a*x)*sqrt(1 - a*x)), x, 6, -((2*a^4*sqrt(1 - a*x))/(9*(a*x)^(9/2))) - (34*a^4*sqrt(1 - a*x))/(63*(a*x)^(7/2)) - (68*a^4*sqrt(1 - a*x))/(105*(a*x)^(5/2)) - (272*a^4*sqrt(1 - a*x))/(315*(a*x)^(3/2)) - (544*a^4*sqrt(1 - a*x))/(315*sqrt(a*x))]

    #= Integrands*are*equal. =#
    @test_int [(-1 + 2*a*x)/(x^2*sqrt(-1 + x)*sqrt(1 + x)), x, 4, -((sqrt(-1 + x)*sqrt(1 + x))/x) + 2*a*atan(sqrt(-1 + x)*sqrt(1 + x))]
    @test_int [(a^2*x^2 - (1 - a*x)^2)/(x^2*sqrt(-1 + x)*sqrt(1 + x)), x, 5, -((sqrt(-1 + x)*sqrt(1 + x))/x) + 2*a*atan(sqrt(-1 + x)*sqrt(1 + x))]

    #= ::Section::Closed:: =#
    #=Integrands*of*the*form*(a+b*x)^m*(c+d*x)^(n/2)*(e+f*x)^(p/2)*(g+h*x)^(q/2)=#

    @test_int [(A + B*x)/(sqrt(a + b*x)*sqrt(c + (b*(c - 1)*x)/a)*sqrt(e + (b*(e - 1)*x)/a)), x, 3, -((2*a^(3/2)*B*Elliptic.E(asin((sqrt(1 - c)*sqrt(a + b*x))/sqrt(a)), (1 - e)/(1 - c)))/(b^2*sqrt(1 - c)*(1 - e))) + (2*sqrt(a)*(a*B*e + A*(b - b*e))*Elliptic.F(asin((sqrt(1 - c)*sqrt(a + b*x))/sqrt(a)), (1 - e)/(1 - c)))/(b^2*sqrt(1 - c)*(1 - e))]
    @test_int [(A + B*x)/(sqrt(a + b*x)*sqrt(c + d*x)*sqrt(e + (b*(e - 1)*x)/a)), x, 5, -((2*a*B*sqrt((-b)*c + a*d)*sqrt((b*(c + d*x))/(b*c - a*d))*Elliptic.E(asin((sqrt(d)*sqrt(a + b*x))/sqrt((-b)*c + a*d)), -(((b*c - a*d)*(1 - e))/(a*d))))/(b^2*sqrt(d)*(1 - e)*sqrt(c + d*x))) + (2*sqrt(a)*(a*B*e + A*(b - b*e))*sqrt((b*(c + d*x))/(b*c - a*d))*Elliptic.F(asin((sqrt(1 - e)*sqrt(a + b*x))/sqrt(a)), -((a*d)/((b*c - a*d)*(1 - e)))))/(b^2*(1 - e)^(3/2)*sqrt(c + d*x))]

    #= ::Subsection::Closed:: =#
    #=p>0 & q>0=#

    #= ::Subsubsection::Closed:: =#
    #=n>0=#

    @test_int [(7 + 5*x)^3*sqrt(2 - 3*x)*sqrt(1 + 4*x)*sqrt(-5 + 2*x), x, 10, -((1182926269*sqrt(2 - 3*x)*sqrt(-5 + 2*x)*sqrt(1 + 4*x))/1603800) - (12243139*sqrt(2 - 3*x)*sqrt(-5 + 2*x)*sqrt(1 + 4*x)*(7 + 5*x))/356400 - (17561*sqrt(2 - 3*x)*sqrt(-5 + 2*x)*sqrt(1 + 4*x)*(7 + 5*x)^2)/8910 - (427*sqrt(2 - 3*x)*sqrt(-5 + 2*x)*sqrt(1 + 4*x)*(7 + 5*x)^3)/2970 + (2/55)*sqrt(2 - 3*x)*sqrt(-5 + 2*x)*sqrt(1 + 4*x)*(7 + 5*x)^4 - (6489123157*sqrt(11)*sqrt(-5 + 2*x)*Elliptic.E(asin((2*sqrt(2 - 3*x))/sqrt(11)), -(1/2)))/(699840*sqrt(5 - 2*x)) + (522167393*sqrt(11/6)*sqrt(5 - 2*x)*Elliptic.F(asin(sqrt(3/11)*sqrt(1 + 4*x)), 1/3))/(23328*sqrt(-5 + 2*x))]
    @test_int [(7 + 5*x)^2*sqrt(2 - 3*x)*sqrt(1 + 4*x)*sqrt(-5 + 2*x), x, 9, -((5256763*sqrt(2 - 3*x)*sqrt(-5 + 2*x)*sqrt(1 + 4*x))/97200) - (8141*sqrt(2 - 3*x)*sqrt(-5 + 2*x)*sqrt(1 + 4*x)*(7 + 5*x))/2700 - (61/270)*sqrt(2 - 3*x)*sqrt(-5 + 2*x)*sqrt(1 + 4*x)*(7 + 5*x)^2 + (2/45)*sqrt(2 - 3*x)*sqrt(-5 + 2*x)*sqrt(1 + 4*x)*(7 + 5*x)^3 - (17746949*sqrt(11)*sqrt(-5 + 2*x)*Elliptic.E(asin((2*sqrt(2 - 3*x))/sqrt(11)), -(1/2)))/(29160*sqrt(5 - 2*x)) + (5592499*sqrt(11/6)*sqrt(5 - 2*x)*Elliptic.F(asin(sqrt(3/11)*sqrt(1 + 4*x)), 1/3))/(3888*sqrt(-5 + 2*x))]
    @test_int [(7 + 5*x)^1*sqrt(2 - 3*x)*sqrt(1 + 4*x)*sqrt(-5 + 2*x), x, 8, -((20911*sqrt(2 - 3*x)*sqrt(-5 + 2*x)*sqrt(1 + 4*x))/3780) + (136/105)*sqrt(2 - 3*x)*sqrt(-5 + 2*x)*(1 + 4*x)^(3/2) + (5/28)*sqrt(2 - 3*x)*(-5 + 2*x)^(3/2)*(1 + 4*x)^(3/2) - (954811*sqrt(11)*sqrt(-5 + 2*x)*Elliptic.E(asin((2*sqrt(2 - 3*x))/sqrt(11)), -(1/2)))/(22680*sqrt(5 - 2*x)) + (72479*sqrt(11/6)*sqrt(5 - 2*x)*Elliptic.F(asin(sqrt(3/11)*sqrt(1 + 4*x)), 1/3))/(756*sqrt(-5 + 2*x))]
    @test_int [(7 + 5*x)^0*sqrt(2 - 3*x)*sqrt(1 + 4*x)*sqrt(-5 + 2*x), x, 7, (-(22/45))*sqrt(2 - 3*x)*sqrt(-5 + 2*x)*sqrt(1 + 4*x) + (1/10)*sqrt(2 - 3*x)*sqrt(-5 + 2*x)*(1 + 4*x)^(3/2) - (847*sqrt(11)*sqrt(-5 + 2*x)*Elliptic.E(asin((2*sqrt(2 - 3*x))/sqrt(11)), -(1/2)))/(270*sqrt(5 - 2*x)) + (121*sqrt(11/6)*sqrt(5 - 2*x)*Elliptic.F(asin(sqrt(3/11)*sqrt(1 + 4*x)), 1/3))/(18*sqrt(-5 + 2*x))]
    @test_int [sqrt(2 - 3*x)*sqrt(1 + 4*x)*sqrt(-5 + 2*x)/(7 + 5*x)^1, x, 10, (2/15)*sqrt(2 - 3*x)*sqrt(-5 + 2*x)*sqrt(1 + 4*x) - (427*sqrt(11)*sqrt(-5 + 2*x)*Elliptic.E(asin((2*sqrt(2 - 3*x))/sqrt(11)), -(1/2)))/(225*sqrt(5 - 2*x)) - (1253*sqrt(2/33)*sqrt(5 - 2*x)*Elliptic.F(asin(sqrt(3/11)*sqrt(1 + 4*x)), 1/3))/(375*sqrt(-5 + 2*x)) - (2691*sqrt(5 - 2*x)*Elliptic.Pi(55/124, asin((2*sqrt(2 - 3*x))/sqrt(11)), -(1/2)))/(125*sqrt(11)*sqrt(-5 + 2*x))]
    @test_int [sqrt(2 - 3*x)*sqrt(1 + 4*x)*sqrt(-5 + 2*x)/(7 + 5*x)^2, x, 10, -((sqrt(2 - 3*x)*sqrt(-5 + 2*x)*sqrt(1 + 4*x))/(5*(7 + 5*x))) + (6*sqrt(11)*sqrt(-5 + 2*x)*Elliptic.E(asin((2*sqrt(2 - 3*x))/sqrt(11)), -(1/2)))/(25*sqrt(5 - 2*x)) + (152*sqrt(2/33)*sqrt(5 - 2*x)*Elliptic.F(asin(sqrt(3/11)*sqrt(1 + 4*x)), 1/3))/(125*sqrt(-5 + 2*x)) + (26859*sqrt(5 - 2*x)*Elliptic.Pi(55/124, asin((2*sqrt(2 - 3*x))/sqrt(11)), -(1/2)))/(7750*sqrt(11)*sqrt(-5 + 2*x))]
    @test_int [sqrt(2 - 3*x)*sqrt(1 + 4*x)*sqrt(-5 + 2*x)/(7 + 5*x)^3, x, 11, -((sqrt(2 - 3*x)*sqrt(-5 + 2*x)*sqrt(1 + 4*x))/(10*(7 + 5*x)^2)) + (8953*sqrt(2 - 3*x)*sqrt(-5 + 2*x)*sqrt(1 + 4*x))/(556140*(7 + 5*x)) - (8953*sqrt(11)*sqrt(-5 + 2*x)*Elliptic.E(asin((2*sqrt(2 - 3*x))/sqrt(11)), -(1/2)))/(1390350*sqrt(5 - 2*x)) + (397*sqrt(3/22)*sqrt(5 - 2*x)*Elliptic.F(asin(sqrt(3/11)*sqrt(1 + 4*x)), 1/3))/(89125*sqrt(-5 + 2*x)) - (14832503*sqrt(5 - 2*x)*Elliptic.Pi(55/124, asin((2*sqrt(2 - 3*x))/sqrt(11)), -(1/2)))/(287339000*sqrt(11)*sqrt(-5 + 2*x))]
    @test_int [sqrt(2 - 3*x)*sqrt(1 + 4*x)*sqrt(-5 + 2*x)/(7 + 5*x)^4, x, 12, -((sqrt(2 - 3*x)*sqrt(-5 + 2*x)*sqrt(1 + 4*x))/(15*(7 + 5*x)^3)) + (8953*sqrt(2 - 3*x)*sqrt(-5 + 2*x)*sqrt(1 + 4*x))/(1668420*(7 + 5*x)^2) + (16830401*sqrt(2 - 3*x)*sqrt(-5 + 2*x)*sqrt(1 + 4*x))/(30929169960*(7 + 5*x)) - (16830401*sqrt(11)*sqrt(-5 + 2*x)*Elliptic.E(asin((2*sqrt(2 - 3*x))/sqrt(11)), -(1/2)))/(77322924900*sqrt(5 - 2*x)) + (24957247*sqrt(5 - 2*x)*Elliptic.F(asin(sqrt(3/11)*sqrt(1 + 4*x)), 1/3))/(4956597750*sqrt(66)*sqrt(-5 + 2*x)) + (15664616449*sqrt(5 - 2*x)*Elliptic.Pi(55/124, asin((2*sqrt(2 - 3*x))/sqrt(11)), -(1/2)))/(15980071146000*sqrt(11)*sqrt(-5 + 2*x))]

    @test_int [sqrt(c + d*x)*sqrt(e + f*x)*sqrt(g + h*x)/(a + b*x), x, 12, (2*sqrt(c + d*x)*sqrt(e + f*x)*sqrt(g + h*x))/(3*b) - (2*sqrt((-d)*e + c*f)*(3*a*d*f*h - b*(d*f*g + d*e*h + c*f*h))*sqrt((d*(e + f*x))/(d*e - c*f))*sqrt(g + h*x)*Elliptic.E(asin((sqrt(f)*sqrt(c + d*x))/sqrt((-d)*e + c*f)), ((d*e - c*f)*h)/(f*(d*g - c*h))))/(3*b^2*d*sqrt(f)*h*sqrt(e + f*x)*sqrt((d*(g + h*x))/(d*g - c*h))) + (2*sqrt((-d)*e + c*f)*(3*a^2*d*f*h^2 - 3*a*b*(d*e + c*f)*h^2 - b^2*(d*g*(f*g - e*h) - c*h*(f*g + 2*e*h)))*sqrt((d*(e + f*x))/(d*e - c*f))*sqrt((d*(g + h*x))/(d*g - c*h))*Elliptic.F(asin((sqrt(f)*sqrt(c + d*x))/sqrt((-d)*e + c*f)), ((d*e - c*f)*h)/(f*(d*g - c*h))))/(3*b^3*d*sqrt(f)*h*sqrt(e + f*x)*sqrt(g + h*x)) - (2*(b*e - a*f)*sqrt((-d)*e + c*f)*(b*g - a*h)*sqrt((d*(e + f*x))/(d*e - c*f))*sqrt((d*(g + h*x))/(d*g - c*h))*Elliptic.Pi(-((b*(d*e - c*f))/((b*c - a*d)*f)), asin((sqrt(f)*sqrt(c + d*x))/sqrt((-d)*e + c*f)), ((d*e - c*f)*h)/(f*(d*g - c*h))))/(b^3*sqrt(f)*sqrt(e + f*x)*sqrt(g + h*x))]

    #= ::Subsubsection::Closed:: =#
    #=n<0=#

    @test_int [(7 + 5*x)^3*sqrt(2 - 3*x)*sqrt(1 + 4*x)/sqrt(-5 + 2*x), x, 9, (46134551*sqrt(2 - 3*x)*sqrt(-5 + 2*x)*sqrt(1 + 4*x))/38880 + (26291/540)*sqrt(2 - 3*x)*sqrt(-5 + 2*x)*sqrt(1 + 4*x)*(7 + 5*x) + (1679/756)*sqrt(2 - 3*x)*sqrt(-5 + 2*x)*sqrt(1 + 4*x)*(7 + 5*x)^2 + (1/9)*sqrt(2 - 3*x)*sqrt(-5 + 2*x)*sqrt(1 + 4*x)*(7 + 5*x)^3 + (2629157597*sqrt(11)*sqrt(-5 + 2*x)*Elliptic.E(asin((2*sqrt(2 - 3*x))/sqrt(11)), -(1/2)))/(163296*sqrt(5 - 2*x)) - (2161804579*sqrt(11/6)*sqrt(5 - 2*x)*Elliptic.F(asin(sqrt(3/11)*sqrt(1 + 4*x)), 1/3))/(54432*sqrt(-5 + 2*x))]
    @test_int [(7 + 5*x)^2*sqrt(2 - 3*x)*sqrt(1 + 4*x)/sqrt(-5 + 2*x), x, 8, (73207*sqrt(2 - 3*x)*sqrt(-5 + 2*x)*sqrt(1 + 4*x))/1080 + (173/60)*sqrt(2 - 3*x)*sqrt(-5 + 2*x)*sqrt(1 + 4*x)*(7 + 5*x) + (1/7)*sqrt(2 - 3*x)*sqrt(-5 + 2*x)*sqrt(1 + 4*x)*(7 + 5*x)^2 + (8198333*sqrt(11)*sqrt(-5 + 2*x)*Elliptic.E(asin((2*sqrt(2 - 3*x))/sqrt(11)), -(1/2)))/(9072*sqrt(5 - 2*x)) - (1679161*sqrt(11/6)*sqrt(5 - 2*x)*Elliptic.F(asin(sqrt(3/11)*sqrt(1 + 4*x)), 1/3))/(756*sqrt(-5 + 2*x))]
    @test_int [(7 + 5*x)^1*sqrt(2 - 3*x)*sqrt(1 + 4*x)/sqrt(-5 + 2*x), x, 7, (95/18)*sqrt(2 - 3*x)*sqrt(-5 + 2*x)*sqrt(1 + 4*x) + (1/4)*sqrt(2 - 3*x)*sqrt(-5 + 2*x)*(1 + 4*x)^(3/2) + (1397*sqrt(11)*sqrt(-5 + 2*x)*Elliptic.E(asin((2*sqrt(2 - 3*x))/sqrt(11)), -(1/2)))/(27*sqrt(5 - 2*x)) - (4543*sqrt(11/6)*sqrt(5 - 2*x)*Elliptic.F(asin(sqrt(3/11)*sqrt(1 + 4*x)), 1/3))/(36*sqrt(-5 + 2*x))]
    @test_int [(7 + 5*x)^0*sqrt(2 - 3*x)*sqrt(1 + 4*x)/sqrt(-5 + 2*x), x, 6, (1/3)*sqrt(2 - 3*x)*sqrt(-5 + 2*x)*sqrt(1 + 4*x) + (55*sqrt(11)*sqrt(-5 + 2*x)*Elliptic.E(asin((2*sqrt(2 - 3*x))/sqrt(11)), -(1/2)))/(18*sqrt(5 - 2*x)) - (11*sqrt(22/3)*sqrt(5 - 2*x)*Elliptic.F(asin(sqrt(3/11)*sqrt(1 + 4*x)), 1/3))/(3*sqrt(-5 + 2*x))]
    @test_int [sqrt(2 - 3*x)*sqrt(1 + 4*x)/((7 + 5*x)^1*sqrt(-5 + 2*x)), x, 9, (2*sqrt(11)*sqrt(-5 + 2*x)*Elliptic.E(asin((2*sqrt(2 - 3*x))/sqrt(11)), -(1/2)))/(5*sqrt(5 - 2*x)) - (41*sqrt(2/33)*sqrt(5 - 2*x)*Elliptic.F(asin(sqrt(3/11)*sqrt(1 + 4*x)), 1/3))/(25*sqrt(-5 + 2*x)) + (69*sqrt(5 - 2*x)*Elliptic.Pi(55/124, asin((2*sqrt(2 - 3*x))/sqrt(11)), -(1/2)))/(25*sqrt(11)*sqrt(-5 + 2*x))]
    @test_int [sqrt(2 - 3*x)*sqrt(1 + 4*x)/((7 + 5*x)^2*sqrt(-5 + 2*x)), x, 10, (sqrt(2 - 3*x)*sqrt(-5 + 2*x)*sqrt(1 + 4*x))/(39*(7 + 5*x)) - (2*sqrt(11)*sqrt(-5 + 2*x)*Elliptic.E(asin((2*sqrt(2 - 3*x))/sqrt(11)), -(1/2)))/(195*sqrt(5 - 2*x)) - (2*sqrt(6/11)*sqrt(5 - 2*x)*Elliptic.F(asin(sqrt(3/11)*sqrt(1 + 4*x)), 1/3))/(25*sqrt(-5 + 2*x)) - (6101*sqrt(5 - 2*x)*Elliptic.Pi(55/124, asin((2*sqrt(2 - 3*x))/sqrt(11)), -(1/2)))/(20150*sqrt(11)*sqrt(-5 + 2*x))]
    @test_int [sqrt(2 - 3*x)*sqrt(1 + 4*x)/((7 + 5*x)^3*sqrt(-5 + 2*x)), x, 11, (sqrt(2 - 3*x)*sqrt(-5 + 2*x)*sqrt(1 + 4*x))/(78*(7 + 5*x)^2) - (361*sqrt(2 - 3*x)*sqrt(-5 + 2*x)*sqrt(1 + 4*x))/(481988*(7 + 5*x)) + (361*sqrt(11)*sqrt(-5 + 2*x)*Elliptic.E(asin((2*sqrt(2 - 3*x))/sqrt(11)), -(1/2)))/(1204970*sqrt(5 - 2*x)) - (6101*sqrt(5 - 2*x)*Elliptic.F(asin(sqrt(3/11)*sqrt(1 + 4*x)), 1/3))/(231725*sqrt(66)*sqrt(-5 + 2*x)) - (6655867*sqrt(5 - 2*x)*Elliptic.Pi(55/124, asin((2*sqrt(2 - 3*x))/sqrt(11)), -(1/2)))/(747081400*sqrt(11)*sqrt(-5 + 2*x))]

    #= ::Subsection::Closed:: =#
    #=p<0 & q<0=#

    #= ::Subsubsection::Closed:: =#
    #=n>0=#

    @test_int [(7 + 5*x)^3*sqrt(2 - 3*x)/(sqrt(1 + 4*x)*sqrt(-5 + 2*x)), x, 8, (110743/864)*sqrt(2 - 3*x)*sqrt(-5 + 2*x)*sqrt(1 + 4*x) + (121/24)*sqrt(2 - 3*x)*sqrt(-5 + 2*x)*sqrt(1 + 4*x)*(7 + 5*x) + (5/28)*sqrt(2 - 3*x)*sqrt(-5 + 2*x)*sqrt(1 + 4*x)*(7 + 5*x)^2 + (15629623*sqrt(11)*sqrt(-5 + 2*x)*Elliptic.E(asin((2*sqrt(2 - 3*x))/sqrt(11)), -(1/2)))/(9072*sqrt(5 - 2*x)) - (25260049*sqrt(11/6)*sqrt(5 - 2*x)*Elliptic.F(asin(sqrt(3/11)*sqrt(1 + 4*x)), 1/3))/(6048*sqrt(-5 + 2*x))]
    @test_int [(7 + 5*x)^2*sqrt(2 - 3*x)/(sqrt(1 + 4*x)*sqrt(-5 + 2*x)), x, 7, (68/9)*sqrt(2 - 3*x)*sqrt(-5 + 2*x)*sqrt(1 + 4*x) + (1/4)*sqrt(2 - 3*x)*sqrt(-5 + 2*x)*sqrt(1 + 4*x)*(7 + 5*x) + (44569*sqrt(11)*sqrt(-5 + 2*x)*Elliptic.E(asin((2*sqrt(2 - 3*x))/sqrt(11)), -(1/2)))/(432*sqrt(5 - 2*x)) - (17533*sqrt(11/6)*sqrt(5 - 2*x)*Elliptic.F(asin(sqrt(3/11)*sqrt(1 + 4*x)), 1/3))/(72*sqrt(-5 + 2*x))]
    @test_int [(7 + 5*x)^1*sqrt(2 - 3*x)/(sqrt(1 + 4*x)*sqrt(-5 + 2*x)), x, 6, (5/12)*sqrt(2 - 3*x)*sqrt(-5 + 2*x)*sqrt(1 + 4*x) + (241*sqrt(11)*sqrt(-5 + 2*x)*Elliptic.E(asin((2*sqrt(2 - 3*x))/sqrt(11)), -(1/2)))/(36*sqrt(5 - 2*x)) - (179*sqrt(11/6)*sqrt(5 - 2*x)*Elliptic.F(asin(sqrt(3/11)*sqrt(1 + 4*x)), 1/3))/(12*sqrt(-5 + 2*x))]
    @test_int [(7 + 5*x)^0*sqrt(2 - 3*x)/(sqrt(1 + 4*x)*sqrt(-5 + 2*x)), x, 2, (sqrt(11/2)*sqrt(5 - 2*x)*Elliptic.E(asin(sqrt(1 + 4*x)/sqrt(11)), 3))/(2*sqrt(-5 + 2*x))]
    @test_int [sqrt(2 - 3*x)/((7 + 5*x)^1*sqrt(1 + 4*x)*sqrt(-5 + 2*x)), x, 6, -((sqrt(6/11)*sqrt(5 - 2*x)*Elliptic.F(asin(sqrt(3/11)*sqrt(1 + 4*x)), 1/3))/(5*sqrt(-5 + 2*x))) - (3*sqrt(5 - 2*x)*Elliptic.Pi(55/124, asin((2*sqrt(2 - 3*x))/sqrt(11)), -(1/2)))/(5*sqrt(11)*sqrt(-5 + 2*x))]
    @test_int [sqrt(2 - 3*x)/((7 + 5*x)^2*sqrt(1 + 4*x)*sqrt(-5 + 2*x)), x, 10, -((5*sqrt(2 - 3*x)*sqrt(-5 + 2*x)*sqrt(1 + 4*x))/(897*(7 + 5*x))) + (2*sqrt(11)*sqrt(-5 + 2*x)*Elliptic.E(asin((2*sqrt(2 - 3*x))/sqrt(11)), -(1/2)))/(897*sqrt(5 - 2*x)) - (2*sqrt(6/11)*sqrt(5 - 2*x)*Elliptic.F(asin(sqrt(3/11)*sqrt(1 + 4*x)), 1/3))/(115*sqrt(-5 + 2*x)) - (3571*sqrt(5 - 2*x)*Elliptic.Pi(55/124, asin((2*sqrt(2 - 3*x))/sqrt(11)), -(1/2)))/(92690*sqrt(11)*sqrt(-5 + 2*x))]
    @test_int [sqrt(2 - 3*x)/((7 + 5*x)^3*sqrt(1 + 4*x)*sqrt(-5 + 2*x)), x, 11, -((5*sqrt(2 - 3*x)*sqrt(-5 + 2*x)*sqrt(1 + 4*x))/(1794*(7 + 5*x)^2)) - (26825*sqrt(2 - 3*x)*sqrt(-5 + 2*x)*sqrt(1 + 4*x))/(33257172*(7 + 5*x)) + (5365*sqrt(11)*sqrt(-5 + 2*x)*Elliptic.E(asin((2*sqrt(2 - 3*x))/sqrt(11)), -(1/2)))/(16628586*sqrt(5 - 2*x)) - (13243*sqrt(5 - 2*x)*Elliptic.F(asin(sqrt(3/11)*sqrt(1 + 4*x)), 1/3))/(1065935*sqrt(66)*sqrt(-5 + 2*x)) - (16369941*sqrt(5 - 2*x)*Elliptic.Pi(55/124, asin((2*sqrt(2 - 3*x))/sqrt(11)), -(1/2)))/(3436574440*sqrt(11)*sqrt(-5 + 2*x))]

    @test_int [sqrt(c + d*x)/((a + b*x)^1*sqrt(e + f*x)*sqrt(g + h*x)), x, 8, (2*sqrt((-d)*e + c*f)*sqrt((d*(e + f*x))/(d*e - c*f))*sqrt((d*(g + h*x))/(d*g - c*h))*Elliptic.F(asin((sqrt(f)*sqrt(c + d*x))/sqrt((-d)*e + c*f)), ((d*e - c*f)*h)/(f*(d*g - c*h))))/(b*sqrt(f)*sqrt(e + f*x)*sqrt(g + h*x)) - (2*sqrt((-d)*e + c*f)*sqrt((d*(e + f*x))/(d*e - c*f))*sqrt((d*(g + h*x))/(d*g - c*h))*Elliptic.Pi(-((b*(d*e - c*f))/((b*c - a*d)*f)), asin((sqrt(f)*sqrt(c + d*x))/sqrt((-d)*e + c*f)), ((d*e - c*f)*h)/(f*(d*g - c*h))))/(b*sqrt(f)*sqrt(e + f*x)*sqrt(g + h*x))]

    @test_int [(c + d*x)^(3/2)/((a + b*x)^1*sqrt(e + f*x)*sqrt(g + h*x)), x, 11, (2*d*sqrt((-f)*g + e*h)*sqrt(c + d*x)*sqrt((f*(g + h*x))/(f*g - e*h))*Elliptic.E(asin((sqrt(h)*sqrt(e + f*x))/sqrt((-f)*g + e*h)), -((d*(f*g - e*h))/((d*e - c*f)*h))))/(b*f*sqrt(h)*sqrt(-((f*(c + d*x))/(d*e - c*f)))*sqrt(g + h*x)) + (2*(b*c - a*d)*sqrt((-d)*e + c*f)*sqrt((d*(e + f*x))/(d*e - c*f))*sqrt((d*(g + h*x))/(d*g - c*h))*Elliptic.F(asin((sqrt(f)*sqrt(c + d*x))/sqrt((-d)*e + c*f)), ((d*e - c*f)*h)/(f*(d*g - c*h))))/(b^2*sqrt(f)*sqrt(e + f*x)*sqrt(g + h*x)) - (2*(b*c - a*d)*sqrt((-d)*e + c*f)*sqrt((d*(e + f*x))/(d*e - c*f))*sqrt((d*(g + h*x))/(d*g - c*h))*Elliptic.Pi(-((b*(d*e - c*f))/((b*c - a*d)*f)), asin((sqrt(f)*sqrt(c + d*x))/sqrt((-d)*e + c*f)), ((d*e - c*f)*h)/(f*(d*g - c*h))))/(b^2*sqrt(f)*sqrt(e + f*x)*sqrt(g + h*x))]

    #= ::Subsubsection::Closed:: =#
    #=n<0=#

    @test_int [(7 + 5*x)^4/(sqrt(2 - 3*x)*sqrt(1 + 4*x)*sqrt(-5 + 2*x)), x, 8, (-(120355/288))*sqrt(2 - 3*x)*sqrt(-5 + 2*x)*sqrt(1 + 4*x) - (305/24)*sqrt(2 - 3*x)*sqrt(-5 + 2*x)*sqrt(1 + 4*x)*(7 + 5*x) - (25/84)*sqrt(2 - 3*x)*sqrt(-5 + 2*x)*sqrt(1 + 4*x)*(7 + 5*x)^2 - (5109835*sqrt(11)*sqrt(-5 + 2*x)*Elliptic.E(asin((2*sqrt(2 - 3*x))/sqrt(11)), -(1/2)))/(756*sqrt(5 - 2*x)) + (392989907*sqrt(5 - 2*x)*Elliptic.F(asin(sqrt(3/11)*sqrt(1 + 4*x)), 1/3))/(2016*sqrt(66)*sqrt(-5 + 2*x))]
    @test_int [(7 + 5*x)^3/(sqrt(2 - 3*x)*sqrt(1 + 4*x)*sqrt(-5 + 2*x)), x, 7, (-(2135/108))*sqrt(2 - 3*x)*sqrt(-5 + 2*x)*sqrt(1 + 4*x) - (5/12)*sqrt(2 - 3*x)*sqrt(-5 + 2*x)*sqrt(1 + 4*x)*(7 + 5*x) - (487585*sqrt(11)*sqrt(-5 + 2*x)*Elliptic.E(asin((2*sqrt(2 - 3*x))/sqrt(11)), -(1/2)))/(1296*sqrt(5 - 2*x)) + (2474201*sqrt(5 - 2*x)*Elliptic.F(asin(sqrt(3/11)*sqrt(1 + 4*x)), 1/3))/(216*sqrt(66)*sqrt(-5 + 2*x))]
    @test_int [(7 + 5*x)^2/(sqrt(2 - 3*x)*sqrt(1 + 4*x)*sqrt(-5 + 2*x)), x, 7, (-(25/36))*sqrt(2 - 3*x)*sqrt(-5 + 2*x)*sqrt(1 + 4*x) - (2135*sqrt(11)*sqrt(-5 + 2*x)*Elliptic.E(asin((2*sqrt(2 - 3*x))/sqrt(11)), -(1/2)))/(108*sqrt(5 - 2*x)) + (24353*sqrt(5 - 2*x)*Elliptic.F(asin(sqrt(3/11)*sqrt(1 + 4*x)), 1/3))/(36*sqrt(66)*sqrt(-5 + 2*x))]
    @test_int [(7 + 5*x)^1/(sqrt(2 - 3*x)*sqrt(1 + 4*x)*sqrt(-5 + 2*x)), x, 5, -((5*sqrt(11)*sqrt(-5 + 2*x)*Elliptic.E(asin((2*sqrt(2 - 3*x))/sqrt(11)), -(1/2)))/(6*sqrt(5 - 2*x))) + (13*sqrt(3/22)*sqrt(5 - 2*x)*Elliptic.F(asin(sqrt(3/11)*sqrt(1 + 4*x)), 1/3))/sqrt(-5 + 2*x)]
    @test_int [(7 + 5*x)^0/(sqrt(2 - 3*x)*sqrt(1 + 4*x)*sqrt(-5 + 2*x)), x, 2, (sqrt(2/33)*sqrt(5 - 2*x)*Elliptic.F(asin(sqrt(3/11)*sqrt(1 + 4*x)), 1/3))/sqrt(-5 + 2*x)]
    @test_int [1/((7 + 5*x)^1*sqrt(2 - 3*x)*sqrt(1 + 4*x)*sqrt(-5 + 2*x)), x, 3, -((3*sqrt(5 - 2*x)*Elliptic.Pi(55/124, asin((2*sqrt(2 - 3*x))/sqrt(11)), -(1/2)))/(31*sqrt(11)*sqrt(-5 + 2*x)))]
    @test_int [1/((7 + 5*x)^2*sqrt(2 - 3*x)*sqrt(1 + 4*x)*sqrt(-5 + 2*x)), x, 10, -((25*sqrt(2 - 3*x)*sqrt(-5 + 2*x)*sqrt(1 + 4*x))/(27807*(7 + 5*x))) + (10*sqrt(11)*sqrt(-5 + 2*x)*Elliptic.E(asin((2*sqrt(2 - 3*x))/sqrt(11)), -(1/2)))/(27807*sqrt(5 - 2*x)) - (2*sqrt(6/11)*sqrt(5 - 2*x)*Elliptic.F(asin(sqrt(3/11)*sqrt(1 + 4*x)), 1/3))/(713*sqrt(-5 + 2*x)) - (8953*sqrt(5 - 2*x)*Elliptic.Pi(55/124, asin((2*sqrt(2 - 3*x))/sqrt(11)), -(1/2)))/(574678*sqrt(11)*sqrt(-5 + 2*x))]
    @test_int [1/((7 + 5*x)^3*sqrt(2 - 3*x)*sqrt(1 + 4*x)*sqrt(-5 + 2*x)), x, 11, -((25*sqrt(2 - 3*x)*sqrt(-5 + 2*x)*sqrt(1 + 4*x))/(55614*(7 + 5*x)^2)) - (223825*sqrt(2 - 3*x)*sqrt(-5 + 2*x)*sqrt(1 + 4*x))/(1030972332*(7 + 5*x)) + (44765*sqrt(11)*sqrt(-5 + 2*x)*Elliptic.E(asin((2*sqrt(2 - 3*x))/sqrt(11)), -(1/2)))/(515486166*sqrt(5 - 2*x)) - (24007*sqrt(5 - 2*x)*Elliptic.F(asin(sqrt(3/11)*sqrt(1 + 4*x)), 1/3))/(6608797*sqrt(66)*sqrt(-5 + 2*x)) - (48493305*sqrt(5 - 2*x)*Elliptic.Pi(55/124, asin((2*sqrt(2 - 3*x))/sqrt(11)), -(1/2)))/(21306761528*sqrt(11)*sqrt(-5 + 2*x))]

    @test_int [(c*i + d*i*x)^1/(sqrt(c + d*x)*sqrt(e + f*x)*sqrt(g + h*x)), x, 3, (2*sqrt((-f)*g + e*h)*i*sqrt(c + d*x)*sqrt((f*(g + h*x))/(f*g - e*h))*Elliptic.E(asin((sqrt(h)*sqrt(e + f*x))/sqrt((-f)*g + e*h)), -((d*(f*g - e*h))/((d*e - c*f)*h))))/(f*sqrt(h)*sqrt(-((f*(c + d*x))/(d*e - c*f)))*sqrt(g + h*x))]
    @test_int [(a + b*x)^1/(sqrt(c + d*x)*sqrt(e + f*x)*sqrt(g + h*x)), x, 6, (2*b*sqrt((-d)*e + c*f)*sqrt((d*(e + f*x))/(d*e - c*f))*sqrt(g + h*x)*Elliptic.E(asin((sqrt(f)*sqrt(c + d*x))/sqrt((-d)*e + c*f)), ((d*e - c*f)*h)/(f*(d*g - c*h))))/(d*sqrt(f)*h*sqrt(e + f*x)*sqrt((d*(g + h*x))/(d*g - c*h))) - (2*sqrt((-d)*e + c*f)*(b*g - a*h)*sqrt((d*(e + f*x))/(d*e - c*f))*sqrt((d*(g + h*x))/(d*g - c*h))*Elliptic.F(asin((sqrt(f)*sqrt(c + d*x))/sqrt((-d)*e + c*f)), ((d*e - c*f)*h)/(f*(d*g - c*h))))/(d*sqrt(f)*h*sqrt(e + f*x)*sqrt(g + h*x))]
    @test_int [1/((a + b*x)^1*sqrt(c + d*x)*sqrt(e + f*x)*sqrt(g + h*x)), x, 4, -((2*sqrt((-d)*e + c*f)*sqrt((d*(e + f*x))/(d*e - c*f))*sqrt((d*(g + h*x))/(d*g - c*h))*Elliptic.Pi(-((b*(d*e - c*f))/((b*c - a*d)*f)), asin((sqrt(f)*sqrt(c + d*x))/sqrt((-d)*e + c*f)), ((d*e - c*f)*h)/(f*(d*g - c*h))))/((b*c - a*d)*sqrt(f)*sqrt(e + f*x)*sqrt(g + h*x)))]

    @test_int [1/((a + b*x)^1*(c + d*x)^(3/2)*sqrt(e + f*x)*sqrt(g + h*x)), x, 10, (2*d^2*sqrt(e + f*x)*sqrt(g + h*x))/((b*c - a*d)*(d*e - c*f)*(d*g - c*h)*sqrt(c + d*x)) - (2*d*sqrt(h)*sqrt((-f)*g + e*h)*sqrt(c + d*x)*sqrt((f*(g + h*x))/(f*g - e*h))*Elliptic.E(asin((sqrt(h)*sqrt(e + f*x))/sqrt((-f)*g + e*h)), -((d*(f*g - e*h))/((d*e - c*f)*h))))/((b*c - a*d)*(d*e - c*f)*(d*g - c*h)*sqrt(-((f*(c + d*x))/(d*e - c*f)))*sqrt(g + h*x)) - (2*b*sqrt((-d)*e + c*f)*sqrt((d*(e + f*x))/(d*e - c*f))*sqrt((d*(g + h*x))/(d*g - c*h))*Elliptic.Pi(-((b*(d*e - c*f))/((b*c - a*d)*f)), asin((sqrt(f)*sqrt(c + d*x))/sqrt((-d)*e + c*f)), ((d*e - c*f)*h)/(f*(d*g - c*h))))/((b*c - a*d)^2*sqrt(f)*sqrt(e + f*x)*sqrt(g + h*x))]

    @test_int [1/((a + b*x)^1*(c + d*x)^(5/2)*sqrt(e + f*x)*sqrt(g + h*x)), x, 18, (2*d^2*sqrt(e + f*x)*sqrt(g + h*x))/(3*(b*c - a*d)*(d*e - c*f)*(d*g - c*h)*(c + d*x)^(3/2)) + (2*b*d^2*sqrt(e + f*x)*sqrt(g + h*x))/((b*c - a*d)^2*(d*e - c*f)*(d*g - c*h)*sqrt(c + d*x)) - (4*d^2*(d*f*g + d*e*h - 2*c*f*h)*sqrt(e + f*x)*sqrt(g + h*x))/(3*(b*c - a*d)*(d*e - c*f)^2*(d*g - c*h)^2*sqrt(c + d*x)) + (4*d*sqrt(f)*(d*f*g + d*e*h - 2*c*f*h)*sqrt((d*(e + f*x))/(d*e - c*f))*sqrt(g + h*x)*Elliptic.E(asin((sqrt(f)*sqrt(c + d*x))/sqrt((-d)*e + c*f)), ((d*e - c*f)*h)/(f*(d*g - c*h))))/(3*(b*c - a*d)*((-d)*e + c*f)^(3/2)*(d*g - c*h)^2*sqrt(e + f*x)*sqrt((d*(g + h*x))/(d*g - c*h))) - (2*b*d*sqrt(h)*sqrt((-f)*g + e*h)*sqrt(c + d*x)*sqrt((f*(g + h*x))/(f*g - e*h))*Elliptic.E(asin((sqrt(h)*sqrt(e + f*x))/sqrt((-f)*g + e*h)), -((d*(f*g - e*h))/((d*e - c*f)*h))))/((b*c - a*d)^2*(d*e - c*f)*(d*g - c*h)*sqrt(-((f*(c + d*x))/(d*e - c*f)))*sqrt(g + h*x)) - (2*sqrt(f)*(2*d*f*g + d*e*h - 3*c*f*h)*sqrt((d*(e + f*x))/(d*e - c*f))*sqrt((d*(g + h*x))/(d*g - c*h))*Elliptic.F(asin((sqrt(f)*sqrt(c + d*x))/sqrt((-d)*e + c*f)), ((d*e - c*f)*h)/(f*(d*g - c*h))))/(3*(b*c - a*d)*((-d)*e + c*f)^(3/2)*(d*g - c*h)*sqrt(e + f*x)*sqrt(g + h*x)) - (2*b^2*sqrt((-d)*e + c*f)*sqrt((d*(e + f*x))/(d*e - c*f))*sqrt((d*(g + h*x))/(d*g - c*h))*Elliptic.Pi(-((b*(d*e - c*f))/((b*c - a*d)*f)), asin((sqrt(f)*sqrt(c + d*x))/sqrt((-d)*e + c*f)), ((d*e - c*f)*h)/(f*(d*g - c*h))))/((b*c - a*d)^3*sqrt(f)*sqrt(e + f*x)*sqrt(g + h*x))]

    #= Following*pairs*of*integrands*are*equal. =#
    @test_int [1/((a + b*x)*sqrt(c + d*x)*sqrt(1 - f*x)*sqrt(1 + f*x)), x, 3, -((2*sqrt((f*(c + d*x))/(d + c*f))*Elliptic.Pi((2*b)/(b + a*f), asin(sqrt(1 - f*x)/sqrt(2)), (2*d)/(d + c*f)))/((b + a*f)*sqrt(c + d*x)))]
    @test_int [1/((a + b*x)*sqrt(c + d*x)*sqrt(1 - f^2*x^2)), x, 4, -((2*sqrt((f*(c + d*x))/(d + c*f))*Elliptic.Pi((2*b)/(b + a*f), asin(sqrt(1 - f*x)/sqrt(2)), (2*d)/(d + c*f)))/((b + a*f)*sqrt(c + d*x)))]

    @test_int [1/((a + b*x)*sqrt(c + d*x)*sqrt(1 - f^2*x)*sqrt(1 + f^2*x)), x, 3, -((2*sqrt((f^2*(c + d*x))/(d + c*f^2))*Elliptic.Pi((2*b)/(b + a*f^2), asin(sqrt(1 - f^2*x)/sqrt(2)), (2*d)/(d + c*f^2)))/((b + a*f^2)*sqrt(c + d*x)))]
    @test_int [1/((a + b*x)*sqrt(c + d*x)*sqrt(1 - f^4*x^2)), x, 4, -((2*sqrt((f^2*(c + d*x))/(d + c*f^2))*Elliptic.Pi((2*b)/(b + a*f^2), asin(sqrt(1 - f^2*x)/sqrt(2)), (2*d)/(d + c*f^2)))/((b + a*f^2)*sqrt(c + d*x)))]

    #= ::Section::Closed:: =#
    #=Integrands*of*the*form*(a+b*x)^(m/2)*(c+d*x)^(n/2)*(e+f*x)^(p/2)*(g+h*x)^(q/2)=#

    #= ::Subsection::Closed:: =#
    #=p>0 & q>0=#

    #= ::Subsubsection::Closed:: =#
    #=n>0=#

    @test_int [(7 + 5*x)^(5/2)*sqrt(2 - 3*x)*sqrt(1 + 4*x)*sqrt(-5 + 2*x), x, 12, -((1450582567*sqrt(2 - 3*x)*sqrt(1 + 4*x)*sqrt(7 + 5*x))/(3686400*sqrt(-5 + 2*x))) - (70489981*sqrt(2 - 3*x)*sqrt(-5 + 2*x)*sqrt(1 + 4*x)*sqrt(7 + 5*x))/1658880 - (83363*sqrt(2 - 3*x)*sqrt(-5 + 2*x)*sqrt(1 + 4*x)*(7 + 5*x)^(3/2))/34560 - (427*sqrt(2 - 3*x)*sqrt(-5 + 2*x)*sqrt(1 + 4*x)*(7 + 5*x)^(5/2))/2400 + (1/25)*sqrt(2 - 3*x)*sqrt(-5 + 2*x)*sqrt(1 + 4*x)*(7 + 5*x)^(7/2) + (1450582567*sqrt(143/3)*sqrt(2 - 3*x)*sqrt((7 + 5*x)/(5 - 2*x))*Elliptic.E(asin((sqrt(39/23)*sqrt(1 + 4*x))/sqrt(-5 + 2*x)), -(23/39)))/(2457600*sqrt((2 - 3*x)/(5 - 2*x))*sqrt(7 + 5*x)) - (245264762213*sqrt(11/23)*sqrt(7 + 5*x)*Elliptic.F(atan(sqrt(1 + 4*x)/(sqrt(2)*sqrt(2 - 3*x))), -(39/23)))/(99532800*sqrt(-5 + 2*x)*sqrt((7 + 5*x)/(5 - 2*x))) - (57691792727443*(2 - 3*x)*sqrt((5 - 2*x)/(2 - 3*x))*sqrt(-((1 + 4*x)/(2 - 3*x)))*Elliptic.Pi(-(69/55), asin((sqrt(11/23)*sqrt(7 + 5*x))/sqrt(2 - 3*x)), -(23/39)))/(497664000*sqrt(429)*sqrt(-5 + 2*x)*sqrt(1 + 4*x))]
    @test_int [(7 + 5*x)^(3/2)*sqrt(2 - 3*x)*sqrt(1 + 4*x)*sqrt(-5 + 2*x), x, 11, -((1471781*sqrt(2 - 3*x)*sqrt(1 + 4*x)*sqrt(7 + 5*x))/(51200*sqrt(-5 + 2*x))) - (267029*sqrt(2 - 3*x)*sqrt(-5 + 2*x)*sqrt(1 + 4*x)*sqrt(7 + 5*x))/69120 - (427*sqrt(2 - 3*x)*sqrt(-5 + 2*x)*sqrt(1 + 4*x)*(7 + 5*x)^(3/2))/1440 + (1/20)*sqrt(2 - 3*x)*sqrt(-5 + 2*x)*sqrt(1 + 4*x)*(7 + 5*x)^(5/2) + (1471781*sqrt(429)*sqrt(2 - 3*x)*sqrt((7 + 5*x)/(5 - 2*x))*Elliptic.E(asin((sqrt(39/23)*sqrt(1 + 4*x))/sqrt(-5 + 2*x)), -(23/39)))/(102400*sqrt((2 - 3*x)/(5 - 2*x))*sqrt(7 + 5*x)) - (982275517*sqrt(11/23)*sqrt(7 + 5*x)*Elliptic.F(atan(sqrt(1 + 4*x)/(sqrt(2)*sqrt(2 - 3*x))), -(39/23)))/(4147200*sqrt(-5 + 2*x)*sqrt((7 + 5*x)/(5 - 2*x))) - (145131624827*(2 - 3*x)*sqrt((5 - 2*x)/(2 - 3*x))*sqrt(-((1 + 4*x)/(2 - 3*x)))*Elliptic.Pi(-(69/55), asin((sqrt(11/23)*sqrt(7 + 5*x))/sqrt(2 - 3*x)), -(23/39)))/(20736000*sqrt(429)*sqrt(-5 + 2*x)*sqrt(1 + 4*x))]
    @test_int [(7 + 5*x)^(1/2)*sqrt(2 - 3*x)*sqrt(1 + 4*x)*sqrt(-5 + 2*x), x, 10, -((13027*sqrt(2 - 3*x)*sqrt(1 + 4*x)*sqrt(7 + 5*x))/(4800*sqrt(-5 + 2*x))) + (23/240)*sqrt(2 - 3*x)*sqrt(-5 + 2*x)*sqrt(1 + 4*x)*sqrt(7 + 5*x) - (1/9)*(2 - 3*x)^(3/2)*sqrt(-5 + 2*x)*sqrt(1 + 4*x)*sqrt(7 + 5*x) + (13027*sqrt(143/3)*sqrt(2 - 3*x)*sqrt((7 + 5*x)/(5 - 2*x))*Elliptic.E(asin((sqrt(39/23)*sqrt(1 + 4*x))/sqrt(-5 + 2*x)), -(23/39)))/(3200*sqrt((2 - 3*x)/(5 - 2*x))*sqrt(7 + 5*x)) - (1368371*sqrt(11/23)*sqrt(7 + 5*x)*Elliptic.F(atan(sqrt(1 + 4*x)/(sqrt(2)*sqrt(2 - 3*x))), -(39/23)))/(43200*sqrt(-5 + 2*x)*sqrt((7 + 5*x)/(5 - 2*x))) - (65750101*(2 - 3*x)*sqrt((5 - 2*x)/(2 - 3*x))*sqrt(-((1 + 4*x)/(2 - 3*x)))*Elliptic.Pi(-(69/55), asin((sqrt(11/23)*sqrt(7 + 5*x))/sqrt(2 - 3*x)), -(23/39)))/(216000*sqrt(429)*sqrt(-5 + 2*x)*sqrt(1 + 4*x))]
    @test_int [sqrt(2 - 3*x)*sqrt(1 + 4*x)*sqrt(-5 + 2*x)/(7 + 5*x)^(1/2), x, 9, -((427*sqrt(2 - 3*x)*sqrt(1 + 4*x)*sqrt(7 + 5*x))/(600*sqrt(-5 + 2*x))) + (1/10)*sqrt(2 - 3*x)*sqrt(-5 + 2*x)*sqrt(1 + 4*x)*sqrt(7 + 5*x) + (427*sqrt(143/3)*sqrt(2 - 3*x)*sqrt((7 + 5*x)/(5 - 2*x))*Elliptic.E(asin((sqrt(39/23)*sqrt(1 + 4*x))/sqrt(-5 + 2*x)), -(23/39)))/(400*sqrt((2 - 3*x)/(5 - 2*x))*sqrt(7 + 5*x)) - (20057*sqrt(11/23)*sqrt(7 + 5*x)*Elliptic.F(atan(sqrt(1 + 4*x)/(sqrt(2)*sqrt(2 - 3*x))), -(39/23)))/(1800*sqrt(-5 + 2*x)*sqrt((7 + 5*x)/(5 - 2*x))) + (1008833*(2 - 3*x)*sqrt((5 - 2*x)/(2 - 3*x))*sqrt(-((1 + 4*x)/(2 - 3*x)))*Elliptic.Pi(-(69/55), asin((sqrt(11/23)*sqrt(7 + 5*x))/sqrt(2 - 3*x)), -(23/39)))/(9000*sqrt(429)*sqrt(-5 + 2*x)*sqrt(1 + 4*x))]
    @test_int [sqrt(2 - 3*x)*sqrt(1 + 4*x)*sqrt(-5 + 2*x)/(7 + 5*x)^(3/2), x, 9, -((2*sqrt(2 - 3*x)*sqrt(-5 + 2*x)*sqrt(1 + 4*x))/(5*sqrt(7 + 5*x))) + (6*sqrt(2 - 3*x)*sqrt(1 + 4*x)*sqrt(7 + 5*x))/(25*sqrt(-5 + 2*x)) - (3*sqrt(429)*sqrt(2 - 3*x)*sqrt((7 + 5*x)/(5 - 2*x))*Elliptic.E(asin((sqrt(39/23)*sqrt(1 + 4*x))/sqrt(-5 + 2*x)), -(23/39)))/(25*sqrt((2 - 3*x)/(5 - 2*x))*sqrt(7 + 5*x)) + (296*sqrt(11/23)*sqrt(7 + 5*x)*Elliptic.F(atan(sqrt(1 + 4*x)/(sqrt(2)*sqrt(2 - 3*x))), -(39/23)))/(75*sqrt(-5 + 2*x)*sqrt((7 + 5*x)/(5 - 2*x))) - (26474*(2 - 3*x)*sqrt((5 - 2*x)/(2 - 3*x))*sqrt(-((1 + 4*x)/(2 - 3*x)))*Elliptic.Pi(-(69/55), asin((sqrt(11/23)*sqrt(7 + 5*x))/sqrt(2 - 3*x)), -(23/39)))/(375*sqrt(429)*sqrt(-5 + 2*x)*sqrt(1 + 4*x))]
    @test_int [sqrt(2 - 3*x)*sqrt(1 + 4*x)*sqrt(-5 + 2*x)/(7 + 5*x)^(5/2), x, 10, -((2*sqrt(2 - 3*x)*sqrt(-5 + 2*x)*sqrt(1 + 4*x))/(15*(7 + 5*x)^(3/2))) + (17906*sqrt(2 - 3*x)*sqrt(-5 + 2*x)*sqrt(1 + 4*x))/(417105*sqrt(7 + 5*x)) - (35812*sqrt(2 - 3*x)*sqrt(1 + 4*x)*sqrt(7 + 5*x))/(2085525*sqrt(-5 + 2*x)) + (17906*sqrt(11/39)*sqrt(2 - 3*x)*sqrt((7 + 5*x)/(5 - 2*x))*Elliptic.E(asin((sqrt(39/23)*sqrt(1 + 4*x))/sqrt(-5 + 2*x)), -(23/39)))/(53475*sqrt((2 - 3*x)/(5 - 2*x))*sqrt(7 + 5*x)) - (496*sqrt(11/23)*sqrt(7 + 5*x)*Elliptic.F(atan(sqrt(1 + 4*x)/(sqrt(2)*sqrt(2 - 3*x))), -(39/23)))/(1725*sqrt(-5 + 2*x)*sqrt((7 + 5*x)/(5 - 2*x))) + (496*(2 - 3*x)*sqrt((5 - 2*x)/(2 - 3*x))*sqrt(-((1 + 4*x)/(2 - 3*x)))*Elliptic.Pi(-(69/55), asin((sqrt(11/23)*sqrt(7 + 5*x))/sqrt(2 - 3*x)), -(23/39)))/(125*sqrt(429)*sqrt(-5 + 2*x)*sqrt(1 + 4*x))]
    @test_int [sqrt(2 - 3*x)*sqrt(1 + 4*x)*sqrt(-5 + 2*x)/(7 + 5*x)^(7/2), x, 9, -((2*sqrt(2 - 3*x)*sqrt(-5 + 2*x)*sqrt(1 + 4*x))/(25*(7 + 5*x)^(5/2))) + (17906*sqrt(2 - 3*x)*sqrt(-5 + 2*x)*sqrt(1 + 4*x))/(2085525*(7 + 5*x)^(3/2)) + (1426348*sqrt(2 - 3*x)*sqrt(-5 + 2*x)*sqrt(1 + 4*x))/(2319687747*sqrt(7 + 5*x)) - (2852696*sqrt(2 - 3*x)*sqrt(1 + 4*x)*sqrt(7 + 5*x))/(11598438735*sqrt(-5 + 2*x)) + (1426348*sqrt(11/39)*sqrt(2 - 3*x)*sqrt((7 + 5*x)/(5 - 2*x))*Elliptic.E(asin((sqrt(39/23)*sqrt(1 + 4*x))/sqrt(-5 + 2*x)), -(23/39)))/(297395865*sqrt((2 - 3*x)/(5 - 2*x))*sqrt(7 + 5*x)) - (48884*sqrt(11/23)*sqrt(7 + 5*x)*Elliptic.F(atan(sqrt(1 + 4*x)/(sqrt(2)*sqrt(2 - 3*x))), -(39/23)))/(9593415*sqrt(-5 + 2*x)*sqrt((7 + 5*x)/(5 - 2*x)))]
    @test_int [sqrt(2 - 3*x)*sqrt(1 + 4*x)*sqrt(-5 + 2*x)/(7 + 5*x)^(9/2), x, 10, -((2*sqrt(2 - 3*x)*sqrt(-5 + 2*x)*sqrt(1 + 4*x))/(35*(7 + 5*x)^(7/2))) + (2558*sqrt(2 - 3*x)*sqrt(-5 + 2*x)*sqrt(1 + 4*x))/(695175*(7 + 5*x)^(5/2)) + (23758016*sqrt(2 - 3*x)*sqrt(-5 + 2*x)*sqrt(1 + 4*x))/(57992193675*(7 + 5*x)^(3/2)) + (32843987836*sqrt(2 - 3*x)*sqrt(-5 + 2*x)*sqrt(1 + 4*x))/(451524900265803*sqrt(7 + 5*x)) - (65687975672*sqrt(2 - 3*x)*sqrt(1 + 4*x)*sqrt(7 + 5*x))/(2257624501329015*sqrt(-5 + 2*x)) + (32843987836*sqrt(11/39)*sqrt(2 - 3*x)*sqrt((7 + 5*x)/(5 - 2*x))*Elliptic.E(asin((sqrt(39/23)*sqrt(1 + 4*x))/sqrt(-5 + 2*x)), -(23/39)))/(57887807726385*sqrt((2 - 3*x)/(5 - 2*x))*sqrt(7 + 5*x)) - (1212290288*sqrt(11/23)*sqrt(7 + 5*x)*Elliptic.F(atan(sqrt(1 + 4*x)/(sqrt(2)*sqrt(2 - 3*x))), -(39/23)))/(1867348636335*sqrt(-5 + 2*x)*sqrt((7 + 5*x)/(5 - 2*x)))]

    #= ::Subsubsection::Closed:: =#
    #=n<0=#

    @test_int [(7 + 5*x)^(5/2)*sqrt(2 - 3*x)*sqrt(1 + 4*x)/sqrt(-5 + 2*x), x, 11, (2466927*sqrt(2 - 3*x)*sqrt(1 + 4*x)*sqrt(7 + 5*x))/(4096*sqrt(-5 + 2*x)) + (1561915*sqrt(2 - 3*x)*sqrt(-5 + 2*x)*sqrt(1 + 4*x)*sqrt(7 + 5*x))/27648 + (1445/576)*sqrt(2 - 3*x)*sqrt(-5 + 2*x)*sqrt(1 + 4*x)*(7 + 5*x)^(3/2) + (1/8)*sqrt(2 - 3*x)*sqrt(-5 + 2*x)*sqrt(1 + 4*x)*(7 + 5*x)^(5/2) - (2466927*sqrt(429)*sqrt(2 - 3*x)*sqrt((7 + 5*x)/(5 - 2*x))*Elliptic.E(asin((sqrt(39/23)*sqrt(1 + 4*x))/sqrt(-5 + 2*x)), -(23/39)))/(8192*sqrt((2 - 3*x)/(5 - 2*x))*sqrt(7 + 5*x)) + (861015607*sqrt(11/23)*sqrt(7 + 5*x)*Elliptic.F(atan(sqrt(1 + 4*x)/(sqrt(2)*sqrt(2 - 3*x))), -(39/23)))/(331776*sqrt(-5 + 2*x)*sqrt((7 + 5*x)/(5 - 2*x))) + (331574321009*(2 - 3*x)*sqrt((5 - 2*x)/(2 - 3*x))*sqrt(-((1 + 4*x)/(2 - 3*x)))*Elliptic.Pi(-(69/55), asin((sqrt(11/23)*sqrt(7 + 5*x))/sqrt(2 - 3*x)), -(23/39)))/(1658880*sqrt(429)*sqrt(-5 + 2*x)*sqrt(1 + 4*x))]
    @test_int [(7 + 5*x)^(3/2)*sqrt(2 - 3*x)*sqrt(1 + 4*x)/sqrt(-5 + 2*x), x, 10, (66377*sqrt(2 - 3*x)*sqrt(1 + 4*x)*sqrt(7 + 5*x))/(1920*sqrt(-5 + 2*x)) + (977/288)*sqrt(2 - 3*x)*sqrt(-5 + 2*x)*sqrt(1 + 4*x)*sqrt(7 + 5*x) + (1/6)*sqrt(2 - 3*x)*sqrt(-5 + 2*x)*sqrt(1 + 4*x)*(7 + 5*x)^(3/2) - (66377*sqrt(143/3)*sqrt(2 - 3*x)*sqrt((7 + 5*x)/(5 - 2*x))*Elliptic.E(asin((sqrt(39/23)*sqrt(1 + 4*x))/sqrt(-5 + 2*x)), -(23/39)))/(1280*sqrt((2 - 3*x)/(5 - 2*x))*sqrt(7 + 5*x)) + (2824441*sqrt(11/23)*sqrt(7 + 5*x)*Elliptic.F(atan(sqrt(1 + 4*x)/(sqrt(2)*sqrt(2 - 3*x))), -(39/23)))/(17280*sqrt(-5 + 2*x)*sqrt((7 + 5*x)/(5 - 2*x))) + (963142751*(2 - 3*x)*sqrt((5 - 2*x)/(2 - 3*x))*sqrt(-((1 + 4*x)/(2 - 3*x)))*Elliptic.Pi(-(69/55), asin((sqrt(11/23)*sqrt(7 + 5*x))/sqrt(2 - 3*x)), -(23/39)))/(86400*sqrt(429)*sqrt(-5 + 2*x)*sqrt(1 + 4*x))]
    @test_int [(7 + 5*x)^(1/2)*sqrt(2 - 3*x)*sqrt(1 + 4*x)/sqrt(-5 + 2*x), x, 9, (509*sqrt(2 - 3*x)*sqrt(1 + 4*x)*sqrt(7 + 5*x))/(240*sqrt(-5 + 2*x)) + (1/4)*sqrt(2 - 3*x)*sqrt(-5 + 2*x)*sqrt(1 + 4*x)*sqrt(7 + 5*x) - (509*sqrt(143/3)*sqrt(2 - 3*x)*sqrt((7 + 5*x)/(5 - 2*x))*Elliptic.E(asin((sqrt(39/23)*sqrt(1 + 4*x))/sqrt(-5 + 2*x)), -(23/39)))/(160*sqrt((2 - 3*x)/(5 - 2*x))*sqrt(7 + 5*x)) + (8959*sqrt(11/23)*sqrt(7 + 5*x)*Elliptic.F(atan(sqrt(1 + 4*x)/(sqrt(2)*sqrt(2 - 3*x))), -(39/23)))/(720*sqrt(-5 + 2*x)*sqrt((7 + 5*x)/(5 - 2*x))) + (2198489*(2 - 3*x)*sqrt((5 - 2*x)/(2 - 3*x))*sqrt(-((1 + 4*x)/(2 - 3*x)))*Elliptic.Pi(-(69/55), asin((sqrt(11/23)*sqrt(7 + 5*x))/sqrt(2 - 3*x)), -(23/39)))/(3600*sqrt(429)*sqrt(-5 + 2*x)*sqrt(1 + 4*x))]
    @test_int [sqrt(2 - 3*x)*sqrt(1 + 4*x)/((7 + 5*x)^(1/2)*sqrt(-5 + 2*x)), x, 9, (sqrt(2 - 3*x)*sqrt(1 + 4*x)*sqrt(7 + 5*x))/(5*sqrt(-5 + 2*x)) - (sqrt(429)*sqrt(2 - 3*x)*sqrt((7 + 5*x)/(5 - 2*x))*Elliptic.E(asin((sqrt(39/23)*sqrt(1 + 4*x))/sqrt(-5 + 2*x)), -(23/39)))/(10*sqrt((2 - 3*x)/(5 - 2*x))*sqrt(7 + 5*x)) + (7*sqrt(11/23)*sqrt(7 + 5*x)*Elliptic.F(atan(sqrt(1 + 4*x)/(sqrt(2)*sqrt(2 - 3*x))), -(39/23)))/(10*sqrt(-5 + 2*x)*sqrt((7 + 5*x)/(5 - 2*x))) + (41*sqrt(11/62)*sqrt(2 - 3*x)*Elliptic.F(atan((sqrt(22/23)*sqrt(7 + 5*x))/sqrt(-5 + 2*x)), 39/62))/(20*sqrt(-((2 - 3*x)/(1 + 4*x)))*sqrt(1 + 4*x)) + (943*sqrt(2 - 3*x)*Elliptic.Pi(78/55, atan((sqrt(22/23)*sqrt(7 + 5*x))/sqrt(-5 + 2*x)), 39/62))/(100*sqrt(682)*sqrt(-((2 - 3*x)/(1 + 4*x)))*sqrt(1 + 4*x))]
    @test_int [sqrt(2 - 3*x)*sqrt(1 + 4*x)/((7 + 5*x)^(3/2)*sqrt(-5 + 2*x)), x, 7, (2*sqrt(2 - 3*x)*sqrt(-5 + 2*x)*sqrt(1 + 4*x))/(39*sqrt(7 + 5*x)) - (4*sqrt(2 - 3*x)*sqrt(1 + 4*x)*sqrt(7 + 5*x))/(195*sqrt(-5 + 2*x)) + (2*sqrt(11/39)*sqrt(2 - 3*x)*sqrt((7 + 5*x)/(5 - 2*x))*Elliptic.E(asin((sqrt(39/23)*sqrt(1 + 4*x))/sqrt(-5 + 2*x)), -(23/39)))/(5*sqrt((2 - 3*x)/(5 - 2*x))*sqrt(7 + 5*x)) - (69*sqrt(2/341)*sqrt(-((2 - 3*x)/(1 + 4*x)))*sqrt(-((5 - 2*x)/(1 + 4*x)))*(1 + 4*x)*Elliptic.Pi(78/55, asin((sqrt(22/39)*sqrt(7 + 5*x))/sqrt(1 + 4*x)), 39/62))/(25*sqrt(2 - 3*x)*sqrt(-5 + 2*x))]
    @test_int [sqrt(2 - 3*x)*sqrt(1 + 4*x)/((7 + 5*x)^(5/2)*sqrt(-5 + 2*x)), x, 8, (2*sqrt(2 - 3*x)*sqrt(-5 + 2*x)*sqrt(1 + 4*x))/(117*(7 + 5*x)^(3/2)) - (9350*sqrt(2 - 3*x)*sqrt(-5 + 2*x)*sqrt(1 + 4*x))/(3253419*sqrt(7 + 5*x)) + (3740*sqrt(2 - 3*x)*sqrt(1 + 4*x)*sqrt(7 + 5*x))/(3253419*sqrt(-5 + 2*x)) - (1870*sqrt(11/39)*sqrt(2 - 3*x)*sqrt((7 + 5*x)/(5 - 2*x))*Elliptic.E(asin((sqrt(39/23)*sqrt(1 + 4*x))/sqrt(-5 + 2*x)), -(23/39)))/(83421*sqrt((2 - 3*x)/(5 - 2*x))*sqrt(7 + 5*x)) + (44*sqrt(11/23)*sqrt(7 + 5*x)*Elliptic.F(atan(sqrt(1 + 4*x)/(sqrt(2)*sqrt(2 - 3*x))), -(39/23)))/(2691*sqrt(-5 + 2*x)*sqrt((7 + 5*x)/(5 - 2*x)))]
    @test_int [sqrt(2 - 3*x)*sqrt(1 + 4*x)/((7 + 5*x)^(7/2)*sqrt(-5 + 2*x)), x, 9, (2*sqrt(2 - 3*x)*sqrt(-5 + 2*x)*sqrt(1 + 4*x))/(195*(7 + 5*x)^(5/2)) - (3646*sqrt(2 - 3*x)*sqrt(-5 + 2*x)*sqrt(1 + 4*x))/(16267095*(7 + 5*x)^(3/2)) - (20464840*sqrt(2 - 3*x)*sqrt(-5 + 2*x)*sqrt(1 + 4*x))/(90467822133*sqrt(7 + 5*x)) + (8185936*sqrt(2 - 3*x)*sqrt(1 + 4*x)*sqrt(7 + 5*x))/(90467822133*sqrt(-5 + 2*x)) - (4092968*sqrt(11/39)*sqrt(2 - 3*x)*sqrt((7 + 5*x)/(5 - 2*x))*Elliptic.E(asin((sqrt(39/23)*sqrt(1 + 4*x))/sqrt(-5 + 2*x)), -(23/39)))/(2319687747*sqrt((2 - 3*x)/(5 - 2*x))*sqrt(7 + 5*x)) + (111628*sqrt(11/23)*sqrt(7 + 5*x)*Elliptic.F(atan(sqrt(1 + 4*x)/(sqrt(2)*sqrt(2 - 3*x))), -(39/23)))/(74828637*sqrt(-5 + 2*x)*sqrt((7 + 5*x)/(5 - 2*x)))]
    @test_int [sqrt(2 - 3*x)*sqrt(1 + 4*x)/((7 + 5*x)^(9/2)*sqrt(-5 + 2*x)), x, 10, (2*sqrt(2 - 3*x)*sqrt(-5 + 2*x)*sqrt(1 + 4*x))/(273*(7 + 5*x)^(7/2)) + (98*sqrt(2 - 3*x)*sqrt(-5 + 2*x)*sqrt(1 + 4*x))/(1807455*(7 + 5*x)^(5/2)) - (3217468*sqrt(2 - 3*x)*sqrt(-5 + 2*x)*sqrt(1 + 4*x))/(50259901185*(7 + 5*x)^(3/2)) - (40944441340*sqrt(2 - 3*x)*sqrt(-5 + 2*x)*sqrt(1 + 4*x))/(1956607901151813*sqrt(7 + 5*x)) + (16377776536*sqrt(2 - 3*x)*sqrt(1 + 4*x)*sqrt(7 + 5*x))/(1956607901151813*sqrt(-5 + 2*x)) - (8188888268*sqrt(11/39)*sqrt(2 - 3*x)*sqrt((7 + 5*x)/(5 - 2*x))*Elliptic.E(asin((sqrt(39/23)*sqrt(1 + 4*x))/sqrt(-5 + 2*x)), -(23/39)))/(50169433362867*sqrt((2 - 3*x)/(5 - 2*x))*sqrt(7 + 5*x)) + (258506776*sqrt(11/23)*sqrt(7 + 5*x)*Elliptic.F(atan(sqrt(1 + 4*x)/(sqrt(2)*sqrt(2 - 3*x))), -(39/23)))/(1618368818157*sqrt(-5 + 2*x)*sqrt((7 + 5*x)/(5 - 2*x)))]

    #= ::Subsection::Closed:: =#
    #=p<0 & q<0=#

    #= ::Subsubsection::Closed:: =#
    #=n>0=#

    @test_int [(7 + 5*x)^(5/2)*sqrt(2 - 3*x)/(sqrt(1 + 4*x)*sqrt(-5 + 2*x)), x, 10, (102487*sqrt(2 - 3*x)*sqrt(1 + 4*x)*sqrt(7 + 5*x))/(1536*sqrt(-5 + 2*x)) + (6955*sqrt(2 - 3*x)*sqrt(-5 + 2*x)*sqrt(1 + 4*x)*sqrt(7 + 5*x))/1152 + (5/24)*sqrt(2 - 3*x)*sqrt(-5 + 2*x)*sqrt(1 + 4*x)*(7 + 5*x)^(3/2) - (102487*sqrt(143/3)*sqrt(2 - 3*x)*sqrt((7 + 5*x)/(5 - 2*x))*Elliptic.E(asin((sqrt(39/23)*sqrt(1 + 4*x))/sqrt(-5 + 2*x)), -(23/39)))/(1024*sqrt((2 - 3*x)/(5 - 2*x))*sqrt(7 + 5*x)) + (5241511*sqrt(11/23)*sqrt(7 + 5*x)*Elliptic.F(atan(sqrt(1 + 4*x)/(sqrt(2)*sqrt(2 - 3*x))), -(39/23)))/(13824*sqrt(-5 + 2*x)*sqrt((7 + 5*x)/(5 - 2*x))) + (295576909*(2 - 3*x)*sqrt((5 - 2*x)/(2 - 3*x))*sqrt(-((1 + 4*x)/(2 - 3*x)))*Elliptic.Pi(-(69/55), asin((sqrt(11/23)*sqrt(7 + 5*x))/sqrt(2 - 3*x)), -(23/39)))/(13824*sqrt(429)*sqrt(-5 + 2*x)*sqrt(1 + 4*x))]
    @test_int [(7 + 5*x)^(3/2)*sqrt(2 - 3*x)/(sqrt(1 + 4*x)*sqrt(-5 + 2*x)), x, 9, (785*sqrt(2 - 3*x)*sqrt(1 + 4*x)*sqrt(7 + 5*x))/(192*sqrt(-5 + 2*x)) + (5/16)*sqrt(2 - 3*x)*sqrt(-5 + 2*x)*sqrt(1 + 4*x)*sqrt(7 + 5*x) - (785*sqrt(143/3)*sqrt(2 - 3*x)*sqrt((7 + 5*x)/(5 - 2*x))*Elliptic.E(asin((sqrt(39/23)*sqrt(1 + 4*x))/sqrt(-5 + 2*x)), -(23/39)))/(128*sqrt((2 - 3*x)/(5 - 2*x))*sqrt(7 + 5*x)) + (17515*sqrt(11/23)*sqrt(7 + 5*x)*Elliptic.F(atan(sqrt(1 + 4*x)/(sqrt(2)*sqrt(2 - 3*x))), -(39/23)))/(576*sqrt(-5 + 2*x)*sqrt((7 + 5*x)/(5 - 2*x))) + (3730013*(2 - 3*x)*sqrt((5 - 2*x)/(2 - 3*x))*sqrt(-((1 + 4*x)/(2 - 3*x)))*Elliptic.Pi(-(69/55), asin((sqrt(11/23)*sqrt(7 + 5*x))/sqrt(2 - 3*x)), -(23/39)))/(2880*sqrt(429)*sqrt(-5 + 2*x)*sqrt(1 + 4*x))]
    @test_int [(7 + 5*x)^(1/2)*sqrt(2 - 3*x)/(sqrt(1 + 4*x)*sqrt(-5 + 2*x)), x, 9, (sqrt(2 - 3*x)*sqrt(1 + 4*x)*sqrt(7 + 5*x))/(4*sqrt(-5 + 2*x)) - (sqrt(429)*sqrt(2 - 3*x)*sqrt((7 + 5*x)/(5 - 2*x))*Elliptic.E(asin((sqrt(39/23)*sqrt(1 + 4*x))/sqrt(-5 + 2*x)), -(23/39)))/(8*sqrt((2 - 3*x)/(5 - 2*x))*sqrt(7 + 5*x)) - (39*sqrt(11/23)*sqrt(7 + 5*x)*Elliptic.F(atan(sqrt(1 + 4*x)/(sqrt(2)*sqrt(2 - 3*x))), -(39/23)))/(8*sqrt(-5 + 2*x)*sqrt((7 + 5*x)/(5 - 2*x))) + (179*sqrt(11/62)*sqrt(2 - 3*x)*Elliptic.F(atan((sqrt(22/23)*sqrt(7 + 5*x))/sqrt(-5 + 2*x)), 39/62))/(16*sqrt(-((2 - 3*x)/(1 + 4*x)))*sqrt(1 + 4*x)) + (4117*sqrt(2 - 3*x)*Elliptic.Pi(78/55, atan((sqrt(22/23)*sqrt(7 + 5*x))/sqrt(-5 + 2*x)), 39/62))/(80*sqrt(682)*sqrt(-((2 - 3*x)/(1 + 4*x)))*sqrt(1 + 4*x))]
    @test_int [sqrt(2 - 3*x)/((7 + 5*x)^(1/2)*sqrt(1 + 4*x)*sqrt(-5 + 2*x)), x, 2, (62*(2 - 3*x)*sqrt((5 - 2*x)/(2 - 3*x))*sqrt(-((1 + 4*x)/(2 - 3*x)))*Elliptic.Pi(-(69/55), asin((sqrt(11/23)*sqrt(7 + 5*x))/sqrt(2 - 3*x)), -(23/39)))/(5*sqrt(429)*sqrt(-5 + 2*x)*sqrt(1 + 4*x))]
    @test_int [sqrt(2 - 3*x)/((7 + 5*x)^(3/2)*sqrt(1 + 4*x)*sqrt(-5 + 2*x)), x, 5, (2*sqrt(11/39)*sqrt(5 - 2*x)*Elliptic.E(asin((sqrt(39/22)*sqrt(1 + 4*x))/sqrt(7 + 5*x)), 62/39))/(23*sqrt(-5 + 2*x)), -((62*sqrt(-5 + 2*x)*sqrt(1 + 4*x))/(897*sqrt(2 - 3*x)*sqrt(7 + 5*x))) + (2*sqrt(682)*sqrt(1 + 4*x)*Elliptic.E(atan((sqrt(31/11)*sqrt(-5 + 2*x))/sqrt(7 + 5*x)), 39/62))/(897*sqrt(2 - 3*x)*sqrt(-((1 + 4*x)/(2 - 3*x)))) - (sqrt(22/31)*sqrt(1 + 4*x)*Elliptic.F(atan((sqrt(31/11)*sqrt(-5 + 2*x))/sqrt(7 + 5*x)), 39/62))/(39*sqrt(2 - 3*x)*sqrt(-((1 + 4*x)/(2 - 3*x))))]
    @test_int [sqrt(2 - 3*x)/((7 + 5*x)^(5/2)*sqrt(1 + 4*x)*sqrt(-5 + 2*x)), x, 8, -((10*sqrt(2 - 3*x)*sqrt(-5 + 2*x)*sqrt(1 + 4*x))/(2691*(7 + 5*x)^(3/2))) - (98330*sqrt(2 - 3*x)*sqrt(-5 + 2*x)*sqrt(1 + 4*x))/(74828637*sqrt(7 + 5*x)) + (39332*sqrt(2 - 3*x)*sqrt(1 + 4*x)*sqrt(7 + 5*x))/(74828637*sqrt(-5 + 2*x)) - (19666*sqrt(11/39)*sqrt(2 - 3*x)*sqrt((7 + 5*x)/(5 - 2*x))*Elliptic.E(asin((sqrt(39/23)*sqrt(1 + 4*x))/sqrt(-5 + 2*x)), -(23/39)))/(1918683*sqrt((2 - 3*x)/(5 - 2*x))*sqrt(7 + 5*x)) + (716*sqrt(11/23)*sqrt(7 + 5*x)*Elliptic.F(atan(sqrt(1 + 4*x)/(sqrt(2)*sqrt(2 - 3*x))), -(39/23)))/(61893*sqrt(-5 + 2*x)*sqrt((7 + 5*x)/(5 - 2*x)))]

    @test_int [(a + b*x)^(1/2)*sqrt(c + d*x)/(sqrt(e + f*x)*sqrt(g + h*x)), x, 7, (sqrt(a + b*x)*sqrt(c + d*x)*sqrt(g + h*x))/(h*sqrt(e + f*x)) - (sqrt(d*g - c*h)*sqrt(f*g - e*h)*sqrt(a + b*x)*sqrt(((d*e - c*f)*(g + h*x))/((d*g - c*h)*(e + f*x)))*Elliptic.E(asin((sqrt(f*g - e*h)*sqrt(c + d*x))/(sqrt(d*g - c*h)*sqrt(e + f*x))), ((b*e - a*f)*(d*g - c*h))/((b*c - a*d)*(f*g - e*h))))/(f*h*sqrt(-(((d*e - c*f)*(a + b*x))/((b*c - a*d)*(e + f*x))))*sqrt(g + h*x)) + ((d*e - c*f)*(b*f*g + b*e*h - 2*a*f*h)*sqrt(((b*e - a*f)*(c + d*x))/((d*e - c*f)*(a + b*x)))*sqrt(g + h*x)*Elliptic.F(asin((sqrt(b*g - a*h)*sqrt(e + f*x))/(sqrt(f*g - e*h)*sqrt(a + b*x))), -(((b*c - a*d)*(f*g - e*h))/((d*e - c*f)*(b*g - a*h)))))/(f^2*h*sqrt(b*g - a*h)*sqrt(f*g - e*h)*sqrt(c + d*x)*sqrt(-(((b*e - a*f)*(g + h*x))/((f*g - e*h)*(a + b*x))))) + (sqrt(b*g - a*h)*(a*d*f*h - b*(d*f*g + d*e*h - c*f*h))*sqrt(((f*g - e*h)*(a + b*x))/((b*g - a*h)*(e + f*x)))*sqrt(((f*g - e*h)*(c + d*x))/((d*g - c*h)*(e + f*x)))*(e + f*x)*Elliptic.Pi((f*(b*g - a*h))/((b*e - a*f)*h), asin((sqrt(b*e - a*f)*sqrt(g + h*x))/(sqrt(b*g - a*h)*sqrt(e + f*x))), ((d*e - c*f)*(b*g - a*h))/((b*e - a*f)*(d*g - c*h))))/(f^2*sqrt(b*e - a*f)*h^2*sqrt(a + b*x)*sqrt(c + d*x))]

    @test_int [sqrt(c + d*x)/((a + b*x)^(3/2)*sqrt(e + f*x)*sqrt(g + h*x)), x, 2, -((2*sqrt(c + d*x)*Elliptic.E(atan((sqrt((-b)*e + a*f)*sqrt(g + h*x))/(sqrt(b*g - a*h)*sqrt(e + f*x))), (((-b)*c + a*d)*(f*g - e*h))/(((-b)*e + a*f)*(d*g - c*h))))/(sqrt((-b)*e + a*f)*sqrt(b*g - a*h)*sqrt(a + b*x)*sqrt(((b*g - a*h)*(c + d*x))/((d*g - c*h)*(a + b*x))))), -((2*sqrt(f*g - e*h)*sqrt(c + d*x)*sqrt(-(((b*e - a*f)*(g + h*x))/((f*g - e*h)*(a + b*x))))*Elliptic.E(asin((sqrt(b*g - a*h)*sqrt(e + f*x))/(sqrt(f*g - e*h)*sqrt(a + b*x))), -(((b*c - a*d)*(f*g - e*h))/((d*e - c*f)*(b*g - a*h)))))/((b*e - a*f)*sqrt(b*g - a*h)*sqrt(((b*e - a*f)*(c + d*x))/((d*e - c*f)*(a + b*x)))*sqrt(g + h*x)))]

    #= ::Subsubsection::Closed:: =#
    #=n<0=#

    @test_int [(7 + 5*x)^(5/2)/(sqrt(2 - 3*x)*sqrt(1 + 4*x)*sqrt(-5 + 2*x)), x, 9, -((2135*sqrt(2 - 3*x)*sqrt(1 + 4*x)*sqrt(7 + 5*x))/(192*sqrt(-5 + 2*x))) - (25/48)*sqrt(2 - 3*x)*sqrt(-5 + 2*x)*sqrt(1 + 4*x)*sqrt(7 + 5*x) + (2135*sqrt(143/3)*sqrt(2 - 3*x)*sqrt((7 + 5*x)/(5 - 2*x))*Elliptic.E(asin((sqrt(39/23)*sqrt(1 + 4*x))/sqrt(-5 + 2*x)), -(23/39)))/(128*sqrt((2 - 3*x)/(5 - 2*x))*sqrt(7 + 5*x)) + (29047*sqrt(23/11)*sqrt(7 + 5*x)*Elliptic.F(atan(sqrt(1 + 4*x)/(sqrt(2)*sqrt(2 - 3*x))), -(39/23)))/(576*sqrt(-5 + 2*x)*sqrt((7 + 5*x)/(5 - 2*x))) - (3431855*(2 - 3*x)*sqrt((5 - 2*x)/(2 - 3*x))*sqrt(-((1 + 4*x)/(2 - 3*x)))*Elliptic.Pi(-(69/55), asin((sqrt(11/23)*sqrt(7 + 5*x))/sqrt(2 - 3*x)), -(23/39)))/(576*sqrt(429)*sqrt(-5 + 2*x)*sqrt(1 + 4*x))]
    @test_int [(7 + 5*x)^(3/2)/(sqrt(2 - 3*x)*sqrt(1 + 4*x)*sqrt(-5 + 2*x)), x, 12, -((5*sqrt(2 - 3*x)*sqrt(1 + 4*x)*sqrt(7 + 5*x))/(12*sqrt(-5 + 2*x))) + (5*sqrt(143/3)*sqrt(2 - 3*x)*sqrt((7 + 5*x)/(5 - 2*x))*Elliptic.E(asin((sqrt(39/23)*sqrt(1 + 4*x))/sqrt(-5 + 2*x)), -(23/39)))/(8*sqrt((2 - 3*x)/(5 - 2*x))*sqrt(7 + 5*x)) + (65*sqrt(11/23)*sqrt(7 + 5*x)*Elliptic.F(atan(sqrt(1 + 4*x)/(sqrt(2)*sqrt(2 - 3*x))), -(39/23)))/(8*sqrt(-5 + 2*x)*sqrt((7 + 5*x)/(5 - 2*x))) - (895*sqrt(11/62)*sqrt(2 - 3*x)*Elliptic.F(atan((sqrt(22/23)*sqrt(7 + 5*x))/sqrt(-5 + 2*x)), 39/62))/(48*sqrt(-((2 - 3*x)/(1 + 4*x)))*sqrt(1 + 4*x)) + (23*sqrt(31/22)*sqrt((2 - 3*x)/(7 + 5*x))*sqrt((5 - 2*x)/(7 + 5*x))*(7 + 5*x)*Elliptic.Pi(55/124, asin((sqrt(31/11)*sqrt(1 + 4*x))/sqrt(7 + 5*x)), 39/62))/(6*sqrt(2 - 3*x)*sqrt(-5 + 2*x)) - (4117*sqrt(2 - 3*x)*Elliptic.Pi(78/55, atan((sqrt(22/23)*sqrt(7 + 5*x))/sqrt(-5 + 2*x)), 39/62))/(48*sqrt(682)*sqrt(-((2 - 3*x)/(1 + 4*x)))*sqrt(1 + 4*x))]
    @test_int [(7 + 5*x)^(1/2)/(sqrt(2 - 3*x)*sqrt(1 + 4*x)*sqrt(-5 + 2*x)), x, 2, (23*sqrt((2 - 3*x)/(7 + 5*x))*sqrt((5 - 2*x)/(7 + 5*x))*(7 + 5*x)*Elliptic.Pi(55/124, asin((sqrt(31/11)*sqrt(1 + 4*x))/sqrt(7 + 5*x)), 39/62))/(2*sqrt(682)*sqrt(2 - 3*x)*sqrt(-5 + 2*x))]
    @test_int [1/((7 + 5*x)^(1/2)*sqrt(2 - 3*x)*sqrt(1 + 4*x)*sqrt(-5 + 2*x)), x, 2, (2*sqrt(7 + 5*x)*Elliptic.F(atan(sqrt(1 + 4*x)/(sqrt(2)*sqrt(2 - 3*x))), -(39/23)))/(sqrt(253)*sqrt(-5 + 2*x)*sqrt((7 + 5*x)/(5 - 2*x)))]
    @test_int [1/((7 + 5*x)^(3/2)*sqrt(2 - 3*x)*sqrt(1 + 4*x)*sqrt(-5 + 2*x)), x, 8, (10*sqrt(11/39)*sqrt(2 - 3*x)*sqrt((5 - 2*x)/(7 + 5*x))*Elliptic.E(asin((sqrt(39/22)*sqrt(1 + 4*x))/sqrt(7 + 5*x)), 62/39))/(713*sqrt(-5 + 2*x)*sqrt((2 - 3*x)/(7 + 5*x))) + (2*sqrt(3/143)*(2 - 3*x)*sqrt((5 - 2*x)/(2 - 3*x))*sqrt(-((1 + 4*x)/(2 - 3*x)))*Elliptic.F(asin((sqrt(11/23)*sqrt(7 + 5*x))/sqrt(2 - 3*x)), -(23/39)))/(31*sqrt(-5 + 2*x)*sqrt(1 + 4*x)), -((10*sqrt(-5 + 2*x)*sqrt(1 + 4*x))/(897*sqrt(2 - 3*x)*sqrt(7 + 5*x))) + (10*sqrt(22/31)*sqrt(1 + 4*x)*Elliptic.E(atan((sqrt(31/11)*sqrt(-5 + 2*x))/sqrt(7 + 5*x)), 39/62))/(897*sqrt(2 - 3*x)*sqrt(-((1 + 4*x)/(2 - 3*x)))) + (6*sqrt(7 + 5*x)*Elliptic.F(atan(sqrt(1 + 4*x)/(sqrt(2)*sqrt(2 - 3*x))), -(39/23)))/(31*sqrt(253)*sqrt(-5 + 2*x)*sqrt((7 + 5*x)/(5 - 2*x))) - (5*sqrt(22/31)*sqrt(1 + 4*x)*Elliptic.F(atan((sqrt(31/11)*sqrt(-5 + 2*x))/sqrt(7 + 5*x)), 39/62))/(1209*sqrt(2 - 3*x)*sqrt(-((1 + 4*x)/(2 - 3*x))))]
    @test_int [1/((7 + 5*x)^(5/2)*sqrt(2 - 3*x)*sqrt(1 + 4*x)*sqrt(-5 + 2*x)), x, 8, -((50*sqrt(2 - 3*x)*sqrt(-5 + 2*x)*sqrt(1 + 4*x))/(83421*(7 + 5*x)^(3/2))) - (895300*sqrt(2 - 3*x)*sqrt(-5 + 2*x)*sqrt(1 + 4*x))/(2319687747*sqrt(7 + 5*x)) + (358120*sqrt(2 - 3*x)*sqrt(1 + 4*x)*sqrt(7 + 5*x))/(2319687747*sqrt(-5 + 2*x)) - (179060*sqrt(11/39)*sqrt(2 - 3*x)*sqrt((7 + 5*x)/(5 - 2*x))*Elliptic.E(asin((sqrt(39/23)*sqrt(1 + 4*x))/sqrt(-5 + 2*x)), -(23/39)))/(59479173*sqrt((2 - 3*x)/(5 - 2*x))*sqrt(7 + 5*x)) + (103964*sqrt(7 + 5*x)*Elliptic.F(atan(sqrt(1 + 4*x)/(sqrt(2)*sqrt(2 - 3*x))), -(39/23)))/(1918683*sqrt(253)*sqrt(-5 + 2*x)*sqrt((7 + 5*x)/(5 - 2*x)))]

    @test_int [(a + b*x)^(3/2)/(sqrt(c + d*x)*sqrt(e + f*x)*sqrt(g + h*x)), x, 10, (b*sqrt(a + b*x)*sqrt(c + d*x)*sqrt(g + h*x))/(d*h*sqrt(e + f*x)) - (b*sqrt(d*g - c*h)*sqrt(f*g - e*h)*sqrt(a + b*x)*sqrt(((d*e - c*f)*(g + h*x))/((d*g - c*h)*(e + f*x)))*Elliptic.E(asin((sqrt(f*g - e*h)*sqrt(c + d*x))/(sqrt(d*g - c*h)*sqrt(e + f*x))), ((b*e - a*f)*(d*g - c*h))/((b*c - a*d)*(f*g - e*h))))/(d*f*h*sqrt(-(((d*e - c*f)*(a + b*x))/((b*c - a*d)*(e + f*x))))*sqrt(g + h*x)) + (b*(d*e - c*f)*(b*f*g + b*e*h - 2*a*f*h)*sqrt(((b*e - a*f)*(c + d*x))/((d*e - c*f)*(a + b*x)))*sqrt(g + h*x)*Elliptic.F(asin((sqrt(b*g - a*h)*sqrt(e + f*x))/(sqrt(f*g - e*h)*sqrt(a + b*x))), -(((b*c - a*d)*(f*g - e*h))/((d*e - c*f)*(b*g - a*h)))))/(d*f^2*h*sqrt(b*g - a*h)*sqrt(f*g - e*h)*sqrt(c + d*x)*sqrt(-(((b*e - a*f)*(g + h*x))/((f*g - e*h)*(a + b*x))))) + (b*sqrt(b*g - a*h)*(a*d*f*h - b*(d*f*g + d*e*h - c*f*h))*sqrt(((f*g - e*h)*(a + b*x))/((b*g - a*h)*(e + f*x)))*sqrt(((f*g - e*h)*(c + d*x))/((d*g - c*h)*(e + f*x)))*(e + f*x)*Elliptic.Pi((f*(b*g - a*h))/((b*e - a*f)*h), asin((sqrt(b*e - a*f)*sqrt(g + h*x))/(sqrt(b*g - a*h)*sqrt(e + f*x))), ((d*e - c*f)*(b*g - a*h))/((b*e - a*f)*(d*g - c*h))))/(d*f^2*sqrt(b*e - a*f)*h^2*sqrt(a + b*x)*sqrt(c + d*x)) - (2*sqrt(b*c - a*d)*sqrt((-d)*g + c*h)*(a + b*x)*sqrt(((b*g - a*h)*(c + d*x))/((d*g - c*h)*(a + b*x)))*sqrt(((b*g - a*h)*(e + f*x))/((f*g - e*h)*(a + b*x)))*Elliptic.Pi(-((b*(d*g - c*h))/((b*c - a*d)*h)), asin((sqrt(b*c - a*d)*sqrt(g + h*x))/(sqrt((-d)*g + c*h)*sqrt(a + b*x))), ((b*e - a*f)*(d*g - c*h))/((b*c - a*d)*(f*g - e*h))))/(d*h*sqrt(c + d*x)*sqrt(e + f*x))]
    @test_int [(a + b*x)^(1/2)/(sqrt(c + d*x)*sqrt(e + f*x)*sqrt(g + h*x)), x, 2, (2*sqrt((-d)*g + c*h)*(a + b*x)*sqrt(((b*g - a*h)*(c + d*x))/((d*g - c*h)*(a + b*x)))*sqrt(((b*g - a*h)*(e + f*x))/((f*g - e*h)*(a + b*x)))*Elliptic.Pi(-((b*(d*g - c*h))/((b*c - a*d)*h)), asin((sqrt(b*c - a*d)*sqrt(g + h*x))/(sqrt((-d)*g + c*h)*sqrt(a + b*x))), ((b*e - a*f)*(d*g - c*h))/((b*c - a*d)*(f*g - e*h))))/(sqrt(b*c - a*d)*h*sqrt(c + d*x)*sqrt(e + f*x))]
    @test_int [1/((a + b*x)^(1/2)*sqrt(c + d*x)*sqrt(e + f*x)*sqrt(g + h*x)), x, 2, -((2*sqrt(((f*g - e*h)*(c + d*x))/((d*g - c*h)*(e + f*x)))*sqrt(e + f*x)*Elliptic.F(atan((sqrt(b*e - a*f)*sqrt(g + h*x))/(sqrt(f*g - e*h)*sqrt(a + b*x))), ((d*e - c*f)*(b*g - a*h))/((b*e - a*f)*(d*g - c*h))))/(sqrt(b*e - a*f)*sqrt(f*g - e*h)*sqrt(c + d*x))), (2*sqrt(((b*e - a*f)*(c + d*x))/((d*e - c*f)*(a + b*x)))*sqrt(g + h*x)*Elliptic.F(asin((sqrt(b*g - a*h)*sqrt(e + f*x))/(sqrt(f*g - e*h)*sqrt(a + b*x))), -(((b*c - a*d)*(f*g - e*h))/((d*e - c*f)*(b*g - a*h)))))/(sqrt(b*g - a*h)*sqrt(f*g - e*h)*sqrt(c + d*x)*sqrt(-(((b*e - a*f)*(g + h*x))/((f*g - e*h)*(a + b*x)))))]
    @test_int [1/((a + b*x)^(3/2)*sqrt(c + d*x)*sqrt(e + f*x)*sqrt(g + h*x)), x, 5, -((2*b*sqrt(f*g - e*h)*sqrt(c + d*x)*sqrt(-(((b*e - a*f)*(g + h*x))/((f*g - e*h)*(a + b*x))))*Elliptic.E(asin((sqrt(b*g - a*h)*sqrt(e + f*x))/(sqrt(f*g - e*h)*sqrt(a + b*x))), -(((b*c - a*d)*(f*g - e*h))/((d*e - c*f)*(b*g - a*h)))))/((b*c - a*d)*(b*e - a*f)*sqrt(b*g - a*h)*sqrt(((b*e - a*f)*(c + d*x))/((d*e - c*f)*(a + b*x)))*sqrt(g + h*x))) - (2*d*sqrt(((b*e - a*f)*(c + d*x))/((d*e - c*f)*(a + b*x)))*sqrt(g + h*x)*Elliptic.F(asin((sqrt(b*g - a*h)*sqrt(e + f*x))/(sqrt(f*g - e*h)*sqrt(a + b*x))), -(((b*c - a*d)*(f*g - e*h))/((d*e - c*f)*(b*g - a*h)))))/((b*c - a*d)*sqrt(b*g - a*h)*sqrt(f*g - e*h)*sqrt(c + d*x)*sqrt(-(((b*e - a*f)*(g + h*x))/((f*g - e*h)*(a + b*x)))))]

    @test_int [1/((a + b*x)^(3/2)*(c + d*x)^(3/2)*sqrt(e + f*x)*sqrt(g + h*x)), x, -1, -((2*d^3*sqrt(a + b*x)*sqrt(e + f*x)*sqrt(g + h*x))/((b*c - a*d)^2*(d*e - c*f)*(d*g - c*h)*sqrt(c + d*x))) - (2*b^3*sqrt(c + d*x)*sqrt(e + f*x)*sqrt(g + h*x))/((b*c - a*d)^2*(b*e - a*f)*(b*g - a*h)*sqrt(a + b*x)) + (2*b*(a^2*d^2*f*h - a*b*d^2*(f*g + e*h) + b^2*(2*d^2*e*g + c^2*f*h - c*d*(f*g + e*h)))*sqrt(c + d*x)*sqrt(e + f*x)*sqrt(g + h*x))/((b*c - a*d)^2*(b*e - a*f)*(d*e - c*f)*(b*g - a*h)*(d*g - c*h)*sqrt(a + b*x)) - (2*sqrt(f*g - e*h)*(a^2*d^2*f*h - a*b*d^2*(f*g + e*h) + b^2*(2*d^2*e*g + c^2*f*h - c*d*(f*g + e*h)))*sqrt(c + d*x)*sqrt(-(((b*e - a*f)*(g + h*x))/((f*g - e*h)*(a + b*x))))*Elliptic.E(asin((sqrt(b*g - a*h)*sqrt(e + f*x))/(sqrt(f*g - e*h)*sqrt(a + b*x))), -(((b*c - a*d)*(f*g - e*h))/((d*e - c*f)*(b*g - a*h)))))/((b*c - a*d)^2*(b*e - a*f)*(d*e - c*f)*sqrt(b*g - a*h)*(d*g - c*h)*sqrt(((b*e - a*f)*(c + d*x))/((d*e - c*f)*(a + b*x)))*sqrt(g + h*x)) - (4*b*d*sqrt(((b*e - a*f)*(c + d*x))/((d*e - c*f)*(a + b*x)))*sqrt(g + h*x)*Elliptic.F(asin((sqrt(b*g - a*h)*sqrt(e + f*x))/(sqrt(f*g - e*h)*sqrt(a + b*x))), -(((b*c - a*d)*(f*g - e*h))/((d*e - c*f)*(b*g - a*h)))))/((b*c - a*d)^2*sqrt(b*g - a*h)*sqrt(f*g - e*h)*sqrt(c + d*x)*sqrt(-(((b*e - a*f)*(g + h*x))/((f*g - e*h)*(a + b*x)))))]

    #= ::Section::Closed:: =#
    #=Integrands*of*the*form*(a+b*x)^m*(c+d*x)^n*(e+f*x)^p*(g+h*x)^q*with*m*symbolic=#

    #= ::Subsection::Closed:: =#
    #=Integrands*of*the*form*(a+b*x)^m*(c+d*x)^n*(e+f*x)^p*(g+h*x)^q*with*m*symbolic=#

    @test_int [x^4*(e + f*x)^n/((a + b*x)*(c + d*x)), x, 8, (e^2*(e + f*x)^(1 + n))/(b*d*f^3*(1 + n)) + ((b*c + a*d)*e*(e + f*x)^(1 + n))/(b^2*d^2*f^2*(1 + n)) + ((b^2*c^2 + a*b*c*d + a^2*d^2)*(e + f*x)^(1 + n))/(b^3*d^3*f*(1 + n)) - (2*e*(e + f*x)^(2 + n))/(b*d*f^3*(2 + n)) - ((b*c + a*d)*(e + f*x)^(2 + n))/(b^2*d^2*f^2*(2 + n)) + (e + f*x)^(3 + n)/(b*d*f^3*(3 + n)) - (a^4*(e + f*x)^(1 + n)*HypergeometricFunctions._₂F₁(1, 1 + n, 2 + n, (b*(e + f*x))/(b*e - a*f)))/(b^3*(b*c - a*d)*(b*e - a*f)*(1 + n)) + (c^4*(e + f*x)^(1 + n)*HypergeometricFunctions._₂F₁(1, 1 + n, 2 + n, (d*(e + f*x))/(d*e - c*f)))/(d^3*(b*c - a*d)*(d*e - c*f)*(1 + n))]
    @test_int [x^3*(e + f*x)^n/((a + b*x)*(c + d*x)), x, 6, -((e*(e + f*x)^(1 + n))/(b*d*f^2*(1 + n))) - ((b*c + a*d)*(e + f*x)^(1 + n))/(b^2*d^2*f*(1 + n)) + (e + f*x)^(2 + n)/(b*d*f^2*(2 + n)) + (a^3*(e + f*x)^(1 + n)*HypergeometricFunctions._₂F₁(1, 1 + n, 2 + n, (b*(e + f*x))/(b*e - a*f)))/(b^2*(b*c - a*d)*(b*e - a*f)*(1 + n)) - (c^3*(e + f*x)^(1 + n)*HypergeometricFunctions._₂F₁(1, 1 + n, 2 + n, (d*(e + f*x))/(d*e - c*f)))/(d^2*(b*c - a*d)*(d*e - c*f)*(1 + n))]
    @test_int [x^2*(e + f*x)^n/((a + b*x)*(c + d*x)), x, 4, (e + f*x)^(1 + n)/(b*d*f*(1 + n)) - (a^2*(e + f*x)^(1 + n)*HypergeometricFunctions._₂F₁(1, 1 + n, 2 + n, (b*(e + f*x))/(b*e - a*f)))/(b*(b*c - a*d)*(b*e - a*f)*(1 + n)) + (c^2*(e + f*x)^(1 + n)*HypergeometricFunctions._₂F₁(1, 1 + n, 2 + n, (d*(e + f*x))/(d*e - c*f)))/(d*(b*c - a*d)*(d*e - c*f)*(1 + n))]
    @test_int [x^1*(e + f*x)^n/((a + b*x)*(c + d*x)), x, 3, (a*(e + f*x)^(1 + n)*HypergeometricFunctions._₂F₁(1, 1 + n, 2 + n, (b*(e + f*x))/(b*e - a*f)))/((b*c - a*d)*(b*e - a*f)*(1 + n)) - (c*(e + f*x)^(1 + n)*HypergeometricFunctions._₂F₁(1, 1 + n, 2 + n, (d*(e + f*x))/(d*e - c*f)))/((b*c - a*d)*(d*e - c*f)*(1 + n))]
    @test_int [x^0*(e + f*x)^n/((a + b*x)*(c + d*x)), x, 3, -((b*(e + f*x)^(1 + n)*HypergeometricFunctions._₂F₁(1, 1 + n, 2 + n, (b*(e + f*x))/(b*e - a*f)))/((b*c - a*d)*(b*e - a*f)*(1 + n))) + (d*(e + f*x)^(1 + n)*HypergeometricFunctions._₂F₁(1, 1 + n, 2 + n, (d*(e + f*x))/(d*e - c*f)))/((b*c - a*d)*(d*e - c*f)*(1 + n))]
    @test_int [(e + f*x)^n/(x^1*(a + b*x)*(c + d*x)), x, 5, (b^2*(e + f*x)^(1 + n)*HypergeometricFunctions._₂F₁(1, 1 + n, 2 + n, (b*(e + f*x))/(b*e - a*f)))/(a*(b*c - a*d)*(b*e - a*f)*(1 + n)) - (d^2*(e + f*x)^(1 + n)*HypergeometricFunctions._₂F₁(1, 1 + n, 2 + n, (d*(e + f*x))/(d*e - c*f)))/(c*(b*c - a*d)*(d*e - c*f)*(1 + n)) - ((e + f*x)^(1 + n)*HypergeometricFunctions._₂F₁(1, 1 + n, 2 + n, 1 + (f*x)/e))/(a*c*e*(1 + n))]
    @test_int [(e + f*x)^n/(x^2*(a + b*x)*(c + d*x)), x, 6, -((b^3*(e + f*x)^(1 + n)*HypergeometricFunctions._₂F₁(1, 1 + n, 2 + n, (b*(e + f*x))/(b*e - a*f)))/(a^2*(b*c - a*d)*(b*e - a*f)*(1 + n))) + (d^3*(e + f*x)^(1 + n)*HypergeometricFunctions._₂F₁(1, 1 + n, 2 + n, (d*(e + f*x))/(d*e - c*f)))/(c^2*(b*c - a*d)*(d*e - c*f)*(1 + n)) + ((b*c + a*d)*(e + f*x)^(1 + n)*HypergeometricFunctions._₂F₁(1, 1 + n, 2 + n, 1 + (f*x)/e))/(a^2*c^2*e*(1 + n)) + (f*(e + f*x)^(1 + n)*HypergeometricFunctions._₂F₁(2, 1 + n, 2 + n, 1 + (f*x)/e))/(a*c*e^2*(1 + n))]

    @test_int [(a + b*x)^m*(c + d*x)*(e + f*x)*(g + h*x), x, 2, ((b*c - a*d)*(b*e - a*f)*(b*g - a*h)*(a + b*x)^(1 + m))/(b^4*(1 + m)) + ((3*a^2*d*f*h + b^2*(d*e*g + c*f*g + c*e*h) - 2*a*b*(d*f*g + d*e*h + c*f*h))*(a + b*x)^(2 + m))/(b^4*(2 + m)) - ((3*a*d*f*h - b*(d*f*g + d*e*h + c*f*h))*(a + b*x)^(3 + m))/(b^4*(3 + m)) + (d*f*h*(a + b*x)^(4 + m))/(b^4*(4 + m))]
    @test_int [(a + b*x)^m*(c + d*x)*(e + f*x)/(g + h*x), x, 2, -(((a + b*x)^(1 + m)*(a*d*f*h + b*(d*f*g - d*e*h - c*f*h)*(2 + m) - b*d*f*h*(1 + m)*x))/(b^2*h^2*(1 + m)*(2 + m))) + ((d*g - c*h)*(f*g - e*h)*(a + b*x)^(1 + m)*HypergeometricFunctions._₂F₁(1, 1 + m, 2 + m, -((h*(a + b*x))/(b*g - a*h))))/(h^2*(b*g - a*h)*(1 + m))]
    @test_int [(a + b*x)^m*(c + d*x)/((e + f*x)*(g + h*x)), x, 3, -(((d*e - c*f)*(a + b*x)^(1 + m)*HypergeometricFunctions._₂F₁(1, 1 + m, 2 + m, -((f*(a + b*x))/(b*e - a*f))))/((b*e - a*f)*(f*g - e*h)*(1 + m))) + ((d*g - c*h)*(a + b*x)^(1 + m)*HypergeometricFunctions._₂F₁(1, 1 + m, 2 + m, -((h*(a + b*x))/(b*g - a*h))))/((b*g - a*h)*(f*g - e*h)*(1 + m))]
    @test_int [(a + b*x)^m/((c + d*x)*(e + f*x)*(g + h*x)), x, 5, (d^2*(a + b*x)^(1 + m)*HypergeometricFunctions._₂F₁(1, 1 + m, 2 + m, -((d*(a + b*x))/(b*c - a*d))))/((b*c - a*d)*(d*e - c*f)*(d*g - c*h)*(1 + m)) - (f^2*(a + b*x)^(1 + m)*HypergeometricFunctions._₂F₁(1, 1 + m, 2 + m, -((f*(a + b*x))/(b*e - a*f))))/((b*e - a*f)*(d*e - c*f)*(f*g - e*h)*(1 + m)) + (h^2*(a + b*x)^(1 + m)*HypergeometricFunctions._₂F₁(1, 1 + m, 2 + m, -((h*(a + b*x))/(b*g - a*h))))/((b*g - a*h)*(d*g - c*h)*(f*g - e*h)*(1 + m))]

    #= ::Subsection::Closed:: =#
    #=Integrands*of*the*form*(a+b*x)^m*(c+d*x)^n*(e+f*x)^p*(g+h*x)^q*with*m*and*n*symbolic=#

    @test_int [x^m*(e + f*x)^n/((a + b*x)*(c + d*x)), x, 6, (b*x^(1 + m)*(e + f*x)^n*AppellF1(1 + m, -n, 1, 2 + m, -((f*x)/e), -((b*x)/a)))/((1 + (f*x)/e)^n*(a*(b*c - a*d)*(1 + m))) - (d*x^(1 + m)*(e + f*x)^n*AppellF1(1 + m, -n, 1, 2 + m, -((f*x)/e), -((d*x)/c)))/((1 + (f*x)/e)^n*(c*(b*c - a*d)*(1 + m)))]

    @test_int [(a + b*x)^m*(c + d*x)^n*(e + f*x)*(g + h*x), x, 3, -(((a + b*x)^(1 + m)*(c + d*x)^(1 + n)*(b*c*f*h*(2 + m) + a*d*f*h*(2 + n) - b*d*(f*g + e*h)*(3 + m + n) - b*d*f*h*(2 + m + n)*x))/(b^2*d^2*(2 + m + n)*(3 + m + n))) + (1/(b^3*d^2*(1 + m)*(2 + m + n)*(3 + m + n)))*(((a^2*d^2*f*h*(1 + n)*(2 + n) + a*b*d*(1 + n)*(2*c*f*h*(1 + m) - d*(f*g + e*h)*(3 + m + n)) + b^2*(c^2*f*h*(1 + m)*(2 + m) - c*d*(f*g + e*h)*(1 + m)*(3 + m + n) + d^2*e*g*(2 + m + n)*(3 + m + n)))*(a + b*x)^(1 + m)*(c + d*x)^n*HypergeometricFunctions._₂F₁(1 + m, -n, 2 + m, -((d*(a + b*x))/(b*c - a*d))))/((b*(c + d*x))/(b*c - a*d))^n)]

    @test_int [(a + b*x)^m/(c + d*x)^(m - 1)*(e + f*x)*(g + h*x), x, 3, ((a + b*x)^(1 + m)*(c + d*x)^(2 - m)*(4*b*d*(f*g + e*h) - a*d*f*h*(3 - m) - b*c*f*h*(2 + m) + 3*b*d*f*h*x))/(12*b^2*d^2) + ((b*c - a*d)*(a^2*d^2*f*h*(6 - 5*m + m^2) - 2*a*b*d*(2 - m)*(2*d*(f*g + e*h) - c*f*h*(1 + m)) + b^2*(12*d^2*e*g - 4*c*d*(f*g + e*h)*(1 + m) + c^2*f*h*(2 + 3*m + m^2)))*(a + b*x)^(1 + m)*((b*(c + d*x))/(b*c - a*d))^m*HypergeometricFunctions._₂F₁(-1 + m, 1 + m, 2 + m, -((d*(a + b*x))/(b*c - a*d))))/((c + d*x)^m*(12*b^4*d^2*(1 + m)))]
    @test_int [(a + b*x)^m/(c + d*x)^(m + 0)*(e + f*x)*(g + h*x), x, 3, ((a + b*x)^(1 + m)*(c + d*x)^(1 - m)*(3*b*d*(f*g + e*h) - a*d*f*h*(2 - m) - b*c*f*h*(2 + m) + 2*b*d*f*h*x))/(6*b^2*d^2) + ((a^2*d^2*f*h*(2 - 3*m + m^2) - a*b*d*(1 - m)*(3*d*(f*g + e*h) - 2*c*f*h*(1 + m)) + b^2*(6*d^2*e*g - 3*c*d*(f*g + e*h)*(1 + m) + c^2*f*h*(2 + 3*m + m^2)))*(a + b*x)^(1 + m)*((b*(c + d*x))/(b*c - a*d))^m*HypergeometricFunctions._₂F₁(m, 1 + m, 2 + m, -((d*(a + b*x))/(b*c - a*d))))/((c + d*x)^m*(6*b^3*d^2*(1 + m)))]
    @test_int [(a + b*x)^m/(c + d*x)^(m + 1)*(e + f*x)*(g + h*x), x, 3, ((a + b*x)^(1 + m)*(2*b*d^2*e*g + b*c^2*f*h*(2 + m) - c*d*(2*b*(f*g + e*h) + a*f*h*m) + d*(b*c - a*d)*f*h*m*x))/((c + d*x)^m*(2*b*d^2*(b*c - a*d)*m)) - ((b^2*c^2*f*h*(1 + m)*(2 + m) - 2*b*c*d*(1 + m)*(b*f*g + b*e*h + a*f*h*m) + d^2*(2*b^2*e*g + 2*a*b*(f*g + e*h)*m - a^2*f*h*(1 - m)*m))*(a + b*x)^(1 + m)*((b*(c + d*x))/(b*c - a*d))^m*HypergeometricFunctions._₂F₁(m, 1 + m, 2 + m, -((d*(a + b*x))/(b*c - a*d))))/((c + d*x)^m*(2*b^2*d^2*(b*c - a*d)*m*(1 + m)))]
    @test_int [(a + b*x)^m/(c + d*x)^(m + 2)*(e + f*x)*(g + h*x), x, 3, ((a + b*x)^(1 + m)*(c + d*x)^(-1 - m)*(b*d^2*e*g + b*c^2*f*h*(2 + m) - c*d*(b*(f*g + e*h) + a*f*h*(1 + m)) + d*(b*c - a*d)*f*h*(1 + m)*x))/(b*d^2*(b*c - a*d)*(1 + m)) - ((a*d*f*h*m + b*(d*(f*g + e*h) - c*f*h*(2 + m)))*(a + b*x)^m*HypergeometricFunctions._₂F₁(-m, -m, 1 - m, (b*(c + d*x))/(b*c - a*d)))/((-((d*(a + b*x))/(b*c - a*d)))^m*(c + d*x)^m*(b*d^3*m))]
    @test_int [(a + b*x)^m/(c + d*x)^(m + 3)*(e + f*x)*(g + h*x), x, 3, -((1/(b^2*(b*c - a*d)^2*(1 + m)*(2 + m)))*((a + b*x)^(1 + m)*(c + d*x)^(-2 - m)*(a^2*b*c*f*h*m - a^3*d*f*h*(1 + m) - b^3*c*e*g*(2 + m) + a*b^2*(c*(f*g + e*h) + d*e*g*(1 + m)) - b*(a^2*d*f*h*(3 + 2*m) + b^2*(d*e*g + c*(f*g + e*h)*(1 + m)) - a*b*(2*c*f*h*(1 + m) + d*(f*g + e*h)*(2 + m)))*x))) + (f*h*(a + b*x)^(3 + m)*((b*(c + d*x))/(b*c - a*d))^m*HypergeometricFunctions._₂F₁(3 + m, 3 + m, 4 + m, -((d*(a + b*x))/(b*c - a*d))))/((c + d*x)^m*((b*c - a*d)^3*(3 + m)))]
    @test_int [(a + b*x)^m/(c + d*x)^(m + 4)*(e + f*x)*(g + h*x), x, 3, ((a^2*d^2*f*h*(6 + 5*m + m^2) - a*b*d*(3 + m)*(d*(f*g + e*h) + 2*c*f*h*(1 + m)) + b^2*(2*d^2*e*g + c*d*(f*g + e*h)*(1 + m) + c^2*f*h*(2 + 3*m + m^2)))*(a + b*x)^(1 + m)*(c + d*x)^(-2 - m))/(b*d^2*(b*c - a*d)^2*(2 + m)*(3 + m)) + ((a^2*d^2*f*h*(6 + 5*m + m^2) - a*b*d*(3 + m)*(d*(f*g + e*h) + 2*c*f*h*(1 + m)) + b^2*(2*d^2*e*g + c*d*(f*g + e*h)*(1 + m) + c^2*f*h*(2 + 3*m + m^2)))*(a + b*x)^(1 + m)*(c + d*x)^(-1 - m))/(d^2*(b*c - a*d)^3*(1 + m)*(2 + m)*(3 + m)) + ((a + b*x)^(1 + m)*(c + d*x)^(-3 - m)*(a*c*d*f*h*(3 + m) + b*(d^2*e*g - c*d*(f*g + e*h) - c^2*f*h*(2 + m)) - d*(b*c - a*d)*f*h*(3 + m)*x))/(b*d^2*(b*c - a*d)*(3 + m))]
    @test_int [(a + b*x)^m/(c + d*x)^(m + 5)*(e + f*x)*(g + h*x), x, 4, ((a^2*d^2*f*h*(12 + 7*m + m^2) - 2*a*b*d*(4 + m)*(d*(f*g + e*h) + c*f*h*(1 + m)) + b^2*(6*d^2*e*g + 2*c*d*(f*g + e*h)*(1 + m) + c^2*f*h*(2 + 3*m + m^2)))*(a + b*x)^(1 + m)*(c + d*x)^(-3 - m))/(2*b*d^2*(b*c - a*d)^2*(3 + m)*(4 + m)) + ((a^2*d^2*f*h*(12 + 7*m + m^2) - 2*a*b*d*(4 + m)*(d*(f*g + e*h) + c*f*h*(1 + m)) + b^2*(6*d^2*e*g + 2*c*d*(f*g + e*h)*(1 + m) + c^2*f*h*(2 + 3*m + m^2)))*(a + b*x)^(1 + m)*(c + d*x)^(-2 - m))/(d^2*(b*c - a*d)^3*(2 + m)*(3 + m)*(4 + m)) + (b*(a^2*d^2*f*h*(12 + 7*m + m^2) - 2*a*b*d*(4 + m)*(d*(f*g + e*h) + c*f*h*(1 + m)) + b^2*(6*d^2*e*g + 2*c*d*(f*g + e*h)*(1 + m) + c^2*f*h*(2 + 3*m + m^2)))*(a + b*x)^(1 + m)*(c + d*x)^(-1 - m))/(d^2*(b*c - a*d)^4*(1 + m)*(2 + m)*(3 + m)*(4 + m)) + ((a + b*x)^(1 + m)*(c + d*x)^(-4 - m)*(a*c*d*f*h*(4 + m) + b*(2*d^2*e*g - 2*c*d*(f*g + e*h) - c^2*f*h*(2 + m)) - d*(b*c - a*d)*f*h*(4 + m)*x))/(2*b*d^2*(b*c - a*d)*(4 + m))]

    @test_int [(a + b*x)^3*(c + d*x)^(-4 - m)*(e + f*x)^m*(g + h*x), x, 10, ((b*c - a*d)^2*(a*d*f + b*(c*f*(2 + m) - d*e*(3 + m)))*(c*f*h*(4 + m) - d*(f*g + e*h*(3 + m)))*(c + d*x)^(-3 - m)*(e + f*x)^(1 + m))/(d^4*f^2*(d*e - c*f)*(3 + m)) - (b*(b*c - a*d)*(c*f*h*(4 + m) - d*(f*g + e*h*(3 + m)))*(a + b*x)*(c + d*x)^(-3 - m)*(e + f*x)^(1 + m))/(d^3*f^2) + (h*(a + b*x)^3*(c + d*x)^(-3 - m)*(e + f*x)^(1 + m))/(d*f) - ((b*c - a*d)^2*(3*a*d*f*h - b*(c*f*h*(4 + m) - d*(f*g + e*h*m)))*(c + d*x)^(-2 - m)*(e + f*x)^(1 + m))/(d^4*f*(d*e - c*f)*(2 + m)) + ((b*c - a*d)*(c*f*h*(4 + m) - d*(f*g + e*h*(3 + m)))*(2*a^2*d^2*f^2 + 2*a*b*d*f*(c*f*(1 + m) - d*e*(3 + m)) + b^2*(c^2*f^2*(2 + 3*m + m^2) - 2*c*d*e*f*(3 + 4*m + m^2) + d^2*e^2*(6 + 5*m + m^2)))*(c + d*x)^(-2 - m)*(e + f*x)^(1 + m))/(d^4*f^2*(d*e - c*f)^2*(2 + m)*(3 + m)) - ((b*c - a*d)*(a*d*f - b*(2*d*e*(2 + m) - c*f*(3 + 2*m)))*(3*a*d*f*h - b*(c*f*h*(4 + m) - d*(f*g + e*h*m)))*(c + d*x)^(-1 - m)*(e + f*x)^(1 + m))/(d^4*f*(d*e - c*f)^2*(1 + m)*(2 + m)) - ((b*c - a*d)*(c*f*h*(4 + m) - d*(f*g + e*h*(3 + m)))*(2*a^2*d^2*f^2 + 2*a*b*d*f*(c*f*(1 + m) - d*e*(3 + m)) + b^2*(c^2*f^2*(2 + 3*m + m^2) - 2*c*d*e*f*(3 + 4*m + m^2) + d^2*e^2*(6 + 5*m + m^2)))*(c + d*x)^(-1 - m)*(e + f*x)^(1 + m))/(d^4*f*(d*e - c*f)^3*(1 + m)*(2 + m)*(3 + m)) - (b^2*(3*a*d*f*h - b*(c*f*h*(4 + m) - d*(f*g + e*h*m)))*(e + f*x)^m*HypergeometricFunctions._₂F₁(-m, -m, 1 - m, -((f*(c + d*x))/(d*e - c*f))))/((c + d*x)^m*((d*(e + f*x))/(d*e - c*f))^m*(d^5*f*m))]
    @test_int [(a + b*x)^2*(c + d*x)^(-4 - m)*(e + f*x)^m*(g + h*x), x, 9, ((b*c - a*d)*(d*g - c*h)*(a*d*f + b*(c*f*(2 + m) - d*e*(3 + m)))*(c + d*x)^(-3 - m)*(e + f*x)^(1 + m))/(d^3*f*(d*e - c*f)*(3 + m)) - (b*(d*g - c*h)*(a + b*x)*(c + d*x)^(-3 - m)*(e + f*x)^(1 + m))/(d^2*f) - ((b*c - a*d)^2*h*(c + d*x)^(-2 - m)*(e + f*x)^(1 + m))/(d^3*(d*e - c*f)*(2 + m)) - ((d*g - c*h)*(b^2*(d*e - c*f)*(2 + m)*(c*f*(1 + m) - d*e*(3 + m)) - 2*d*f*(b^2*c*e + a^2*d*f + a*b*(c*f*(1 + m) - d*e*(3 + m))))*(c + d*x)^(-2 - m)*(e + f*x)^(1 + m))/(d^3*f*(d*e - c*f)^2*(2 + m)*(3 + m)) - ((b*c - a*d)*h*(a*d*f - b*(2*d*e*(2 + m) - c*f*(3 + 2*m)))*(c + d*x)^(-1 - m)*(e + f*x)^(1 + m))/(d^3*(d*e - c*f)^2*(1 + m)*(2 + m)) + ((d*g - c*h)*(b^2*(d*e - c*f)*(2 + m)*(c*f*(1 + m) - d*e*(3 + m)) - 2*d*f*(b^2*c*e + a^2*d*f + a*b*(c*f*(1 + m) - d*e*(3 + m))))*(c + d*x)^(-1 - m)*(e + f*x)^(1 + m))/(d^3*(d*e - c*f)^3*(1 + m)*(2 + m)*(3 + m)) - (b^2*h*(e + f*x)^m*HypergeometricFunctions._₂F₁(-m, -m, 1 - m, -((f*(c + d*x))/(d*e - c*f))))/((c + d*x)^m*((d*(e + f*x))/(d*e - c*f))^m*(d^4*m))]
    @test_int [(a + b*x)^1*(c + d*x)^(-4 - m)*(e + f*x)^m*(g + h*x), x, 3, ((b*(c^2*f^2*h*(2 + 3*m + m^2) - d^2*e*(3 + m)*(f*g - e*h*(2 + m)) + c*d*f*(1 + m)*(f*g - 2*e*h*(3 + m))) + a*d*f*(c*f*h*(1 + m) + d*(2*f*g - e*h*(3 + m))))*(c + d*x)^(-2 - m)*(e + f*x)^(1 + m))/(d^2*f*(d*e - c*f)^2*(2 + m)*(3 + m)) - ((b*(c^2*f^2*h*(2 + 3*m + m^2) - d^2*e*(3 + m)*(f*g - e*h*(2 + m)) + c*d*f*(1 + m)*(f*g - 2*e*h*(3 + m))) + a*d*f*(c*f*h*(1 + m) + d*(2*f*g - e*h*(3 + m))))*(c + d*x)^(-1 - m)*(e + f*x)^(1 + m))/(d^2*(d*e - c*f)^3*(1 + m)*(2 + m)*(3 + m)) - ((c + d*x)^(-3 - m)*(e + f*x)^(1 + m)*(a*d*f*(d*g - c*h) - b*c*(c*f*h*(2 + m) + d*(f*g - e*h*(3 + m))) + b*d*(d*e - c*f)*h*(3 + m)*x))/(d^2*f*(d*e - c*f)*(3 + m))]
    @test_int [(a + b*x)^0*(c + d*x)^(-4 - m)*(e + f*x)^m*(g + h*x), x, 3, -(((d*g - c*h)*(c + d*x)^(-3 - m)*(e + f*x)^(1 + m))/(d*(d*e - c*f)*(3 + m))) + ((c*f*h*(1 + m) + d*(2*f*g - e*h*(3 + m)))*(c + d*x)^(-2 - m)*(e + f*x)^(1 + m))/(d*(d*e - c*f)^2*(2 + m)*(3 + m)) - (f*(c*f*h*(1 + m) + d*(2*f*g - e*h*(3 + m)))*(c + d*x)^(-1 - m)*(e + f*x)^(1 + m))/(d*(d*e - c*f)^3*(1 + m)*(2 + m)*(3 + m))]

    @test_int [(c + d*x)^n*(e + f*x)^p*(A + B*x)/(a + b*x), x, 5, -(((A*b - a*B)*(c + d*x)^(1 + n)*(e + f*x)^p*AppellF1(1 + n, 1, -p, 2 + n, (b*(c + d*x))/(b*c - a*d), -((f*(c + d*x))/(d*e - c*f))))/(((d*(e + f*x))/(d*e - c*f))^p*(b*(b*c - a*d)*(1 + n)))) - (B*(c + d*x)^(1 + n)*(e + f*x)^(1 + p)*HypergeometricFunctions._₂F₁(1, 2 + n + p, 2 + p, (d*(e + f*x))/(d*e - c*f)))/(b*(d*e - c*f)*(1 + p)), -(((A*b - a*B)*(c + d*x)^(1 + n)*(e + f*x)^p*AppellF1(1 + n, -p, 1, 2 + n, -((f*(c + d*x))/(d*e - c*f)), (b*(c + d*x))/(b*c - a*d)))/(((d*(e + f*x))/(d*e - c*f))^p*(b*(b*c - a*d)*(1 + n)))) + (B*(c + d*x)^(1 + n)*(e + f*x)^p*HypergeometricFunctions._₂F₁(1 + n, -p, 2 + n, -((f*(c + d*x))/(d*e - c*f))))/(((d*(e + f*x))/(d*e - c*f))^p*(b*d*(1 + n)))]

    @test_int [(a + b*x)^m*(A + B*x)/((c + d*x)^m*(e + f*x)), x, 5, -((d*(B*e - A*f)*(a + b*x)^(1 + m))/((c + d*x)^m*((b*c - a*d)*f^2*m))) - ((B*e - A*f)*(a + b*x)^m*HypergeometricFunctions._₂F₁(1, -m, 1 - m, ((b*e - a*f)*(c + d*x))/((d*e - c*f)*(a + b*x))))/((c + d*x)^m*(f^2*m)) - ((a*B*d*f*m - b*(B*d*e - A*d*f + B*c*f*m))*(a + b*x)^(1 + m)*((b*(c + d*x))/(b*c - a*d))^m*HypergeometricFunctions._₂F₁(m, 1 + m, 2 + m, -((d*(a + b*x))/(b*c - a*d))))/((c + d*x)^m*(b*(b*c - a*d)*f^2*m*(1 + m)))]

    #= ::Subsection::Closed:: =#
    #=Integrands*of*the*form*(a+b*x)^m*(c+d*x)^n*(e+f*x)^p*(g+h*x)^(q/2)*with*m*and*n*symbolic=#

    @test_int [(c + d*x)^n*(e + f*x)^p*(A + B*x)/sqrt(a + b*x), x, 7, (2*(A*b - a*B)*sqrt(a + b*x)*(c + d*x)^n*(e + f*x)^p*AppellF1(1/2, -n, -p, 3/2, -((d*(a + b*x))/(b*c - a*d)), -((f*(a + b*x))/(b*e - a*f))))/(((b*(c + d*x))/(b*c - a*d))^n*((b*(e + f*x))/(b*e - a*f))^p*b^2) + (2*B*(a + b*x)^(3/2)*(c + d*x)^n*(e + f*x)^p*AppellF1(3/2, -n, -p, 5/2, -((d*(a + b*x))/(b*c - a*d)), -((f*(a + b*x))/(b*e - a*f))))/(((b*(c + d*x))/(b*c - a*d))^n*((b*(e + f*x))/(b*e - a*f))^p*(3*b^2))]

    #= ::Subsection::Closed:: =#
    #=Integrands*of*the*form*(a+b*x)^m*(c+d*x)^n*(e+f*x)^p*(g+h*x)^q*with*m, n*and*p*symbolic=#

    @test_int [(a + b*x)^m*(c + d*x)^n*(e + f*x)^p*(g + h*x)^3, x, 31, ((b*g - a*h)^3*(a + b*x)^(1 + m)*(c + d*x)^n*(e + f*x)^p*AppellF1(1 + m, -n, -p, 2 + m, -((d*(a + b*x))/(b*c - a*d)), -((f*(a + b*x))/(b*e - a*f))))/(((b*(c + d*x))/(b*c - a*d))^n*((b*(e + f*x))/(b*e - a*f))^p*(b^4*(1 + m))) + (3*h*(b*g - a*h)^2*(a + b*x)^(2 + m)*(c + d*x)^n*(e + f*x)^p*AppellF1(2 + m, -n, -p, 3 + m, -((d*(a + b*x))/(b*c - a*d)), -((f*(a + b*x))/(b*e - a*f))))/(((b*(c + d*x))/(b*c - a*d))^n*((b*(e + f*x))/(b*e - a*f))^p*(b^4*(2 + m))) + (3*h^2*(b*g - a*h)*(a + b*x)^(3 + m)*(c + d*x)^n*(e + f*x)^p*AppellF1(3 + m, -n, -p, 4 + m, -((d*(a + b*x))/(b*c - a*d)), -((f*(a + b*x))/(b*e - a*f))))/(((b*(c + d*x))/(b*c - a*d))^n*((b*(e + f*x))/(b*e - a*f))^p*(b^4*(3 + m))) + (h^3*(a + b*x)^(4 + m)*(c + d*x)^n*(e + f*x)^p*AppellF1(4 + m, -n, -p, 5 + m, -((d*(a + b*x))/(b*c - a*d)), -((f*(a + b*x))/(b*e - a*f))))/(((b*(c + d*x))/(b*c - a*d))^n*((b*(e + f*x))/(b*e - a*f))^p*(b^4*(4 + m)))]
    @test_int [(a + b*x)^m*(c + d*x)^n*(e + f*x)^p*(g + h*x)^2, x, 15, ((b*g - a*h)^2*(a + b*x)^(1 + m)*(c + d*x)^n*(e + f*x)^p*AppellF1(1 + m, -n, -p, 2 + m, -((d*(a + b*x))/(b*c - a*d)), -((f*(a + b*x))/(b*e - a*f))))/(((b*(c + d*x))/(b*c - a*d))^n*((b*(e + f*x))/(b*e - a*f))^p*(b^3*(1 + m))) + (2*h*(b*g - a*h)*(a + b*x)^(2 + m)*(c + d*x)^n*(e + f*x)^p*AppellF1(2 + m, -n, -p, 3 + m, -((d*(a + b*x))/(b*c - a*d)), -((f*(a + b*x))/(b*e - a*f))))/(((b*(c + d*x))/(b*c - a*d))^n*((b*(e + f*x))/(b*e - a*f))^p*(b^3*(2 + m))) + (h^2*(a + b*x)^(3 + m)*(c + d*x)^n*(e + f*x)^p*AppellF1(3 + m, -n, -p, 4 + m, -((d*(a + b*x))/(b*c - a*d)), -((f*(a + b*x))/(b*e - a*f))))/(((b*(c + d*x))/(b*c - a*d))^n*((b*(e + f*x))/(b*e - a*f))^p*(b^3*(3 + m)))]
    @test_int [(a + b*x)^m*(c + d*x)^n*(e + f*x)^p*(g + h*x)^1, x, 7, ((b*g - a*h)*(a + b*x)^(1 + m)*(c + d*x)^n*(e + f*x)^p*AppellF1(1 + m, -n, -p, 2 + m, -((d*(a + b*x))/(b*c - a*d)), -((f*(a + b*x))/(b*e - a*f))))/(((b*(c + d*x))/(b*c - a*d))^n*((b*(e + f*x))/(b*e - a*f))^p*(b^2*(1 + m))) + (h*(a + b*x)^(2 + m)*(c + d*x)^n*(e + f*x)^p*AppellF1(2 + m, -n, -p, 3 + m, -((d*(a + b*x))/(b*c - a*d)), -((f*(a + b*x))/(b*e - a*f))))/(((b*(c + d*x))/(b*c - a*d))^n*((b*(e + f*x))/(b*e - a*f))^p*(b^2*(2 + m)))]
    @test_int [(a + b*x)^m*(c + d*x)^n*(e + f*x)^p*(g + h*x)^0, x, 3, ((a + b*x)^(1 + m)*(c + d*x)^n*(e + f*x)^p*AppellF1(1 + m, -n, -p, 2 + m, -((d*(a + b*x))/(b*c - a*d)), -((f*(a + b*x))/(b*e - a*f))))/(((b*(c + d*x))/(b*c - a*d))^n*((b*(e + f*x))/(b*e - a*f))^p*(b*(1 + m)))]
    @test_int [(a + b*x)^m*(c + d*x)^n*(e + f*x)^p/(g + h*x)^1, x, 0, CannotIntegrate(((a + b*x)^m*(c + d*x)^n*(e + f*x)^p)/(g + h*x), x)]

    @test_int [(a + b*x)^m*(c + d*x)^n/(e + f*x)^(m + n + 0)*(A + B*x), x, 7, ((A*b - a*B)*(a + b*x)^(1 + m)*(c + d*x)^n*(e + f*x)^(-m - n)*((b*(e + f*x))/(b*e - a*f))^(m + n)*AppellF1(1 + m, -n, m + n, 2 + m, -((d*(a + b*x))/(b*c - a*d)), -((f*(a + b*x))/(b*e - a*f))))/(((b*(c + d*x))/(b*c - a*d))^n*(b^2*(1 + m))) + (B*(a + b*x)^(2 + m)*(c + d*x)^n*(e + f*x)^(-m - n)*((b*(e + f*x))/(b*e - a*f))^(m + n)*AppellF1(2 + m, -n, m + n, 3 + m, -((d*(a + b*x))/(b*c - a*d)), -((f*(a + b*x))/(b*e - a*f))))/(((b*(c + d*x))/(b*c - a*d))^n*(b^2*(2 + m)))]
    @test_int [(a + b*x)^m*(c + d*x)^n/(e + f*x)^(m + n + 1)*(A + B*x), x, 7, (B*(a + b*x)^(1 + m)*(c + d*x)^n*(e + f*x)^(-m - n)*((b*(e + f*x))/(b*e - a*f))^(m + n)*AppellF1(1 + m, -n, m + n, 2 + m, -((d*(a + b*x))/(b*c - a*d)), -((f*(a + b*x))/(b*e - a*f))))/(((b*(c + d*x))/(b*c - a*d))^n*(b*f*(1 + m))) - ((B*e - A*f)*(a + b*x)^(1 + m)*(c + d*x)^n*(e + f*x)^(-m - n)*((b*(e + f*x))/(b*e - a*f))^(m + n)*AppellF1(1 + m, -n, 1 + m + n, 2 + m, -((d*(a + b*x))/(b*c - a*d)), -((f*(a + b*x))/(b*e - a*f))))/(((b*(c + d*x))/(b*c - a*d))^n*(f*(b*e - a*f)*(1 + m)))]
    @test_int [(a + b*x)^m*(c + d*x)^n/(e + f*x)^(m + n + 2)*(A + B*x), x, 5, (B*(a + b*x)^(1 + m)*(c + d*x)^n*(e + f*x)^(-m - n)*((b*(e + f*x))/(b*e - a*f))^(m + n)*AppellF1(1 + m, -n, 1 + m + n, 2 + m, -((d*(a + b*x))/(b*c - a*d)), -((f*(a + b*x))/(b*e - a*f))))/(((b*(c + d*x))/(b*c - a*d))^n*(f*(b*e - a*f)*(1 + m))) - ((B*e - A*f)*(a + b*x)^(1 + m)*(c + d*x)^n*(e + f*x)^(-1 - m - n)*HypergeometricFunctions._₂F₁(1 + m, -n, 2 + m, -(((d*e - c*f)*(a + b*x))/((b*c - a*d)*(e + f*x)))))/((((b*e - a*f)*(c + d*x))/((b*c - a*d)*(e + f*x)))^n*(f*(b*e - a*f)*(1 + m)))]
    @test_int [(a + b*x)^m*(c + d*x)^n/(e + f*x)^(m + n + 3)*(A + B*x), x, 3, ((B*e - A*f)*(a + b*x)^(1 + m)*(c + d*x)^(1 + n)*(e + f*x)^(-2 - m - n))/((b*e - a*f)*(d*e - c*f)*(2 + m + n)) - (1/((b*e - a*f)^2*(d*e - c*f)*(1 + m)*(2 + m + n)))*(((b*(B*c*e*(1 + m) + A*(c*f*(1 + n) - d*e*(2 + m + n))) + a*(A*d*f*(1 + m) + B*(d*e*(1 + n) - c*f*(2 + m + n))))*(a + b*x)^(1 + m)*(c + d*x)^n*(e + f*x)^(-1 - m - n)*HypergeometricFunctions._₂F₁(1 + m, -n, 2 + m, -(((d*e - c*f)*(a + b*x))/((b*c - a*d)*(e + f*x)))))/(((b*e - a*f)*(c + d*x))/((b*c - a*d)*(e + f*x)))^n)]
    @test_int [(a + b*x)^m*(c + d*x)^n/(e + f*x)^(m + n + 4)*(A + B*x), x, 4, ((B*e - A*f)*(a + b*x)^(1 + m)*(c + d*x)^(1 + n)*(e + f*x)^(-3 - m - n))/((b*e - a*f)*(d*e - c*f)*(3 + m + n)) + ((a*f*(A*d*f*(2 + m) + B*(d*e*(1 + n) - c*f*(3 + m + n))) + b*(B*e*(d*e + c*f*(1 + m)) + A*f*(c*f*(2 + n) - d*e*(4 + m + n))))*(a + b*x)^(1 + m)*(c + d*x)^(1 + n)*(e + f*x)^(-2 - m - n))/((b*e - a*f)^2*(d*e - c*f)^2*(2 + m + n)*(3 + m + n)) + (1/((b*e - a*f)^3*(d*e - c*f)^2*(1 + m)*(2 + m + n)*(3 + m + n)))*((((2 + m + n)*(a*b*c*d*f*(B*e - A*f) + b*d*e*((a*B*c*f + A*(b*d*e - b*c*f - a*d*f))*(3 + m + n) - (B*e - A*f)*(b*c*(1 + m) + a*d*(1 + n))) - (b*c + a*d)*f*((a*B*c*f + A*(b*d*e - b*c*f - a*d*f))*(3 + m + n) - (B*e - A*f)*(b*c*(1 + m) + a*d*(1 + n)))) - (b*c*(1 + m) + a*d*(1 + n))*(a*f*(A*d*f*(2 + m) + B*(d*e*(1 + n) - c*f*(3 + m + n))) + b*(B*e*(d*e + c*f*(1 + m)) + A*f*(c*f*(2 + n) - d*e*(4 + m + n)))))*(a + b*x)^(1 + m)*(c + d*x)^n*(e + f*x)^(-1 - m - n)*HypergeometricFunctions._₂F₁(1 + m, -n, 2 + m, -(((d*e - c*f)*(a + b*x))/((b*c - a*d)*(e + f*x)))))/(((b*e - a*f)*(c + d*x))/((b*c - a*d)*(e + f*x)))^n)]
    #= [(a + b*x)^m*(c + d*x)^n/(e + f*x)^(m + n + 5)*(A + B*x), x, 5, ((B*e - A*f)*(a + b*x)^(1 + m)*(c + d*x)^(1 + n)*(e + f*x)^(-4 - m - n))/((b*e - a*f)*(d*e - c*f)*(4 + m + n)) + ((a*f*(A*d*f*(3 + m) + B*(d*e*(1 + n) - c*f*(4 + m + n))) + b*(B*e*(2*d*e + c*f*(1 + m)) + A*f*(c*f*(3 + n) - d*e*(6 + m + n))))*(a + b*x)^(1 + m)*(c + d*x)^(1 + n)*(e + f*x)^(-3 - m - n))/((b*e - a*f)^2*(d*e - c*f)^2*(3 + m + n)*(4 + m + n)) + ((b*d*e*(a*f*(A*d*f*(3 + m) + B*(d*e*(1 + n) - c*f*(4 + m + n))) + b*(B*e*(2*d*e + c*f*(1 + m)) + A*f*(c*f*(3 + n) - d*e*(6 + m + n)))) - f*((3 + m + n)*(2*a*b*c*d*f*(B*e - A*f) + b*d*e*((a*B*c*f + A*(b*d*e - b*c*f - a*d*f))*(4 + m + n) - (B*e - A*f)*(b*c*(1 + m) + a*d*(1 + n))) - (b*c + a*d)*f*((a*B*c*f + A*(b*d*e - b*c*f - a*d*f))*(4 + m + n) - (B*e - A*f)*(b*c*(1 + m) + a*d*(1 + n)))) - (b*c*(1 + m) + a*d*(1 + n))*(a*f*(A*d*f*(3 + m) + B*(d*e*(1 + n) - c*f*(4 + m + n))) + b*(B*e*(2*d*e + c*f*(1 + m)) + A*f*(c*f*(3 + n) - d*e*(6 + m + n))))))*(a + b*x)^(1 + m)*(c + d*x)^(1 + n)*(e + f*x)^(-2 - m - n))/((b*e - a*f)^3*(d*e - c*f)^3*(2 + m + n)*(3 + m + n)*(4 + m + n)) - (((b*c*(1 + m) + a*d*(1 + n))*(b*d*e*(a*f*(A*d*f*(3 + m) + B*(d*e*(1 + n) - c*f*(4 + m + n))) + b*(B*e*(2*d*e + c*f*(1 + m)) + A*f*(c*f*(3 + n) - d*e*(6 + m + n)))) - f*((3 + m + n)*(2*a*b*c*d*f*(B*e - A*f) + b*d*e*((a*B*c*f + A*(b*d*e - b*c*f - a*d*f))*(4 + m + n) - (B*e - A*f)*(b*c*(1 + m) + a*d*(1 + n))) - (b*c + a*d)*f*((a*B*c*f + A*(b*d*e - b*c*f - a*d*f))*(4 + m + n) - (B*e - A*f)*(b*c*(1 + m) + a*d*(1 + n)))) - (b*c*(1 + m) + a*d*(1 + n))*(a*f*(A*d*f*(3 + m) + B*(d*e*(1 + n) - c*f*(4 + m + n))) + b*(B*e*(2*d*e + c*f*(1 + m)) + A*f*(c*f*(3 + n) - d*e*(6 + m + n)))))) - (2 + m + n)*(a*b*c*d*f*(a*f*(A*d*f*(3 + m) + B*(d*e*(1 + n) - c*f*(4 + m + n))) + b*(B*e*(2*d*e + c*f*(1 + m)) + A*f*(c*f*(3 + n) - d*e*(6 + m + n)))) + b*d*e*((3 + m + n)*(2*a*b*c*d*f*(B*e - A*f) + b*d*e*((a*B*c*f + A*(b*d*e - b*c*f - a*d*f))*(4 + m + n) - (B*e - A*f)*(b*c*(1 + m) + a*d*(1 + n))) - (b*c + a*d)*f*((a*B*c*f + A*(b*d*e - b*c*f - a*d*f))*(4 + m + n) - (B*e - A*f)*(b*c*(1 + m) + a*d*(1 + n)))) - (b*c*(1 + m) + a*d*(1 + n))*(a*f*(A*d*f*(3 + m) + B*(d*e*(1 + n) - c*f*(4 + m + n))) + b*(B*e*(2*d*e + c*f*(1 + m)) + A*f*(c*f*(3 + n) - d*e*(6 + m + n))))) - (b*c + a*d)*f*((3 + m + n)*(2*a*b*c*d*f*(B*e - A*f) + b*d*e*((a*B*c*f + A*(b*d*e - b*c*f - a*d*f))*(4 + m + n) - (B*e - A*f)*(b*c*(1 + m) + a*d*(1 + n))) - (b*c + a*d)*f*((a*B*c*f + A*(b*d*e - b*c*f - a*d*f))*(4 + m + n) - (B*e - A*f)*(b*c*(1 + m) + a*d*(1 + n)))) - (b*c*(1 + m) + a*d*(1 + n))*(a*f*(A*d*f*(3 + m) + B*(d*e*(1 + n) - c*f*(4 + m + n))) + b*(B*e*(2*d*e + c*f*(1 + m)) + A*f*(c*f*(3 + n) - d*e*(6 + m + n)))))))*(a + b*x)^(1 + m)*(c + d*x)^n*(e + f*x)^(-1 - m - n)*HypergeometricFunctions._₂F₁(1 + m, -n, 2 + m, -(((d*e - c*f)*(a + b*x))/((b*c - a*d)*(e + f*x)))))/(((b*e - a*f)*(c + d*x))/((b*c - a*d)*(e + f*x)))^n/((b*e - a*f)^4*(d*e - c*f)^3*(1 + m)*(2 + m + n)*(3 + m + n)*(4 + m + n))] =#

    #= ::Title:: =#
    #=Integrands*of*the*form*(h*x)^q*(d+e*x)^m*(f+g*x)^n*(a+b*x+c*x^2)^p=#

    #= ::Section::Closed:: =#
    #=Integrands*of*the*form*(h*x)^q*(d+e*x)^m*(f+g*x)^m*(a+b*x+c*x^2)^p*when*e*f+d*g=0=#

    #= ::Subsection::Closed:: =#
    #=Integrands*of*the*form*x^q*(1+d*x)^(m/2)*(1-d*x)^(m/2)*(a+b*x+c*x^2)^p=#

    @test_int [x^1*(a + b*x + c*x^2)/(sqrt(1 + d*x)*sqrt(1 - d*x)), x, 4, -((c*x^2*sqrt(1 - d^2*x^2))/(3*d^2)) - ((2*(2*c + 3*a*d^2) + 3*b*d^2*x)*sqrt(1 - d^2*x^2))/(6*d^4) + (b*asin(d*x))/(2*d^3)]
    @test_int [x^0*(a + b*x + c*x^2)/(sqrt(1 + d*x)*sqrt(1 - d*x)), x, 4, -((b*sqrt(1 - d^2*x^2))/d^2) - (c*x*sqrt(1 - d^2*x^2))/(2*d^2) + ((c + 2*a*d^2)*asin(d*x))/(2*d^3)]
    @test_int [(a + b*x + c*x^2)/(x^1*sqrt(1 + d*x)*sqrt(1 - d*x)), x, 7, -((c*sqrt(1 - d^2*x^2))/d^2) + (b*asin(d*x))/d - a*atanh(sqrt(1 - d^2*x^2))]
    @test_int [(a + b*x + c*x^2)/(x^2*sqrt(1 + d*x)*sqrt(1 - d*x)), x, 7, -((a*sqrt(1 - d^2*x^2))/x) + (c*asin(d*x))/d - b*atanh(sqrt(1 - d^2*x^2))]
    @test_int [(a + b*x + c*x^2)/(x^3*sqrt(1 + d*x)*sqrt(1 - d*x)), x, 6, -((a*sqrt(1 - d^2*x^2))/(2*x^2)) - (b*sqrt(1 - d^2*x^2))/x - (1/2)*(2*c + a*d^2)*atanh(sqrt(1 - d^2*x^2))]

    #= ::Subsection::Closed:: =#
    #=Integrands*of*the*form*x^q*(-1+d*x)^(m/2)*(1+d*x)^(m/2)*(a+b*x+c*x^2)^p=#

    @test_int [x^1*(a + b*x + c*x^2)/(sqrt(-1 + d*x)*sqrt(1 + d*x)), x, 5, (c*x^2*sqrt(-1 + d*x)*sqrt(1 + d*x))/(3*d^2) + (sqrt(-1 + d*x)*sqrt(1 + d*x)*(2*(2*c + 3*a*d^2) + 3*b*d^2*x))/(6*d^4) + (b*acosh(d*x))/(2*d^3), -((c*x^2*(1 - d^2*x^2))/(3*d^2*sqrt(-1 + d*x)*sqrt(1 + d*x))) - ((2*(2*c + 3*a*d^2) + 3*b*d^2*x)*(1 - d^2*x^2))/(6*d^4*sqrt(-1 + d*x)*sqrt(1 + d*x)) + (b*sqrt(-1 + d^2*x^2)*atanh((d*x)/sqrt(-1 + d^2*x^2)))/(2*d^3*sqrt(-1 + d*x)*sqrt(1 + d*x))]
    @test_int [x^0*(a + b*x + c*x^2)/(sqrt(-1 + d*x)*sqrt(1 + d*x)), x, 5, ((2*b + c*x)*sqrt(-1 + d*x)*sqrt(1 + d*x))/(2*d^2) + ((c + 2*a*d^2)*acosh(d*x))/(2*d^3), -((b*(1 - d^2*x^2))/(d^2*sqrt(-1 + d*x)*sqrt(1 + d*x))) - (c*x*(1 - d^2*x^2))/(2*d^2*sqrt(-1 + d*x)*sqrt(1 + d*x)) + ((c + 2*a*d^2)*sqrt(-1 + d^2*x^2)*atanh((d*x)/sqrt(-1 + d^2*x^2)))/(2*d^3*sqrt(-1 + d*x)*sqrt(1 + d*x))]
    @test_int [(a + b*x + c*x^2)/(x^1*sqrt(-1 + d*x)*sqrt(1 + d*x)), x, 8, (c*sqrt(-1 + d*x)*sqrt(1 + d*x))/d^2 + (b*acosh(d*x))/d + a*atan(sqrt(-1 + d*x)*sqrt(1 + d*x)), -((c*(1 - d^2*x^2))/(d^2*sqrt(-1 + d*x)*sqrt(1 + d*x))) + (a*sqrt(-1 + d^2*x^2)*atan(sqrt(-1 + d^2*x^2)))/(sqrt(-1 + d*x)*sqrt(1 + d*x)) + (b*sqrt(-1 + d^2*x^2)*atanh((d*x)/sqrt(-1 + d^2*x^2)))/(d*sqrt(-1 + d*x)*sqrt(1 + d*x))]
    @test_int [(a + b*x + c*x^2)/(x^2*sqrt(-1 + d*x)*sqrt(1 + d*x)), x, 8, (a*sqrt(-1 + d*x)*sqrt(1 + d*x))/x + (c*acosh(d*x))/d + b*atan(sqrt(-1 + d*x)*sqrt(1 + d*x)), -((a*(1 - d^2*x^2))/(x*sqrt(-1 + d*x)*sqrt(1 + d*x))) + (b*sqrt(-1 + d^2*x^2)*atan(sqrt(-1 + d^2*x^2)))/(sqrt(-1 + d*x)*sqrt(1 + d*x)) + (c*sqrt(-1 + d^2*x^2)*atanh((d*x)/sqrt(-1 + d^2*x^2)))/(d*sqrt(-1 + d*x)*sqrt(1 + d*x))]
    @test_int [(a + b*x + c*x^2)/(x^3*sqrt(-1 + d*x)*sqrt(1 + d*x)), x, 6, (a*sqrt(-1 + d*x)*sqrt(1 + d*x))/(2*x^2) + (b*sqrt(-1 + d*x)*sqrt(1 + d*x))/x + (1/2)*(2*c + a*d^2)*atan(sqrt(-1 + d*x)*sqrt(1 + d*x)), -((a*(1 - d^2*x^2))/(2*x^2*sqrt(-1 + d*x)*sqrt(1 + d*x))) - (b*(1 - d^2*x^2))/(x*sqrt(-1 + d*x)*sqrt(1 + d*x)) + ((2*c + a*d^2)*sqrt(-1 + d^2*x^2)*atan(sqrt(-1 + d^2*x^2)))/(2*sqrt(-1 + d*x)*sqrt(1 + d*x))]
    @test_int [(a + b*x + c*x^2)/(x^4*sqrt(-1 + d*x)*sqrt(1 + d*x)), x, 7, (a*sqrt(-1 + d*x)*sqrt(1 + d*x))/(3*x^3) + (b*sqrt(-1 + d*x)*sqrt(1 + d*x))/(2*x^2) + ((3*c + 2*a*d^2)*sqrt(-1 + d*x)*sqrt(1 + d*x))/(3*x) + (1/2)*b*d^2*atan(sqrt(-1 + d*x)*sqrt(1 + d*x)), -((a*(1 - d^2*x^2))/(3*x^3*sqrt(-1 + d*x)*sqrt(1 + d*x))) - (b*(1 - d^2*x^2))/(2*x^2*sqrt(-1 + d*x)*sqrt(1 + d*x)) - ((3*c + 2*a*d^2)*(1 - d^2*x^2))/(3*x*sqrt(-1 + d*x)*sqrt(1 + d*x)) + (b*d^2*sqrt(-1 + d^2*x^2)*atan(sqrt(-1 + d^2*x^2)))/(2*sqrt(-1 + d*x)*sqrt(1 + d*x))]
    end

max_stars_repo_path: test/1 Algebraic functions/1.1 Binomial products/1.1.1 Linear/1.1.1.4 (a+b x)^m (c+d x)^n (e+f x)^p (g+h x)^q.jl


text:
# This file is a part of JuliaFEM.
# License is MIT: see https://github.com/JuliaFEM/JuliaFEM.jl/blob/master/LICENSE.md

#using PyPlot
#using JuliaFEM
#using JuliaFEM.MaterialModels: stiffnessTensor, calculate_stress, State
#using JuliaFEM.MaterialModels: stiffnessTensorPlaneStress
using Test

#=
function test_von_mises_3D_basic()

    steps = 1000
    strain_max = 0.003
    num_cycles = 3
    E = 200.0e3
    nu =  0.3
    ν = 0.3
    nu = 0.3
    C = E/((1.0+nu)*(1.0-2.0*nu)) * [
        1.0-nu nu nu 0.0 0.0 0.0
        nu 1.0-nu nu 0.0 0.0 0.0
        nu nu 1.0-nu 0.0 0.0 0.0
        0.0 0.0 0.0 0.5-nu 0.0 0.0
        0.0 0.0 0.0 0.0 0.5-nu 0.0
        0.0 0.0 0.0 0.0 0.0 0.5-nu]

    strain_tot = zeros(Float64, (steps, 6))
    strain_tot2 = zeros(Float64, (steps, 6))
    strain_tot3 = zeros(Float64, (steps, 6))

    # Adding only strain in x-axis and counting for the poisson effect
    strain_tot[:, 1] = strain_max * sin(2 * pi * linspace(0, num_cycles, steps))
    strain_tot[:, 2] = strain_max * sin(2 * pi * linspace(0, num_cycles, steps)).*-ν
    strain_tot[:, 3] = strain_max * sin(2 * pi * linspace(0, num_cycles, steps)).*-ν
    strain_tot[:, 4] = strain_max / 10 * sin(2 * pi * linspace(0, num_cycles, steps))

    strain_last = zeros(Float64, (6))
    strain_p = zeros(Float64, (6))
    stress = zeros(Float64, (6, 1))
    stress_y =  200.0
    ss = Float64[]
    ee = Float64[]

    eig_stress = zeros(Float64, (3, 3))
    eig_vals = zeros(Float64, (steps, 3))

    function fill_tensor(a, b)
        a[1, 1] = b[1]
        a[2, 2] = b[2]
        a[3, 3] = b[3]

        a[1, 2] = b[6]
        a[1, 3] = b[5]
        a[2, 3] = b[4]

        a[2, 1] = b[6]
        a[3, 1] = b[5]
        a[3, 2] = b[4]
    end

    @info("Starting calculation")
    tic()
    params = Dict("yield_stress" => stress_y)
    stress_new = zeros(Float64, 6)
    stress_last = zeros(Float64, 6)
    strain = zeros(Float64, 6)
    Dtan = zeros(6,6)
    #for i=1:steps
    #    strain_new = reshape(strain_tot[i, :, :], (6, 1))
    #    dstrain = strain_new - strain
    #    JuliaFEM.plastic_von_mises!(stress_new, stress_last, dstrain, C, params, Dtan, Val{:type_3d})
    #    strain[:] = vec(strain_new)[:]
    #    push!(ss, stress[1])
    #    push!(ee, strain[1])
    #    fill_tensor(eig_stress, stress_new)
    #    eig_vals[i, :] = sort(eigvals(eig_stress))
    #    stress_last[:] = stress_new[:]
    #end

    toc()
    # ================ Plotting =================== #
    n(θ, ϕ) = [sin(θ)*cos(ϕ)
               sin(θ)*sin(ϕ)
               cos(θ)]
    m(θ, ϕ, χ) = [-sin(ϕ)*cos(χ)-cos(θ)*cos(ϕ)*sin(χ)
                   cos(ϕ)*cos(χ)-cos(θ)*sin(ϕ)*sin(χ)
                   sin(θ)*sin(χ)]

    w = [sqrt(2/3) * 200 * m(54.735 * pi / 180, 45 * pi/180, x) for x=0:0.15:(2*pi+0.1)]
    base_vec =  [1 1 1] / sqrt(3)

    for i=-5:5
        tt = [w[x] + vec(base_vec) + 50 * i for x=1:length(w)]
        x = map(x->tt[x][1], collect(1:length(w)))
        y = map(x->tt[x][2], collect(1:length(w)))
        z = map(x->tt[x][3], collect(1:length(w)))
        plot3D(x, y, z, color="blue")
    end

    tt = [w[x] + vec(base_vec) + 50 * -5 for x=1:length(w)]
    x_start = map(x->tt[x][1], collect(1:length(w)))[1:5:end]
    y_start = map(x->tt[x][2], collect(1:length(w)))[1:5:end]
    z_start = map(x->tt[x][3], collect(1:length(w)))[1:5:end]

    tt = [w[x] + vec(base_vec) + 50 * 5 for x=1:length(w)]
    x_end = map(x->tt[x][1], collect(1:length(w)))[1:5:end]
    y_end = map(x->tt[x][2], collect(1:length(w)))[1:5:end]
    z_end = map(x->tt[x][3], collect(1:length(w)))[1:5:end]

    for i=1:length(x_start)
        x = [x_start[i], x_end[i]]
        y = [y_start[i], y_end[i]]
        z = [z_start[i], z_end[i]]
        plot3D(x, y, z, color="blue")
    end

    @info("Calculation finished")
    # plot3D(ee, ss)

    # plot the surface
    xx = zeros(10, 10)
    yy = zeros(10, 10)

    for i=1:10
        for j=1:10
            xx[i, j] = (i - 5) * 100
            yy[i, j] = (j - 5) * 100
        end
    end

    # calculate corresponding z
    z = zeros(10, 10)
    for i=1:10
        for j=1:10
            z[i, j] = 1
        end
    end

    # ==================================================================
    # plot the surface
    plot_surface(xx, yy, z, color="blue")

    stress_y =  200.0

    function vm_upper(a, c)
        vals = f(a[1], a[2], c)
        vm(vals[1], vals[2], 200)
    end
    vm(a,b) = sqrt(a^2 - a*b + b^2) - stress_y
    f(m,c) = [600*cos(c) 600*sin(c)].*m
    x_vals = []
    max_iter = 100
    y_vals = []
    for i=0:0.1:(2*pi+0.3)
        wf(x) = f(x, i)
        t = 0.01
        step = 2
        merkki = -1
        s11, s22 = wf(t)
        ii = 0
        while (abs(vm(s11, s22)) > 1e-7) && ii < max_iter
            val = vm(s11, s22)
            if sign(val) != merkki
                merkki *= -1
                step *= -0.5
            end
            t += step
            s11, s22 = wf(t)
            ii += 1
        end
        push!(x_vals, s11)
        push!(y_vals, s22)
    end
    plot(x_vals, y_vals, zeros(length(y_vals)), color="yellow")
    axis("equal")
    # ==================================================================

    plot3D(eig_vals[:, 1], eig_vals[:, 2], eig_vals[:, 3], color="red")
    PyPlot.title("Stress path and von Mises yield surface")
    PyPlot.xlabel("Eig Stress 1")
    PyPlot.ylabel("Eig Stress 2")
    PyPlot.zlabel("Eig Stress 3")
    PyPlot.grid()
    PyPlot.show()

end

function test_von_mises_planestress_basic()

    steps = 1000
    strain_max = 0.004
    num_cycles = 1.
    E = 200000.
    nu = 0.3
    ν = 0.3
    C = E/((1+nu)*(1-2*nu)) .* [
        1-nu   nu 0
        nu   1-nu 0
        0    0    (1-2*nu)/2]

    strain_tot = zeros(Float64, (steps, 3))

    # Adding only strain in x-axis and counting for the poisson effect
    strain_tot[:, 1] = strain_max * sin(2 * pi * linspace(0, num_cycles, steps))
    strain_tot[:, 2] = strain_max * sin(2 * pi * linspace(0, num_cycles, steps)).*-ν
    strain_tot[:, 3] = strain_max * sin(2 * pi * linspace(0, num_cycles, steps)).*-ν

    strain_last = zeros(Float64, (3))
    strain_p = zeros(Float64, (3))
    stress = zeros(Float64, (3, 1))
    stress_y =  400
    ss = Float64[]
    ee = Float64[]

    ss2 = Float64[]
    ee2 = Float64[]

    eig_stress = zeros(Float64, (3, 3))
    eig_vals = zeros(Float64, (steps, 3))

    @info("Starting calculation")
    tic()

    stress_new = zeros(Float64, 3)
    stress_last = zeros(Float64, 3)
    strain = zeros(Float64, 3)
    strain_last = zeros(Float64, 3)
    params = Dict("yield_stress" => stress_y)
    #Dtan = C
    Dtan = zeros(3,3)
    for i=1:steps
        println("last stress: ", round(stress_last, 2))
        strain_new = vec(strain_tot[i, :, :])
        dstrain = strain_new - strain
        println("analytical stress: ", round((C * strain_new)', 2))

        JuliaFEM.plastic_von_mises!(stress_new, stress_last, dstrain, C, params, Dtan, Val{:type_2d})
        strain[:] = vec(strain_new)[:]
        s1, s2, t12  = stress_new
        se1 = (s1 + s2)/2 + sqrt(((s1 - s2)/2)^2 + t12^2)
        se2 = (s1 + s2)/2 - sqrt(((s1 - s2)/2)^2 + t12^2)
        push!(ss, se1)
        push!(ee, se2)
        stress_last[:] = stress_new[:]
    end
    toc()

    function vm_upper(a, c)
        vals = f(a[1], a[2], c)
        vm(vals[1], vals[2], 200)
    end
    vm(a,b) = sqrt(a^2 - a*b + b^2) - stress_y
    f(m,c) = [600*cos(c) 600*sin(c)].*m
    x_vals = []
    max_iter = 100
    y_vals = []
    for i=0:0.1:(2*pi+0.3)
        wf(x) = f(x, i)
        t = 0.01
        step = 2
        merkki = -1
        s11, s22 = wf(t)
        ii = 0
        while (abs(vm(s11, s22)) > 1e-7) && ii < max_iter
            val = vm(s11, s22)
            if sign(val) != merkki
                merkki *= -1
                step *= -0.5
            end
            t += step
            s11, s22 = wf(t)
            ii += 1
        end
        push!(x_vals, s11)
        push!(y_vals, s22)
    end

    plot(x_vals, y_vals)
    plot(ee, ss)
    show()
end

test_von_mises_3D_basic()

# test_von_mises_planestress_basic()

=#

ext: jl


text:
# Autogenerated wrapper script for PDAL_jll for x86_64-apple-darwin
export libpdal_base, libpdal_plugin_kernel_fauxplugin, libpdal_util, pdal

using GDAL_jll
using libgeotiff_jll
using LASzip_jll
JLLWrappers.@generate_wrapper_header("PDAL")
JLLWrappers.@declare_library_product(libpdal_base, "@rpath/libpdalcpp.13.dylib")
JLLWrappers.@declare_library_product(libpdal_plugin_kernel_fauxplugin, "@rpath/libpdal_plugin_kernel_fauxplugin.13.dylib")
JLLWrappers.@declare_library_product(libpdal_util, "@rpath/libpdal_util.13.dylib")
JLLWrappers.@declare_executable_product(pdal)
function __init__()
    JLLWrappers.@generate_init_header(GDAL_jll, libgeotiff_jll, LASzip_jll)
    JLLWrappers.@init_library_product(
        libpdal_base,
        "lib/libpdalcpp.13.0.0.dylib",
        RTLD_LAZY | RTLD_DEEPBIND,
    )

    JLLWrappers.@init_library_product(
        libpdal_plugin_kernel_fauxplugin,
        "lib/libpdal_plugin_kernel_fauxplugin.13.0.0.dylib",
        RTLD_LAZY | RTLD_DEEPBIND,
    )

    JLLWrappers.@init_library_product(
        libpdal_util,
        "lib/libpdal_util.13.0.0.dylib",
        RTLD_LAZY | RTLD_DEEPBIND,
    )

    JLLWrappers.@init_executable_product(
        pdal,
        "bin/pdal",
    )

    JLLWrappers.@generate_init_footer()
end  # __init__()


text:
"""
# Usage

    solve(prob, DOMatrixDiscrete())

Use distributed order strip matrix algorithm to solve distriubted order problem.

### References

```tex
@inproceedings{Jiao2012DistributedOrderDS,
  title={Distributed-Order Dynamic Systems - Stability, Simulation, Applications and Perspectives},
  author={Zhuang Jiao and Yang Quan Chen and Igor Podlubny},
  booktitle={Springer Briefs in Electrical and Computer Engineering},
  year={2012}
}
```
"""
struct DOMatrixDiscrete <: FractionalDiffEqAlgorithm end

isFunction(x) = isa(x, Function) ? true : false

function solve(prob::DODEProblem, h, ::DOMatrixDiscrete)
    @unpack parameters, orders, interval, rightfun, u0, tspan = prob
    N = length(tspan)
    # find the index of the distributed order
    DOid = findall(isFunction, orders)

    ϕ = orders[DOid][1]
    ω = parameters[DOid][1]
    modifiedorders = deleteat!(orders, DOid)
    modifiedparameters = deleteat!(parameters, DOid)

    highestorder = Int64(findmax(ceil.(modifiedorders))[1])
    rows = collect(Int64, 1:highestorder)

    equation = zeros(N, N)

    # Construct systems using matrices
    for (i, j) in zip(modifiedparameters, modifiedorders)
        equation += i*D(N, j, h)
    end

    # Don't forget the distributed order term!
    equation += ω.*DOB(ϕ, interval, 0.01, N, h)

    F = eliminator(N, rows)*(rightfun.(tspan).+ic_handling(orders, parameters, u0))
    M = eliminator(N, rows)*equation*eliminator(N, rows)'

    Y = M\F

    if typeof(u0) <: Number
        Y0 = Y
    else
        Y0 = [zeros(length(u0)); Y]
    end
    #Y0 = [u0[:]; Y]
    return DODESolution(tspan, Y0.+u0[1])
end

function ic_handling(orders, parameters, initialcondition)
    if typeof(initialcondition) <: Number
        zerosordersid = findall(x -> x == 0, orders)
        zerosorderparameter = (parameters[zerosordersid])[1]
        return -zerosorderparameter*initialcondition
    else
        return initialcondition[1]# Need to be done in FODEMatrixDiscrete
    end
end

#=
h = 0.01; t = collect(h:h:5);
fun(t)=-0.1
prob = DODEProblem([1, 0.1], [x->6*x*(1-x), 0], [0, 1], t, h, fun)

result = solve(prob, DOMatrixDiscrete())
using Plots
plot(t, result)
=#