text:
@testset "6.2.5 Hyperbolic cosine functions" begin
    (A, B, C, F, a, b, c, d, e, f, m, n, x, ) = @variables A B C F a b c d e f m n x

    #= ::Package:: =#

    #= ::Title:: =#
    #=Integration*Problems*Involving*Hyperbolic*Cosines=#

    #= ::Section::Closed:: =#
    #=Integrands*of*the*form*cosh(c+d*x)^m*(a+b*cosh(c+d*x))^n*(A+B*cosh(c+d*x)+C*cosh(c+d*x)^2)=#

    #= ::Subsection::Closed:: =#
    #=Integrands*of*the*form*cosh(a+b*x)^n=#

    @test_int [cosh(a + b*x)^1, x, 1, sinh(a + b*x)/b]
    @test_int [cosh(a + b*x)^2, x, 2, x/2 + (cosh(a + b*x)*sinh(a + b*x))/(2*b)]
    @test_int [cosh(a + b*x)^3, x, 2, sinh(a + b*x)/b + sinh(a + b*x)^3/(3*b)]
    @test_int [cosh(a + b*x)^4, x, 3, (3*x)/8 + (3*cosh(a + b*x)*sinh(a + b*x))/(8*b) + (cosh(a + b*x)^3*sinh(a + b*x))/(4*b)]
    @test_int [cosh(a + b*x)^5, x, 2, sinh(a + b*x)/b + (2*sinh(a + b*x)^3)/(3*b) + sinh(a + b*x)^5/(5*b)]
    @test_int [cosh(a + b*x)^6, x, 4, (5*x)/16 + (5*cosh(a + b*x)*sinh(a + b*x))/(16*b) + (5*cosh(a + b*x)^3*sinh(a + b*x))/(24*b) + (cosh(a + b*x)^5*sinh(a + b*x))/(6*b)]

    #= ::Subsection::Closed:: =#
    #=Integrands*of*the*form*cosh(a+b*x)^(n/2)=#

    @test_int [cosh(a + b*x)^(7/2), x, 3, -((10*im*Elliptic.F((1/2)*im*(a + b*x), 2))/(21*b)) + (10*sqrt(cosh(a + b*x))*sinh(a + b*x))/(21*b) + (2*cosh(a + b*x)^(5/2)*sinh(a + b*x))/(7*b)]
    @test_int [cosh(a + b*x)^(5/2), x, 2, -((6*im*Elliptic.E((1/2)*im*(a + b*x), 2))/(5*b)) + (2*cosh(a + b*x)^(3/2)*sinh(a + b*x))/(5*b)]
    @test_int [cosh(a + b*x)^(3/2), x, 2, -((2*im*Elliptic.F((1/2)*im*(a + b*x), 2))/(3*b)) + (2*sqrt(cosh(a + b*x))*sinh(a + b*x))/(3*b)]
    @test_int [cosh(a + b*x)^(1/2), x, 1, -((2*im*Elliptic.E((1/2)*im*(a + b*x), 2))/b)]
    @test_int [1/cosh(a + b*x)^(1/2), x, 1, -((2*im*Elliptic.F((1/2)*im*(a + b*x), 2))/b)]
    @test_int [1/cosh(a + b*x)^(3/2), x, 2, (2*im*Elliptic.E((1/2)*im*(a + b*x), 2))/b + (2*sinh(a + b*x))/(b*sqrt(cosh(a + b*x)))]
    @test_int [1/cosh(a + b*x)^(5/2), x, 2, -((2*im*Elliptic.F((1/2)*im*(a + b*x), 2))/(3*b)) + (2*sinh(a + b*x))/(3*b*cosh(a + b*x)^(3/2))]
    @test_int [1/cosh(a + b*x)^(7/2), x, 3, (6*im*Elliptic.E((1/2)*im*(a + b*x), 2))/(5*b) + (2*sinh(a + b*x))/(5*b*cosh(a + b*x)^(5/2)) + (6*sinh(a + b*x))/(5*b*sqrt(cosh(a + b*x)))]

    #= ::Subsection::Closed:: =#
    #=Integrands*of*the*form*(c*cosh(a+b*x))^n=#

    #= ::Subsubsection::Closed:: =#
    #=n/2=#

    @test_int [(a*cosh(x))^(7/2), x, 4, -((10*im*a^4*sqrt(cosh(x))*Elliptic.F((im*x)/2, 2))/(21*sqrt(a*cosh(x)))) + (10/21)*a^3*sqrt(a*cosh(x))*sinh(x) + (2/7)*a*(a*cosh(x))^(5/2)*sinh(x)]
    @test_int [(a*cosh(x))^(5/2), x, 3, -((6*im*a^2*sqrt(a*cosh(x))*Elliptic.E((im*x)/2, 2))/(5*sqrt(cosh(x)))) + (2/5)*a*(a*cosh(x))^(3/2)*sinh(x)]
    @test_int [(a*cosh(x))^(3/2),x, 3, -((2*im*a^2*sqrt(cosh(x))*Elliptic.F((im*x)/2, 2))/(3*sqrt(a*cosh(x)))) + (2/3)*a*sqrt(a*cosh(x))*sinh(x)]
    @test_int [(a*cosh(x))^(1/2), x, 2, -((2*im*sqrt(a*cosh(x))*Elliptic.E((im*x)/2, 2))/sqrt(cosh(x)))]
    @test_int [1/(a*cosh(x))^(1/2), x, 2, -((2*im*sqrt(cosh(x))*Elliptic.F((im*x)/2, 2))/sqrt(a*cosh(x)))]
    @test_int [1/(a*cosh(x))^(3/2), x, 3, (2*im*sqrt(a*cosh(x))*Elliptic.E((im*x)/2, 2))/(a^2*sqrt(cosh(x))) + (2*sinh(x))/(a*sqrt(a*cosh(x)))]
    @test_int [1/(a*cosh(x))^(5/2), x, 3, -((2*im*sqrt(cosh(x))*Elliptic.F((im*x)/2, 2))/(3*a^2*sqrt(a*cosh(x)))) + (2*sinh(x))/(3*a*(a*cosh(x))^(3/2))]
    @test_int [1/(a*cosh(x))^(7/2), x, 4, (6*im*sqrt(a*cosh(x))*Elliptic.E((im*x)/2, 2))/(5*a^4*sqrt(cosh(x))) + (2*sinh(x))/(5*a*(a*cosh(x))^(5/2)) + (6*sinh(x))/(5*a^3*sqrt(a*cosh(x)))]

    #= ::Subsubsection::Closed:: =#
    #=n*symbolic=#

    @test_int [(b*cosh(c + d*x))^n, x, 1, -(((b*cosh(c + d*x))^(1 + n)*HypergeometricFunctions._₂F₁(1/2, (1 + n)/2, (3 + n)/2, cosh(c + d*x)^2)*sinh(c + d*x))/(b*d*(1 + n)*sqrt(-sinh(c + d*x)^2)))]

    #= ::Subsection::Closed:: =#
    #=Integrands*of*the*form*cosh(c+d*x)^m*(a+b*cosh(c+d*x))^n*when*a^2-b^2=0=#

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

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

    @test_int [cosh(x)^4/(a + a*cosh(x)), x, 6, -((3*x)/(2*a)) + (4*sinh(x))/a - (3*cosh(x)*sinh(x))/(2*a) - (cosh(x)^3*sinh(x))/(a + a*cosh(x)) + (4*sinh(x)^3)/(3*a)]
    @test_int [cosh(x)^3/(a + a*cosh(x)), x, 2, (3*x)/(2*a) - (2*sinh(x))/a + (3*cosh(x)*sinh(x))/(2*a) - (cosh(x)^2*sinh(x))/(a + a*cosh(x))]
    @test_int [cosh(x)^2/(a + a*cosh(x)), x, 4, -(x/a) + sinh(x)/a + sinh(x)/(a*(1 + cosh(x)))]
    @test_int [cosh(x)^1/(a + a*cosh(x)), x, 2, x/a - sinh(x)/(a + a*cosh(x))]
    @test_int [sech(x)^1/(a + a*cosh(x)), x, 3, atan(sinh(x))/a - sinh(x)/(a + a*cosh(x))]
    @test_int [sech(x)^2/(a + a*cosh(x)), x, 5, -(atan(sinh(x))/a) + (2*tanh(x))/a - tanh(x)/(a + a*cosh(x))]
    @test_int [sech(x)^3/(a + a*cosh(x)), x, 6, (3*atan(sinh(x)))/(2*a) - (2*tanh(x))/a + (3*sech(x)*tanh(x))/(2*a) - (sech(x)*tanh(x))/(a + a*cosh(x))]
    @test_int [sech(x)^4/(a + a*cosh(x)), x, 6, -((3*atan(sinh(x)))/(2*a)) + (4*tanh(x))/a - (3*sech(x)*tanh(x))/(2*a) - (sech(x)^2*tanh(x))/(a + a*cosh(x)) - (4*tanh(x)^3)/(3*a)]

    @test_int [1/(1 + cosh(c + d*x)), x, 1, sinh(c + d*x)/(d*(1 + cosh(c + d*x)))]
    @test_int [1/(1 + cosh(c + d*x))^2, x, 2, sinh(c + d*x)/(3*d*(1 + cosh(c + d*x))^2) + sinh(c + d*x)/(3*d*(1 + cosh(c + d*x)))]
    @test_int [1/(1 + cosh(c + d*x))^3, x, 3, sinh(c + d*x)/(5*d*(1 + cosh(c + d*x))^3) + (2*sinh(c + d*x))/(15*d*(1 + cosh(c + d*x))^2) + (2*sinh(c + d*x))/(15*d*(1 + cosh(c + d*x)))]
    @test_int [1/(1 + cosh(c + d*x))^4, x, 4, sinh(c + d*x)/(7*d*(1 + cosh(c + d*x))^4) + (3*sinh(c + d*x))/(35*d*(1 + cosh(c + d*x))^3) + (2*sinh(c + d*x))/(35*d*(1 + cosh(c + d*x))^2) + (2*sinh(c + d*x))/(35*d*(1 + cosh(c + d*x)))]

    @test_int [1/(1 - cosh(c + d*x)), x, 1, -(sinh(c + d*x)/(d*(1 - cosh(c + d*x))))]
    @test_int [1/(1 - cosh(c + d*x))^2, x, 2, -(sinh(c + d*x)/(3*d*(1 - cosh(c + d*x))^2)) - sinh(c + d*x)/(3*d*(1 - cosh(c + d*x)))]
    @test_int [1/(1 - cosh(c + d*x))^3, x, 3, -(sinh(c + d*x)/(5*d*(1 - cosh(c + d*x))^3)) - (2*sinh(c + d*x))/(15*d*(1 - cosh(c + d*x))^2) - (2*sinh(c + d*x))/(15*d*(1 - cosh(c + d*x)))]
    @test_int [1/(1 - cosh(c + d*x))^4, x, 4, -(sinh(c + d*x)/(7*d*(1 - cosh(c + d*x))^4)) - (3*sinh(c + d*x))/(35*d*(1 - cosh(c + d*x))^3) - (2*sinh(c + d*x))/(35*d*(1 - cosh(c + d*x))^2) - (2*sinh(c + d*x))/(35*d*(1 - cosh(c + d*x)))]

    @test_int [cosh(x)/sqrt(a + a*cosh(x)), x, 3, -((sqrt(2)*atan((sqrt(a)*sinh(x))/(sqrt(2)*sqrt(a + a*cosh(x)))))/sqrt(a)) + (2*sinh(x))/sqrt(a + a*cosh(x))]
    @test_int [cosh(x)/sqrt(a - a*cosh(x)), x, 3, -((sqrt(2)*atan((sqrt(a)*sinh(x))/(sqrt(2)*sqrt(a - a*cosh(x)))))/sqrt(a)) + (2*sinh(x))/sqrt(a - a*cosh(x))]

    @test_int [(a + a*cosh(c + d*x))^(5/2), x, 3, (64*a^3*sinh(c + d*x))/(15*d*sqrt(a + a*cosh(c + d*x))) + (16*a^2*sqrt(a + a*cosh(c + d*x))*sinh(c + d*x))/(15*d) + (2*a*(a + a*cosh(c + d*x))^(3/2)*sinh(c + d*x))/(5*d)]
    @test_int [(a + a*cosh(c + d*x))^(3/2), x, 2, (8*a^2*sinh(c + d*x))/(3*d*sqrt(a + a*cosh(c + d*x))) + (2*a*sqrt(a + a*cosh(c + d*x))*sinh(c + d*x))/(3*d)]
    @test_int [(a + a*cosh(c + d*x))^(1/2), x, 1, (2*a*sinh(c + d*x))/(d*sqrt(a + a*cosh(c + d*x)))]
    @test_int [1/(a + a*cosh(c + d*x))^(1/2), x, 2, (sqrt(2)*atan((sqrt(a)*sinh(c + d*x))/(sqrt(2)*sqrt(a + a*cosh(c + d*x)))))/(sqrt(a)*d)]
    @test_int [1/(a + a*cosh(c + d*x))^(3/2), x, 3, atan((sqrt(a)*sinh(c + d*x))/(sqrt(2)*sqrt(a + a*cosh(c + d*x))))/(2*sqrt(2)*a^(3/2)*d) + sinh(c + d*x)/(2*d*(a + a*cosh(c + d*x))^(3/2))]
    @test_int [1/(a + a*cosh(c + d*x))^(5/2), x, 4, (3*atan((sqrt(a)*sinh(c + d*x))/(sqrt(2)*sqrt(a + a*cosh(c + d*x)))))/(16*sqrt(2)*a^(5/2)*d) + sinh(c + d*x)/(4*d*(a + a*cosh(c + d*x))^(5/2)) + (3*sinh(c + d*x))/(16*a*d*(a + a*cosh(c + d*x))^(3/2))]

    @test_int [(a - a*cosh(c + d*x))^(5/2), x, 3, -((64*a^3*sinh(c + d*x))/(15*d*sqrt(a - a*cosh(c + d*x)))) - (16*a^2*sqrt(a - a*cosh(c + d*x))*sinh(c + d*x))/(15*d) - (2*a*(a - a*cosh(c + d*x))^(3/2)*sinh(c + d*x))/(5*d)]
    @test_int [(a - a*cosh(c + d*x))^(3/2), x, 2, -((8*a^2*sinh(c + d*x))/(3*d*sqrt(a - a*cosh(c + d*x)))) - (2*a*sqrt(a - a*cosh(c + d*x))*sinh(c + d*x))/(3*d)]
    @test_int [(a - a*cosh(c + d*x))^(1/2), x, 1, -((2*a*sinh(c + d*x))/(d*sqrt(a - a*cosh(c + d*x))))]
    @test_int [1/(a - a*cosh(c + d*x))^(1/2), x, 2, -((sqrt(2)*atan((sqrt(a)*sinh(c + d*x))/(sqrt(2)*sqrt(a - a*cosh(c + d*x)))))/(sqrt(a)*d))]
    @test_int [1/(a - a*cosh(c + d*x))^(3/2), x, 3, -(atan((sqrt(a)*sinh(c + d*x))/(sqrt(2)*sqrt(a - a*cosh(c + d*x))))/(2*sqrt(2)*a^(3/2)*d)) - sinh(c + d*x)/(2*d*(a - a*cosh(c + d*x))^(3/2))]
    @test_int [1/(a - a*cosh(c + d*x))^(5/2), x, 4, -((3*atan((sqrt(a)*sinh(c + d*x))/(sqrt(2)*sqrt(a - a*cosh(c + d*x)))))/(16*sqrt(2)*a^(5/2)*d)) - sinh(c + d*x)/(4*d*(a - a*cosh(c + d*x))^(5/2)) - (3*sinh(c + d*x))/(16*a*d*(a - a*cosh(c + d*x))^(3/2))]

    #= ::Subsection::Closed:: =#
    #=Integrands*of*the*form*cosh(c+d*x)^m*(a+b*cosh(c+d*x))^n=#

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

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

    @test_int [cosh(x)^4/(a + b*cosh(x)), x, 6, -((a*(2*a^2 + b^2)*x)/(2*b^4)) + (2*a^4*atanh((sqrt(a - b)*tanh(x/2))/sqrt(a + b)))/(sqrt(a - b)*b^4*sqrt(a + b)) + ((3*a^2 + 2*b^2)*sinh(x))/(3*b^3) - (a*cosh(x)*sinh(x))/(2*b^2) + (cosh(x)^2*sinh(x))/(3*b)]
    @test_int [cosh(x)^3/(a + b*cosh(x)), x, 5, ((2*a^2 + b^2)*x)/(2*b^3) - (2*a^3*atanh((sqrt(a - b)*tanh(x/2))/sqrt(a + b)))/(sqrt(a - b)*b^3*sqrt(a + b)) - (a*sinh(x))/b^2 + (cosh(x)*sinh(x))/(2*b)]
    @test_int [cosh(x)^2/(a + b*cosh(x)), x, 5, -((a*x)/b^2) + (2*a^2*atanh((sqrt(a - b)*tanh(x/2))/sqrt(a + b)))/(sqrt(a - b)*b^2*sqrt(a + b)) + sinh(x)/b]
    @test_int [cosh(x)^1/(a + b*cosh(x)), x, 3, x/b - (2*a*atanh((sqrt(a - b)*tanh(x/2))/sqrt(a + b)))/(sqrt(a - b)*b*sqrt(a + b))]
    @test_int [sech(x)^1/(a + b*cosh(x)), x, 4, atan(sinh(x))/a - (2*b*atanh((sqrt(a - b)*tanh(x/2))/sqrt(a + b)))/(a*sqrt(a - b)*sqrt(a + b))]
    @test_int [sech(x)^2/(a + b*cosh(x)), x, 6, -((b*atan(sinh(x)))/a^2) + (2*b^2*atanh((sqrt(a - b)*tanh(x/2))/sqrt(a + b)))/(a^2*sqrt(a - b)*sqrt(a + b)) + tanh(x)/a]
    @test_int [sech(x)^3/(a + b*cosh(x)), x, 6, ((a^2 + 2*b^2)*atan(sinh(x)))/(2*a^3) - (2*b^3*atanh((sqrt(a - b)*tanh(x/2))/sqrt(a + b)))/(a^3*sqrt(a - b)*sqrt(a + b)) - (b*tanh(x))/a^2 + (sech(x)*tanh(x))/(2*a)]
    @test_int [sech(x)^4/(a + b*cosh(x)), x, 7, -((b*(a^2 + 2*b^2)*atan(sinh(x)))/(2*a^4)) + (2*b^4*atanh((sqrt(a - b)*tanh(x/2))/sqrt(a + b)))/(a^4*sqrt(a - b)*sqrt(a + b)) + ((2*a^2 + 3*b^2)*tanh(x))/(3*a^3) - (b*sech(x)*tanh(x))/(2*a^2) + (sech(x)^2*tanh(x))/(3*a)]

    @test_int [(a + b*cosh(c + d*x))^5, x, 4, (1/8)*a*(8*a^4 + 40*a^2*b^2 + 15*b^4)*x + (b*(107*a^4 + 192*a^2*b^2 + 16*b^4)*sinh(c + d*x))/(30*d) + (7*a*b^2*(22*a^2 + 23*b^2)*cosh(c + d*x)*sinh(c + d*x))/(120*d) + (b*(47*a^2 + 16*b^2)*(a + b*cosh(c + d*x))^2*sinh(c + d*x))/(60*d) + (9*a*b*(a + b*cosh(c + d*x))^3*sinh(c + d*x))/(20*d) + (b*(a + b*cosh(c + d*x))^4*sinh(c + d*x))/(5*d)]
    @test_int [(a + b*cosh(c + d*x))^4, x, 3, (1/8)*(8*a^4 + 24*a^2*b^2 + 3*b^4)*x + (a*b*(19*a^2 + 16*b^2)*sinh(c + d*x))/(6*d) + (b^2*(26*a^2 + 9*b^2)*cosh(c + d*x)*sinh(c + d*x))/(24*d) + (7*a*b*(a + b*cosh(c + d*x))^2*sinh(c + d*x))/(12*d) + (b*(a + b*cosh(c + d*x))^3*sinh(c + d*x))/(4*d)]
    @test_int [(a + b*cosh(c + d*x))^3, x, 2, (1/2)*a*(2*a^2 + 3*b^2)*x + (2*b*(4*a^2 + b^2)*sinh(c + d*x))/(3*d) + (5*a*b^2*cosh(c + d*x)*sinh(c + d*x))/(6*d) + (b*(a + b*cosh(c + d*x))^2*sinh(c + d*x))/(3*d)]
    @test_int [(a + b*cosh(c + d*x))^2, x, 1, (1/2)*(2*a^2 + b^2)*x + (2*a*b*sinh(c + d*x))/d + (b^2*cosh(c + d*x)*sinh(c + d*x))/(2*d)]
    @test_int [(a + b*cosh(c + d*x)), x, 2, a*x + (b*sinh(c + d*x))/d]
    @test_int [1/(a + b*cosh(c + d*x)), x, 2, (2*atanh((sqrt(a - b)*tanh((1/2)*(c + d*x)))/sqrt(a + b)))/(sqrt(a - b)*sqrt(a + b)*d)]
    @test_int [1/(a + b*cosh(c + d*x))^2, x, 4, (2*a*atanh((sqrt(a - b)*tanh((1/2)*(c + d*x)))/sqrt(a + b)))/((a - b)^(3/2)*(a + b)^(3/2)*d) - (b*sinh(c + d*x))/((a^2 - b^2)*d*(a + b*cosh(c + d*x)))]
    @test_int [1/(a + b*cosh(c + d*x))^3, x, 5, ((2*a^2 + b^2)*atanh((sqrt(a - b)*tanh((1/2)*(c + d*x)))/sqrt(a + b)))/((a - b)^(5/2)*(a + b)^(5/2)*d) - (b*sinh(c + d*x))/(2*(a^2 - b^2)*d*(a + b*cosh(c + d*x))^2) - (3*a*b*sinh(c + d*x))/(2*(a^2 - b^2)^2*d*(a + b*cosh(c + d*x)))]
    @test_int [1/(a + b*cosh(c + d*x))^4, x, 6, (a*(2*a^2 + 3*b^2)*atanh((sqrt(a - b)*tanh((1/2)*(c + d*x)))/sqrt(a + b)))/((a - b)^(7/2)*(a + b)^(7/2)*d) - (b*sinh(c + d*x))/(3*(a^2 - b^2)*d*(a + b*cosh(c + d*x))^3) - (5*a*b*sinh(c + d*x))/(6*(a^2 - b^2)^2*d*(a + b*cosh(c + d*x))^2) - (b*(11*a^2 + 4*b^2)*sinh(c + d*x))/(6*(a^2 - b^2)^3*d*(a + b*cosh(c + d*x)))]

    @test_int [1/(3 + 5*cosh(c + d*x)), x, 2, atan((1/2)*tanh((1/2)*(c + d*x)))/(2*d)]
    @test_int [1/(3 + 5*cosh(c + d*x))^2, x, 4, -((3*atan((1/2)*tanh((1/2)*(c + d*x))))/(32*d)) + (5*sinh(c + d*x))/(16*d*(3 + 5*cosh(c + d*x)))]
    @test_int [1/(3 + 5*cosh(c + d*x))^3, x, 5, (43*atan((1/2)*tanh((1/2)*(c + d*x))))/(1024*d) + (5*sinh(c + d*x))/(32*d*(3 + 5*cosh(c + d*x))^2) - (45*sinh(c + d*x))/(512*d*(3 + 5*cosh(c + d*x)))]
    @test_int [1/(3 + 5*cosh(c + d*x))^4, x, 6, -((279*atan((1/2)*tanh((1/2)*(c + d*x))))/(16384*d)) + (5*sinh(c + d*x))/(48*d*(3 + 5*cosh(c + d*x))^3) - (25*sinh(c + d*x))/(512*d*(3 + 5*cosh(c + d*x))^2) + (995*sinh(c + d*x))/(24576*d*(3 + 5*cosh(c + d*x)))]

    @test_int [1/(5 + 3*cosh(c + d*x)), x, 1, x/4 - atanh(sinh(c + d*x)/(3 + cosh(c + d*x)))/(2*d)]
    @test_int [1/(5 + 3*cosh(c + d*x))^2, x, 3, (5*x)/64 - (5*atanh(sinh(c + d*x)/(3 + cosh(c + d*x))))/(32*d) - (3*sinh(c + d*x))/(16*d*(5 + 3*cosh(c + d*x)))]
    @test_int [1/(5 + 3*cosh(c + d*x))^3, x, 4, (59*x)/2048 - (59*atanh(sinh(c + d*x)/(3 + cosh(c + d*x))))/(1024*d) - (3*sinh(c + d*x))/(32*d*(5 + 3*cosh(c + d*x))^2) - (45*sinh(c + d*x))/(512*d*(5 + 3*cosh(c + d*x)))]
    @test_int [1/(5 + 3*cosh(c + d*x))^4, x, 5, (385*x)/32768 - (385*atanh(sinh(c + d*x)/(3 + cosh(c + d*x))))/(16384*d) - sinh(c + d*x)/(16*d*(5 + 3*cosh(c + d*x))^3) - (25*sinh(c + d*x))/(512*d*(5 + 3*cosh(c + d*x))^2) - (311*sinh(c + d*x))/(8192*d*(5 + 3*cosh(c + d*x)))]

    @test_int [(a + b*cosh(x))^(5/2), x, 7, -((2*im*(23*a^2 + 9*b^2)*sqrt(a + b*cosh(x))*Elliptic.E((im*x)/2, (2*b)/(a + b)))/(15*sqrt((a + b*cosh(x))/(a + b)))) + (16*im*a*(a^2 - b^2)*sqrt((a + b*cosh(x))/(a + b))*Elliptic.F((im*x)/2, (2*b)/(a + b)))/(15*sqrt(a + b*cosh(x))) + (16/15)*a*b*sqrt(a + b*cosh(x))*sinh(x) + (2/5)*b*(a + b*cosh(x))^(3/2)*sinh(x)]
    @test_int [(a + b*cosh(x))^(3/2), x, 6, -((8*im*a*sqrt(a + b*cosh(x))*Elliptic.E((im*x)/2, (2*b)/(a + b)))/(3*sqrt((a + b*cosh(x))/(a + b)))) + (2*im*(a^2 - b^2)*sqrt((a + b*cosh(x))/(a + b))*Elliptic.F((im*x)/2, (2*b)/(a + b)))/(3*sqrt(a + b*cosh(x))) + (2/3)*b*sqrt(a + b*cosh(x))*sinh(x)]
    @test_int [(a + b*cosh(c + d*x))^(1/2), x, 2, -((2*im*sqrt(a + b*cosh(c + d*x))*Elliptic.E((1/2)*im*(c + d*x), (2*b)/(a + b)))/(d*sqrt((a + b*cosh(c + d*x))/(a + b))))]
    @test_int [1/(a + b*cosh(x))^(1/2), x, 2, -((2*im*sqrt((a + b*cosh(x))/(a + b))*Elliptic.F((im*x)/2, (2*b)/(a + b)))/sqrt(a + b*cosh(x)))]
    @test_int [1/(a + b*cosh(x))^(3/2), x, 4, -((2*im*sqrt(a + b*cosh(x))*Elliptic.E((im*x)/2, (2*b)/(a + b)))/((a^2 - b^2)*sqrt((a + b*cosh(x))/(a + b)))) - (2*b*sinh(x))/((a^2 - b^2)*sqrt(a + b*cosh(x)))]
    @test_int [1/(a + b*cosh(x))^(5/2), x, 7, -((8*im*a*sqrt(a + b*cosh(x))*Elliptic.E((im*x)/2, (2*b)/(a + b)))/(3*(a^2 - b^2)^2*sqrt((a + b*cosh(x))/(a + b)))) + (2*im*sqrt((a + b*cosh(x))/(a + b))*Elliptic.F((im*x)/2, (2*b)/(a + b)))/(3*(a^2 - b^2)*sqrt(a + b*cosh(x))) - (2*b*sinh(x))/(3*(a^2 - b^2)*(a + b*cosh(x))^(3/2)) - (8*a*b*sinh(x))/(3*(a^2 - b^2)^2*sqrt(a + b*cosh(x)))]
    @test_int [1/(a + b*cosh(x))^(7/2), x, 8, -((2*im*(23*a^2 + 9*b^2)*sqrt(a + b*cosh(x))*Elliptic.E((im*x)/2, (2*b)/(a + b)))/(15*(a^2 - b^2)^3*sqrt((a + b*cosh(x))/(a + b)))) + (16*im*a*sqrt((a + b*cosh(x))/(a + b))*Elliptic.F((im*x)/2, (2*b)/(a + b)))/(15*(a^2 - b^2)^2*sqrt(a + b*cosh(x))) - (2*b*sinh(x))/(5*(a^2 - b^2)*(a + b*cosh(x))^(5/2)) - (16*a*b*sinh(x))/(15*(a^2 - b^2)^2*(a + b*cosh(x))^(3/2)) - (2*b*(23*a^2 + 9*b^2)*sinh(x))/(15*(a^2 - b^2)^3*sqrt(a + b*cosh(x)))]

    @test_int [cosh(x)/sqrt(a + b*cosh(x)), x, 5, -((2*im*sqrt(a + b*cosh(x))*Elliptic.E((im*x)/2, (2*b)/(a + b)))/(b*sqrt((a + b*cosh(x))/(a + b)))) + (2*im*a*sqrt((a + b*cosh(x))/(a + b))*Elliptic.F((im*x)/2, (2*b)/(a + b)))/(b*sqrt(a + b*cosh(x)))]

    #= ::Subsection::Closed:: =#
    #=Integrands*of*the*form*(A+B*cosh(c+d*x))*(a+b*cosh(c+d*x))^n*when*a^2-b^2=0=#

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

    @test_int [(A + B*cosh(x))*(a + a*cosh(x))^(5/2), x, 4, (64*a^3*(7*A + 5*B)*sinh(x))/(105*sqrt(a + a*cosh(x))) + (16/105)*a^2*(7*A + 5*B)*sqrt(a + a*cosh(x))*sinh(x) + (2/35)*a*(7*A + 5*B)*(a + a*cosh(x))^(3/2)*sinh(x) + (2/7)*B*(a + a*cosh(x))^(5/2)*sinh(x)]
    @test_int [(A + B*cosh(x))*(a + a*cosh(x))^(3/2), x, 3, (8*a^2*(5*A + 3*B)*sinh(x))/(15*sqrt(a + a*cosh(x))) + (2/15)*a*(5*A + 3*B)*sqrt(a + a*cosh(x))*sinh(x) + (2/5)*B*(a + a*cosh(x))^(3/2)*sinh(x)]
    @test_int [(A + B*cosh(x))*(a + a*cosh(x))^(1/2), x, 2, (2*a*(3*A + B)*sinh(x))/(3*sqrt(a + a*cosh(x))) + (2/3)*B*sqrt(a + a*cosh(x))*sinh(x)]

    @test_int [(A + B*cosh(x))*(a - a*cosh(x))^(5/2), x, 4, -((64*a^3*(7*A - 5*B)*sinh(x))/(105*sqrt(a - a*cosh(x)))) - (16/105)*a^2*(7*A - 5*B)*sqrt(a - a*cosh(x))*sinh(x) - (2/35)*a*(7*A - 5*B)*(a - a*cosh(x))^(3/2)*sinh(x) + (2/7)*B*(a - a*cosh(x))^(5/2)*sinh(x)]
    @test_int [(A + B*cosh(x))*(a - a*cosh(x))^(3/2), x, 3, -((8*a^2*(5*A - 3*B)*sinh(x))/(15*sqrt(a - a*cosh(x)))) - (2/15)*a*(5*A - 3*B)*sqrt(a - a*cosh(x))*sinh(x) + (2/5)*B*(a - a*cosh(x))^(3/2)*sinh(x)]
    @test_int [(A + B*cosh(x))*(a - a*cosh(x))^(1/2), x, 2, -((2*a*(3*A - B)*sinh(x))/(3*sqrt(a - a*cosh(x)))) + (2/3)*B*sqrt(a - a*cosh(x))*sinh(x)]

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

    @test_int [(A + B*cosh(x))/(1 + cosh(x)), x, 2, B*x + ((A - B)*sinh(x))/(1 + cosh(x))]
    @test_int [(A + B*cosh(x))/(1 + cosh(x))^2, x, 2, ((A - B)*sinh(x))/(3*(1 + cosh(x))^2) + ((A + 2*B)*sinh(x))/(3*(1 + cosh(x)))]
    @test_int [(A + B*cosh(x))/(1 + cosh(x))^3, x, 3, ((A - B)*sinh(x))/(5*(1 + cosh(x))^3) + ((2*A + 3*B)*sinh(x))/(15*(1 + cosh(x))^2) + ((2*A + 3*B)*sinh(x))/(15*(1 + cosh(x)))]
    @test_int [(A + B*cosh(x))/(1 + cosh(x))^4, x, 4, ((A - B)*sinh(x))/(7*(1 + cosh(x))^4) + ((3*A + 4*B)*sinh(x))/(35*(1 + cosh(x))^3) + (2*(3*A + 4*B)*sinh(x))/(105*(1 + cosh(x))^2) + (2*(3*A + 4*B)*sinh(x))/(105*(1 + cosh(x)))]

    @test_int [(A + B*cosh(x))/(1 - cosh(x)), x, 2, (-B)*x - ((A + B)*sinh(x))/(1 - cosh(x))]
    @test_int [(A + B*cosh(x))/(1 - cosh(x))^2, x, 2, -(((A + B)*sinh(x))/(3*(1 - cosh(x))^2)) - ((A - 2*B)*sinh(x))/(3*(1 - cosh(x)))]
    @test_int [(A + B*cosh(x))/(1 - cosh(x))^3, x, 3, -(((A + B)*sinh(x))/(5*(1 - cosh(x))^3)) - ((2*A - 3*B)*sinh(x))/(15*(1 - cosh(x))^2) - ((2*A - 3*B)*sinh(x))/(15*(1 - cosh(x)))]
    @test_int [(A + B*cosh(x))/(1 - cosh(x))^4, x, 4, -(((A + B)*sinh(x))/(7*(1 - cosh(x))^4)) - ((3*A - 4*B)*sinh(x))/(35*(1 - cosh(x))^3) - (2*(3*A - 4*B)*sinh(x))/(105*(1 - cosh(x))^2) - (2*(3*A - 4*B)*sinh(x))/(105*(1 - cosh(x)))]

    @test_int [(A + B*cosh(x))/(a + a*cosh(x))^(1/2), x, 3, (sqrt(2)*(A - B)*atan((sqrt(a)*sinh(x))/(sqrt(2)*sqrt(a + a*cosh(x)))))/sqrt(a) + (2*B*sinh(x))/sqrt(a + a*cosh(x))]
    @test_int [(A + B*cosh(x))/(a + a*cosh(x))^(3/2), x, 3, ((A + 3*B)*atan((sqrt(a)*sinh(x))/(sqrt(2)*sqrt(a + a*cosh(x)))))/(2*sqrt(2)*a^(3/2)) + ((A - B)*sinh(x))/(2*(a + a*cosh(x))^(3/2))]
    @test_int [(A + B*cosh(x))/(a + a*cosh(x))^(5/2), x, 4, ((3*A + 5*B)*atan((sqrt(a)*sinh(x))/(sqrt(2)*sqrt(a + a*cosh(x)))))/(16*sqrt(2)*a^(5/2)) + ((A - B)*sinh(x))/(4*(a + a*cosh(x))^(5/2)) + ((3*A + 5*B)*sinh(x))/(16*a*(a + a*cosh(x))^(3/2))]

    @test_int [(A + B*cosh(x))/(a - a*cosh(x))^(1/2), x, 3, -((sqrt(2)*(A + B)*atan((sqrt(a)*sinh(x))/(sqrt(2)*sqrt(a - a*cosh(x)))))/sqrt(a)) + (2*B*sinh(x))/sqrt(a - a*cosh(x))]
    @test_int [(A + B*cosh(x))/(a - a*cosh(x))^(3/2), x, 3, -(((A - 3*B)*atan((sqrt(a)*sinh(x))/(sqrt(2)*sqrt(a - a*cosh(x)))))/(2*sqrt(2)*a^(3/2))) - ((A + B)*sinh(x))/(2*(a - a*cosh(x))^(3/2))]
    @test_int [(A + B*cosh(x))/(a - a*cosh(x))^(5/2), x, 4, -(((3*A - 5*B)*atan((sqrt(a)*sinh(x))/(sqrt(2)*sqrt(a - a*cosh(x)))))/(16*sqrt(2)*a^(5/2))) - ((A + B)*sinh(x))/(4*(a - a*cosh(x))^(5/2)) - ((3*A - 5*B)*sinh(x))/(16*a*(a - a*cosh(x))^(3/2))]

    #= ::Subsection::Closed:: =#
    #=Integrands*of*the*form*(A+B*cosh(c+d*x))*(a+b*cosh(c+d*x))^n=#

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

    @test_int [(A + B*cosh(x))*(a + b*cosh(x))^(5/2), x, 8, -((2*im*(161*a^2*A*b + 63*A*b^3 + 15*a^3*B + 145*a*b^2*B)*sqrt(a + b*cosh(x))*Elliptic.E((im*x)/2, (2*b)/(a + b)))/(105*b*sqrt((a + b*cosh(x))/(a + b)))) + (2*im*(a^2 - b^2)*(56*a*A*b + 15*a^2*B + 25*b^2*B)*sqrt((a + b*cosh(x))/(a + b))*Elliptic.F((im*x)/2, (2*b)/(a + b)))/(105*b*sqrt(a + b*cosh(x))) + (2/105)*(56*a*A*b + 15*a^2*B + 25*b^2*B)*sqrt(a + b*cosh(x))*sinh(x) + (2/35)*(7*A*b + 5*a*B)*(a + b*cosh(x))^(3/2)*sinh(x) + (2/7)*B*(a + b*cosh(x))^(5/2)*sinh(x)]
    @test_int [(A + B*cosh(x))*(a + b*cosh(x))^(3/2), x, 7, -((2*im*(20*a*A*b + 3*a^2*B + 9*b^2*B)*sqrt(a + b*cosh(x))*Elliptic.E((im*x)/2, (2*b)/(a + b)))/(15*b*sqrt((a + b*cosh(x))/(a + b)))) + (2*im*(a^2 - b^2)*(5*A*b + 3*a*B)*sqrt((a + b*cosh(x))/(a + b))*Elliptic.F((im*x)/2, (2*b)/(a + b)))/(15*b*sqrt(a + b*cosh(x))) + (2/15)*(5*A*b + 3*a*B)*sqrt(a + b*cosh(x))*sinh(x) + (2/5)*B*(a + b*cosh(x))^(3/2)*sinh(x)]
    @test_int [(A + B*cosh(x))*(a + b*cosh(x))^(1/2), x, 6, -((2*im*(3*A*b + a*B)*sqrt(a + b*cosh(x))*Elliptic.E((im*x)/2, (2*b)/(a + b)))/(3*b*sqrt((a + b*cosh(x))/(a + b)))) + (2*im*(a^2 - b^2)*B*sqrt((a + b*cosh(x))/(a + b))*Elliptic.F((im*x)/2, (2*b)/(a + b)))/(3*b*sqrt(a + b*cosh(x))) + (2/3)*B*sqrt(a + b*cosh(x))*sinh(x)]

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

    @test_int [(A + B*cosh(x))/(a + b*cosh(x)), x, 3, (B*x)/b + (2*(A*b - a*B)*atanh((sqrt(a - b)*tanh(x/2))/sqrt(a + b)))/(sqrt(a - b)*b*sqrt(a + b))]
    @test_int [(A + B*cosh(x))/(a + b*cosh(x))^2, x, 4, (2*(a*A - b*B)*atanh((sqrt(a - b)*tanh(x/2))/sqrt(a + b)))/((a - b)^(3/2)*(a + b)^(3/2)) - ((A*b - a*B)*sinh(x))/((a^2 - b^2)*(a + b*cosh(x)))]
    @test_int [(A + B*cosh(x))/(a + b*cosh(x))^3, x, 5, ((2*a^2*A + A*b^2 - 3*a*b*B)*atanh((sqrt(a - b)*tanh(x/2))/sqrt(a + b)))/((a - b)^(5/2)*(a + b)^(5/2)) - ((A*b - a*B)*sinh(x))/(2*(a^2 - b^2)*(a + b*cosh(x))^2) - ((3*a*A*b - a^2*B - 2*b^2*B)*sinh(x))/(2*(a^2 - b^2)^2*(a + b*cosh(x)))]
    @test_int [(A + B*cosh(x))/(a + b*cosh(x))^4, x, 6, ((2*a^3*A + 3*a*A*b^2 - 4*a^2*b*B - b^3*B)*atanh((sqrt(a - b)*tanh(x/2))/sqrt(a + b)))/((a - b)^(7/2)*(a + b)^(7/2)) - ((A*b - a*B)*sinh(x))/(3*(a^2 - b^2)*(a + b*cosh(x))^3) - ((5*a*A*b - 2*a^2*B - 3*b^2*B)*sinh(x))/(6*(a^2 - b^2)^2*(a + b*cosh(x))^2) - ((11*a^2*A*b + 4*A*b^3 - 2*a^3*B - 13*a*b^2*B)*sinh(x))/(6*(a^2 - b^2)^3*(a + b*cosh(x)))]

    @test_int [(b*B/a + B*cosh(x))/(a + b*cosh(x)), x, 3, (B*x)/b - (2*sqrt(a - b)*sqrt(a + b)*B*atanh((sqrt(a - b)*tanh(x/2))/sqrt(a + b)))/(a*b)]
    @test_int [(a*B/b + B*cosh(x))/(a + b*cosh(x)), x, 2, (B*x)/b]

    @test_int [(a + b*cosh(x))/(b + a*cosh(x))^2, x, 2, sinh(x)/(b + a*cosh(x))]
    @test_int [(3 + cosh(x))/(2 - cosh(x)), x, 2, -x + (5*x)/sqrt(3) + (10*atanh(sinh(x)/(2 + sqrt(3) - cosh(x))))/sqrt(3)]

    @test_int [(A + B*cosh(x))/(a + b*cosh(x))^(1/2), x, 5, -((2*im*B*sqrt(a + b*cosh(x))*Elliptic.E((im*x)/2, (2*b)/(a + b)))/(b*sqrt((a + b*cosh(x))/(a + b)))) - (2*im*(A*b - a*B)*sqrt((a + b*cosh(x))/(a + b))*Elliptic.F((im*x)/2, (2*b)/(a + b)))/(b*sqrt(a + b*cosh(x)))]
    @test_int [(A + B*cosh(x))/(a + b*cosh(x))^(3/2), x, 6, -((2*im*(A*b - a*B)*sqrt(a + b*cosh(x))*Elliptic.E((im*x)/2, (2*b)/(a + b)))/(b*(a^2 - b^2)*sqrt((a + b*cosh(x))/(a + b)))) - (2*im*B*sqrt((a + b*cosh(x))/(a + b))*Elliptic.F((im*x)/2, (2*b)/(a + b)))/(b*sqrt(a + b*cosh(x))) - (2*(A*b - a*B)*sinh(x))/((a^2 - b^2)*sqrt(a + b*cosh(x)))]
    @test_int [(A + B*cosh(x))/(a + b*cosh(x))^(5/2), x, 7, -((2*im*(4*a*A*b - a^2*B - 3*b^2*B)*sqrt(a + b*cosh(x))*Elliptic.E((im*x)/2, (2*b)/(a + b)))/(3*b*(a^2 - b^2)^2*sqrt((a + b*cosh(x))/(a + b)))) + (2*im*(A*b - a*B)*sqrt((a + b*cosh(x))/(a + b))*Elliptic.F((im*x)/2, (2*b)/(a + b)))/(3*b*(a^2 - b^2)*sqrt(a + b*cosh(x))) - (2*(A*b - a*B)*sinh(x))/(3*(a^2 - b^2)*(a + b*cosh(x))^(3/2)) - (2*(4*a*A*b - a^2*B - 3*b^2*B)*sinh(x))/(3*(a^2 - b^2)^2*sqrt(a + b*cosh(x)))]

    #= ::Section::Closed:: =#
    #=Integrands*of*the*form*(c*cosh(a+b*x)^m)^n=#

    #= ::Subsection::Closed:: =#
    #=Integrands*of*the*form*(c*cosh(a+b*x)^2)^n=#

    @test_int [(a*cosh(x)^2)^(7/2),x, 5, (16/35)*a^3*sqrt(a*cosh(x)^2)*tanh(x) + (8/35)*a^2*(a*cosh(x)^2)^(3/2)*tanh(x) + (6/35)*a*(a*cosh(x)^2)^(5/2)*tanh(x) + (1/7)*(a*cosh(x)^2)^(7/2)*tanh(x)]
    @test_int [(a*cosh(x)^2)^(5/2),x, 4, (8/15)*a^2*sqrt(a*cosh(x)^2)*tanh(x) + (4/15)*a*(a*cosh(x)^2)^(3/2)*tanh(x) + (1/5)*(a*cosh(x)^2)^(5/2)*tanh(x)]
    @test_int [(a*cosh(x)^2)^(3/2),x, 3, (2/3)*a*sqrt(a*cosh(x)^2)*tanh(x) + (1/3)*(a*cosh(x)^2)^(3/2)*tanh(x)]
    @test_int [(a*cosh(x)^2)^(1/2), x, 2, sqrt(a*cosh(x)^2)*tanh(x)]
    @test_int [1/(a*cosh(x)^2)^(1/2), x, 2, (atan(sinh(x))*cosh(x))/sqrt(a*cosh(x)^2)]
    @test_int [1/(a*cosh(x)^2)^(3/2), x, 3, (atan(sinh(x))*cosh(x))/(2*a*sqrt(a*cosh(x)^2)) + tanh(x)/(2*a*sqrt(a*cosh(x)^2))]
    @test_int [1/(a*cosh(x)^2)^(5/2), x, 4, (3*atan(sinh(x))*cosh(x))/(8*a^2*sqrt(a*cosh(x)^2)) + tanh(x)/(4*a*(a*cosh(x)^2)^(3/2)) + (3*tanh(x))/(8*a^2*sqrt(a*cosh(x)^2))]

    #= ::Subsection::Closed:: =#
    #=Integrands*of*the*form*(c*cosh(a+b*x)^3)^n=#

    @test_int [(a*cosh(x)^3)^(5/2),x, 6, -((26*im*a^2*sqrt(a*cosh(x)^3)*Elliptic.F((im*x)/2, 2))/(77*cosh(x)^(3/2))) + (78/385)*a^2*cosh(x)*sqrt(a*cosh(x)^3)*sinh(x) + (26/165)*a^2*cosh(x)^3*sqrt(a*cosh(x)^3)*sinh(x) + (2/15)*a^2*cosh(x)^5*sqrt(a*cosh(x)^3)*sinh(x) + (26/77)*a^2*sqrt(a*cosh(x)^3)*tanh(x)]
    @test_int [(a*cosh(x)^3)^(3/2),x, 4, -((14*im*a*sqrt(a*cosh(x)^3)*Elliptic.E((im*x)/2, 2))/(15*cosh(x)^(3/2))) + (14/45)*a*sqrt(a*cosh(x)^3)*sinh(x) + (2/9)*a*cosh(x)^2*sqrt(a*cosh(x)^3)*sinh(x)]
    @test_int [(a*cosh(x)^3)^(1/2), x, 3, -((2*im*sqrt(a*cosh(x)^3)*Elliptic.F((im*x)/2, 2))/(3*cosh(x)^(3/2))) + (2/3)*sqrt(a*cosh(x)^3)*tanh(x)]
    @test_int [1/(a*cosh(x)^3)^(1/2), x, 3, (2*im*cosh(x)^(3/2)*Elliptic.E((im*x)/2, 2))/sqrt(a*cosh(x)^3) + (2*cosh(x)*sinh(x))/sqrt(a*cosh(x)^3)]
    @test_int [1/(a*cosh(x)^3)^(3/2),x, 4, -((10*im*cosh(x)^(3/2)*Elliptic.F((im*x)/2, 2))/(21*a*sqrt(a*cosh(x)^3))) + (10*sinh(x))/(21*a*sqrt(a*cosh(x)^3)) + (2*sech(x)*tanh(x))/(7*a*sqrt(a*cosh(x)^3))]
    @test_int [1/(a*cosh(x)^3)^(5/2),x, 6, (154*im*cosh(x)^(3/2)*Elliptic.E((im*x)/2, 2))/(195*a^2*sqrt(a*cosh(x)^3)) + (154*cosh(x)*sinh(x))/(195*a^2*sqrt(a*cosh(x)^3)) + (154*tanh(x))/(585*a^2*sqrt(a*cosh(x)^3)) + (22*sech(x)^2*tanh(x))/(117*a^2*sqrt(a*cosh(x)^3)) + (2*sech(x)^4*tanh(x))/(13*a^2*sqrt(a*cosh(x)^3))]

    #= ::Subsection::Closed:: =#
    #=Integrands*of*the*form*(c*cosh(a+b*x)^4)^n=#

    @test_int [(a*cosh(x)^4)^(5/2),x, 7, (63/256)*a^2*x*sqrt(a*cosh(x)^4)*sech(x)^2 + (21/128)*a^2*cosh(x)*sqrt(a*cosh(x)^4)*sinh(x) + (21/160)*a^2*cosh(x)^3*sqrt(a*cosh(x)^4)*sinh(x) + (9/80)*a^2*cosh(x)^5*sqrt(a*cosh(x)^4)*sinh(x) + (1/10)*a^2*cosh(x)^7*sqrt(a*cosh(x)^4)*sinh(x) + (63/256)*a^2*sqrt(a*cosh(x)^4)*tanh(x)]
    @test_int [(a*cosh(x)^4)^(3/2),x, 5, (5/16)*a*x*sqrt(a*cosh(x)^4)*sech(x)^2 + (5/24)*a*cosh(x)*sqrt(a*cosh(x)^4)*sinh(x) + (1/6)*a*cosh(x)^3*sqrt(a*cosh(x)^4)*sinh(x) + (5/16)*a*sqrt(a*cosh(x)^4)*tanh(x)]
    @test_int [(a*cosh(x)^4)^(1/2), x, 3, (1/2)*x*sqrt(a*cosh(x)^4)*sech(x)^2 + (1/2)*sqrt(a*cosh(x)^4)*tanh(x)]
    @test_int [1/(a*cosh(x)^4)^(1/2), x, 3, (cosh(x)*sinh(x))/sqrt(a*cosh(x)^4)]
    @test_int [1/(a*cosh(x)^4)^(3/2),x, 3, (cosh(x)*sinh(x))/(a*sqrt(a*cosh(x)^4)) - (2*sinh(x)^2*tanh(x))/(3*a*sqrt(a*cosh(x)^4)) + (sinh(x)^2*tanh(x)^3)/(5*a*sqrt(a*cosh(x)^4))]
    @test_int [1/(a*cosh(x)^4)^(5/2),x, 3, (cosh(x)*sinh(x))/(a^2*sqrt(a*cosh(x)^4)) - (4*sinh(x)^2*tanh(x))/(3*a^2*sqrt(a*cosh(x)^4)) + (6*sinh(x)^2*tanh(x)^3)/(5*a^2*sqrt(a*cosh(x)^4)) - (4*sinh(x)^2*tanh(x)^5)/(7*a^2*sqrt(a*cosh(x)^4)) + (sinh(x)^2*tanh(x)^7)/(9*a^2*sqrt(a*cosh(x)^4))]

    #= ::Subsection:: =#
    #=Integrands*of*the*form*(c*cosh(a+b*x)^m)^n=#

    #= ::Section::Closed:: =#
    #=Integrands*of*the*form*Hyper(c+d*x)^m*(a+b*cosh(c+d*x))^n=#

    #= ::Subsection::Closed:: =#
    #=Integrands*of*the*form*sinh(c+d*x)^m*(a+b*cosh(c+d*x))^n=#

    #= ::Subsubsection::Closed:: =#
    #=a^2-b^2=0=#

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

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

    @test_int [sinh(x)^8/(a + a*cosh(x)), x, 5, (5*x)/(16*a) - (5*cosh(x)*sinh(x))/(16*a) + (5*cosh(x)*sinh(x)^3)/(24*a) - (cosh(x)*sinh(x)^5)/(6*a) + sinh(x)^7/(7*a)]
    @test_int [sinh(x)^7/(a + a*cosh(x)), x, 3, (a - a*cosh(x))^4/a^5 - (4*(a - a*cosh(x))^5)/(5*a^6) + (a - a*cosh(x))^6/(6*a^7)]
    @test_int [sinh(x)^6/(a + a*cosh(x)), x, 4, -((3*x)/(8*a)) + (3*cosh(x)*sinh(x))/(8*a) - (cosh(x)*sinh(x)^3)/(4*a) + sinh(x)^5/(5*a)]
    @test_int [sinh(x)^5/(a + a*cosh(x)), x, 3, -((2*(a - a*cosh(x))^3)/(3*a^4)) + (a - a*cosh(x))^4/(4*a^5)]
    @test_int [sinh(x)^4/(a + a*cosh(x)), x, 3, x/(2*a) - (cosh(x)*sinh(x))/(2*a) + sinh(x)^3/(3*a)]
    @test_int [sinh(x)^3/(a + a*cosh(x)), x, 2, -(cosh(x)/a) + cosh(x)^2/(2*a)]
    @test_int [sinh(x)^2/(a + a*cosh(x)), x, 2, -(x/a) + sinh(x)/a]
    @test_int [sinh(x)^1/(a + a*cosh(x)), x, 2, log(1 + cosh(x))/a]
    @test_int [csch(x)^1/(a + a*cosh(x)), x, 4, -(atanh(cosh(x))/(2*a)) + 1/(2*(a + a*cosh(x)))]
    @test_int [csch(x)^2/(a + a*cosh(x)), x, 3, -((2*coth(x))/(3*a)) + csch(x)/(3*(a + a*cosh(x)))]
    @test_int [csch(x)^3/(a + a*cosh(x)), x, 4, (3*atanh(cosh(x)))/(8*a) + 1/(8*(a - a*cosh(x))) - a/(8*(a + a*cosh(x))^2) - 1/(4*(a + a*cosh(x)))]
    @test_int [csch(x)^4/(a + a*cosh(x)), x, 3, (4*coth(x))/(5*a) - (4*coth(x)^3)/(15*a) + csch(x)^3/(5*(a + a*cosh(x)))]
    @test_int [csch(x)^5/(a + a*cosh(x)), x, 4, -((5*atanh(cosh(x)))/(16*a)) - a/(32*(a - a*cosh(x))^2) - 1/(8*(a - a*cosh(x))) + a^2/(24*(a + a*cosh(x))^3) + (3*a)/(32*(a + a*cosh(x))^2) + 3/(16*(a + a*cosh(x)))]

    #= ::Subsubsection::Closed:: =#
    #=a^2-b^2!=0=#

    @test_int [sinh(x)^7/(a + b*cosh(x)), x, 3, -((a*(a^4 - 3*a^2*b^2 + 3*b^4)*cosh(x))/b^6) + ((a^4 - 3*a^2*b^2 + 3*b^4)*cosh(x)^2)/(2*b^5) - (a*(a^2 - 3*b^2)*cosh(x)^3)/(3*b^4) + ((a^2 - 3*b^2)*cosh(x)^4)/(4*b^3) - (a*cosh(x)^5)/(5*b^2) + cosh(x)^6/(6*b) + ((a^2 - b^2)^3*log(a + b*cosh(x)))/b^7]
    @test_int [sinh(x)^6/(a + b*cosh(x)), x, 6, -((a*(8*a^4 - 20*a^2*b^2 + 15*b^4)*x)/(8*b^6)) + (2*(a - b)^(5/2)*(a + b)^(5/2)*atanh((sqrt(a - b)*tanh(x/2))/sqrt(a + b)))/b^6 + ((8*(a^2 - b^2)^2 - a*b*(4*a^2 - 7*b^2)*cosh(x))*sinh(x))/(8*b^5) + ((4*(a^2 - b^2) - 3*a*b*cosh(x))*sinh(x)^3)/(12*b^3) + sinh(x)^5/(5*b)]
    @test_int [sinh(x)^5/(a + b*cosh(x)), x, 3, -((a*(a^2 - 2*b^2)*cosh(x))/b^4) + ((a^2 - 2*b^2)*cosh(x)^2)/(2*b^3) - (a*cosh(x)^3)/(3*b^2) + cosh(x)^4/(4*b) + ((a^2 - b^2)^2*log(a + b*cosh(x)))/b^5]
    @test_int [sinh(x)^4/(a + b*cosh(x)), x, 5, -((a*(2*a^2 - 3*b^2)*x)/(2*b^4)) + (2*(a - b)^(3/2)*(a + b)^(3/2)*atanh((sqrt(a - b)*tanh(x/2))/sqrt(a + b)))/b^4 + ((2*(a^2 - b^2) - a*b*cosh(x))*sinh(x))/(2*b^3) + sinh(x)^3/(3*b)]
    @test_int [sinh(x)^3/(a + b*cosh(x)), x, 3, -((a*cosh(x))/b^2) + cosh(x)^2/(2*b) + ((a^2 - b^2)*log(a + b*cosh(x)))/b^3]
    @test_int [sinh(x)^2/(a + b*cosh(x)), x, 4, -((a*x)/b^2) + (2*sqrt(a - b)*sqrt(a + b)*atanh((sqrt(a - b)*tanh(x/2))/sqrt(a + b)))/b^2 + sinh(x)/b]
    @test_int [sinh(x)^1/(a + b*cosh(x)), x, 2, log(a + b*cosh(x))/b]
    @test_int [csch(x)^1/(a + b*cosh(x)), x, 6, log(1 - cosh(x))/(2*(a + b)) - log(1 + cosh(x))/(2*(a - b)) + (b*log(a + b*cosh(x)))/(a^2 - b^2)]
    @test_int [csch(x)^2/(a + b*cosh(x)), x, 4, (2*b^2*atanh((sqrt(a - b)*tanh(x/2))/sqrt(a + b)))/((a - b)^(3/2)*(a + b)^(3/2)) + ((b - a*cosh(x))*csch(x))/(a^2 - b^2)]
    @test_int [csch(x)^3/(a + b*cosh(x)), x, 4, ((b - a*cosh(x))*csch(x)^2)/(2*(a^2 - b^2)) - ((a + 2*b)*log(1 - cosh(x)))/(4*(a + b)^2) + ((a - 2*b)*log(1 + cosh(x)))/(4*(a - b)^2) + (b^3*log(a + b*cosh(x)))/(a^2 - b^2)^2]
    @test_int [csch(x)^4/(a + b*cosh(x)), x, 5, (2*b^4*atanh((sqrt(a - b)*tanh(x/2))/sqrt(a + b)))/((a - b)^(5/2)*(a + b)^(5/2)) + ((3*b^3 + a*(2*a^2 - 5*b^2)*cosh(x))*csch(x))/(3*(a^2 - b^2)^2) + ((b - a*cosh(x))*csch(x)^3)/(3*(a^2 - b^2))]
    @test_int [csch(x)^5/(a + b*cosh(x)), x, 5, ((4*b^3 + a*(3*a^2 - 7*b^2)*cosh(x))*csch(x)^2)/(8*(a^2 - b^2)^2) + ((b - a*cosh(x))*csch(x)^4)/(4*(a^2 - b^2)) + ((3*a^2 + 9*a*b + 8*b^2)*log(1 - cosh(x)))/(16*(a + b)^3) - ((3*a^2 - 9*a*b + 8*b^2)*log(1 + cosh(x)))/(16*(a - b)^3) + (b^5*log(a + b*cosh(x)))/(a^2 - b^2)^3]
    @test_int [csch(x)^6/(a + b*cosh(x)), x, 6, (2*b^6*atanh((sqrt(a - b)*tanh(x/2))/sqrt(a + b)))/((a - b)^(7/2)*(a + b)^(7/2)) + ((15*b^5 - a*(8*a^4 - 26*a^2*b^2 + 33*b^4)*cosh(x))*csch(x))/(15*(a^2 - b^2)^3) + ((5*b^3 + a*(4*a^2 - 9*b^2)*cosh(x))*csch(x)^3)/(15*(a^2 - b^2)^2) + ((b - a*cosh(x))*csch(x)^5)/(5*(a^2 - b^2))]

    @test_int [sinh(x)^2/(a + b*cosh(x))^2, x, 4, x/b^2 - (2*a*atanh((sqrt(a - b)*tanh(x/2))/sqrt(a + b)))/(sqrt(a - b)*b^2*sqrt(a + b)) - sinh(x)/(b*(a + b*cosh(x)))]

    #= ::Subsection::Closed:: =#
    #=Integrands*of*the*form*tanh(c+d*x)^m*(a+b*cosh(c+d*x))^n=#

    @test_int [tanh(x)^4/(a + b*cosh(x)), x, 6, (b*(3*a^2 - 2*b^2)*atan(sinh(x)))/(2*a^4) + (2*(a - b)^(3/2)*(a + b)^(3/2)*atanh((sqrt(a - b)*tanh(x/2))/sqrt(a + b)))/a^4 - ((4*a^2 - 3*b^2)*tanh(x))/(3*a^3) - (b*sech(x)*tanh(x))/(2*a^2) + (sech(x)^2*tanh(x))/(3*a)]
    @test_int [tanh(x)^3/(a + b*cosh(x)), x, 3, ((a^2 - b^2)*log(cosh(x)))/a^3 - ((a^2 - b^2)*log(a + b*cosh(x)))/a^3 - (b*sech(x))/a^2 + sech(x)^2/(2*a)]
    @test_int [tanh(x)^2/(a + b*cosh(x)), x, 6, (b*atan(sinh(x)))/a^2 + (2*sqrt(a - b)*sqrt(a + b)*atanh((sqrt(a - b)*tanh(x/2))/sqrt(a + b)))/a^2 - tanh(x)/a]
    @test_int [tanh(x)^1/(a + b*cosh(x)), x, 4, log(cosh(x))/a - log(a + b*cosh(x))/a]
    @test_int [coth(x)^1/(a + b*cosh(x)), x, 3, log(1 - cosh(x))/(2*(a + b)) + log(1 + cosh(x))/(2*(a - b)) - (a*log(a + b*cosh(x)))/(a^2 - b^2)]
    @test_int [coth(x)^2/(a + b*cosh(x)), x, 7, (2*a^2*atanh((sqrt(a - b)*tanh(x/2))/sqrt(a + b)))/((a - b)^(3/2)*(a + b)^(3/2)) - (a*coth(x))/(a^2 - b^2) + (b*csch(x))/(a^2 - b^2)]
    @test_int [coth(x)^3/(a + b*cosh(x)), x, 4, -(((a - b*cosh(x))*csch(x)^2)/(2*(a^2 - b^2))) + ((2*a + b)*log(1 - cosh(x)))/(4*(a + b)^2) + ((2*a - b)*log(1 + cosh(x)))/(4*(a - b)^2) - (a^3*log(a + b*cosh(x)))/(a^2 - b^2)^2]
    @test_int [coth(x)^4/(a + b*cosh(x)), x, 12, (2*a^4*atanh((sqrt(a - b)*tanh(x/2))/sqrt(a + b)))/((a - b)^(5/2)*(a + b)^(5/2)) - (a^3*coth(x))/(a^2 - b^2)^2 - (a*coth(x)^3)/(3*(a^2 - b^2)) + (a^2*b*csch(x))/(a^2 - b^2)^2 + (b*csch(x))/(a^2 - b^2) + (b*csch(x)^3)/(3*(a^2 - b^2))]

    @test_int [tanh(x)^6/(a + a*cosh(x)), x, 6, (3*atan(sinh(x)))/(8*a) - (3*sech(x)*tanh(x))/(8*a) - (sech(x)*tanh(x)^3)/(4*a) - tanh(x)^5/(5*a)]
    @test_int [tanh(x)^5/(a + a*cosh(x)), x, 5, -(sech(x)/a) + sech(x)^3/(3*a) - tanh(x)^4/(4*a)]
    @test_int [tanh(x)^4/(a + a*cosh(x)), x, 5, atan(sinh(x))/(2*a) - (sech(x)*tanh(x))/(2*a) - tanh(x)^3/(3*a)]
    @test_int [tanh(x)^3/(a + a*cosh(x)), x, 5, -(sech(x)/a) + sech(x)^2/(2*a)]
    @test_int [tanh(x)^2/(a + a*cosh(x)), x, 4, atan(sinh(x))/a - tanh(x)/a]
    @test_int [tanh(x)^1/(a + a*cosh(x)), x, 4, log(cosh(x))/a - log(1 + cosh(x))/a]
    @test_int [coth(x)^1/(a + a*cosh(x)), x, 5, -(atanh(cosh(x))/(2*a)) - (coth(x)*csch(x))/(2*a) + csch(x)^2/(2*a)]
    @test_int [coth(x)^2/(a + a*cosh(x)), x, 5, coth(x)^3/(3*a) - csch(x)/a - csch(x)^3/(3*a)]
    @test_int [coth(x)^3/(a + a*cosh(x)), x, 6, -((3*atanh(cosh(x)))/(8*a)) + coth(x)^4/(4*a) - (3*coth(x)*csch(x))/(8*a) - (coth(x)^3*csch(x))/(4*a)]
    @test_int [coth(x)^4/(a + a*cosh(x)), x, 6, coth(x)^5/(5*a) - csch(x)/a - (2*csch(x)^3)/(3*a) - csch(x)^5/(5*a)]

    @test_int [tanh(x)*sqrt(a + b*cosh(x)), x, 4, -2*sqrt(a)*atanh(sqrt(a + b*cosh(x))/sqrt(a)) + 2*sqrt(a + b*cosh(x))]
    @test_int [tanh(x)/sqrt(a + b*cosh(x)), x, 3, -((2*atanh(sqrt(a + b*cosh(x))/sqrt(a)))/sqrt(a))]

    #= ::Section::Closed:: =#
    #=Integrands*of*the*form*(A+B*Hyper(c+d*x))*(a+b*cosh(c+d*x))^n=#

    #= ::Subsection::Closed:: =#
    #=Integrands*of*the*form*(A+B*sinh(c+d*x))*(a+b*cosh(c+d*x))^n=#

    @test_int [(A + B*sinh(x))/(a + b*cosh(x)), x, 6, (2*A*atanh((sqrt(a - b)*tanh(x/2))/sqrt(a + b)))/(sqrt(a - b)*sqrt(a + b)) + (B*log(a + b*cosh(x)))/b]

    @test_int [(A + B*sinh(x))/(1 + cosh(x)), x, 5, B*log(1 + cosh(x)) + (A*sinh(x))/(1 + cosh(x))]
    @test_int [(A + B*sinh(x))/(1 - cosh(x)), x, 5, (-B)*log(1 - cosh(x)) - (A*sinh(x))/(1 - cosh(x))]

    #= ::Subsection::Closed:: =#
    #=Integrands*of*the*form*(A+B*Hyper(c+d*x))*(a+b*cosh(c+d*x))^n=#

    @test_int [(A + B*tanh(x))/(a + b*cosh(x)), x, 8, (2*A*atanh((sqrt(a - b)*tanh(x/2))/sqrt(a + b)))/(sqrt(a - b)*sqrt(a + b)) + (B*log(cosh(x)))/a - (B*log(a + b*cosh(x)))/a]
    @test_int [(A + B*coth(x))/(a + b*cosh(x)), x, 7, (2*A*atanh((sqrt(a - b)*tanh(x/2))/sqrt(a + b)))/(sqrt(a - b)*sqrt(a + b)) + (B*log(1 - cosh(x)))/(2*(a + b)) + (B*log(1 + cosh(x)))/(2*(a - b)) - (a*B*log(a + b*cosh(x)))/(a^2 - b^2)]
    @test_int [(A + B*sech(x))/(a + b*cosh(x)), x, 5, (B*atan(sinh(x)))/a + (2*(a*A - b*B)*atanh((sqrt(a - b)*tanh(x/2))/sqrt(a + b)))/(a*sqrt(a - b)*sqrt(a + b))]
    @test_int [(A + B*csch(x))/(a + b*cosh(x)), x, 11, (2*A*atanh((sqrt(a - b)*tanh(x/2))/sqrt(a + b)))/(sqrt(a - b)*sqrt(a + b)) + (B*log(1 - cosh(x)))/(2*(a + b)) - (B*log(1 + cosh(x)))/(2*(a - b)) + (b*B*log(a + b*cosh(x)))/(a^2 - b^2)]

    #= ::Section::Closed:: =#
    #=Integrands*of*the*form*(A+B*Hyper(c+d*x)+C*Hyper(c+d*x))*(a+b*cosh(c+d*x))^n=#

    @test_int [(A + B*cosh(d + e*x) + C*sinh(d + e*x))/(a + b*cosh(d + e*x)), x, 6, (B*x)/b + (2*(A*b - a*B)*atanh((sqrt(a - b)*tanh((1/2)*(d + e*x)))/sqrt(a + b)))/(sqrt(a - b)*b*sqrt(a + b)*e) + (C*log(a + b*cosh(d + e*x)))/(b*e)]
    @test_int [(A + B*cosh(d + e*x) + C*sinh(d + e*x))/(a + b*cosh(d + e*x))^2, x, 7, (2*(a*A - b*B)*atanh((sqrt(a - b)*tanh((1/2)*(d + e*x)))/sqrt(a + b)))/((a - b)^(3/2)*(a + b)^(3/2)*e) - C/(b*e*(a + b*cosh(d + e*x))) - ((A*b - a*B)*sinh(d + e*x))/((a^2 - b^2)*e*(a + b*cosh(d + e*x)))]
    @test_int [(A + B*cosh(d + e*x) + C*sinh(d + e*x))/(a + b*cosh(d + e*x))^3, x, 8, ((2*a^2*A + A*b^2 - 3*a*b*B)*atanh((sqrt(a - b)*tanh((1/2)*(d + e*x)))/sqrt(a + b)))/((a - b)^(5/2)*(a + b)^(5/2)*e) - C/(2*b*e*(a + b*cosh(d + e*x))^2) - ((A*b - a*B)*sinh(d + e*x))/(2*(a^2 - b^2)*e*(a + b*cosh(d + e*x))^2) - ((3*a*A*b - a^2*B - 2*b^2*B)*sinh(d + e*x))/(2*(a^2 - b^2)^2*e*(a + b*cosh(d + e*x)))]
    @test_int [(A + B*cosh(d + e*x) + C*sinh(d + e*x))/(a + b*cosh(d + e*x))^4, x, 9, ((2*a^3*A + 3*a*A*b^2 - 4*a^2*b*B - b^3*B)*atanh((sqrt(a - b)*tanh((1/2)*(d + e*x)))/sqrt(a + b)))/((a - b)^(7/2)*(a + b)^(7/2)*e) - C/(3*b*e*(a + b*cosh(d + e*x))^3) - ((A*b - a*B)*sinh(d + e*x))/(3*(a^2 - b^2)*e*(a + b*cosh(d + e*x))^3) - ((5*a*A*b - 2*a^2*B - 3*b^2*B)*sinh(d + e*x))/(6*(a^2 - b^2)^2*e*(a + b*cosh(d + e*x))^2) - ((11*a^2*A*b + 4*A*b^3 - 2*a^3*B - 13*a*b^2*B)*sinh(d + e*x))/(6*(a^2 - b^2)^3*e*(a + b*cosh(d + e*x)))]

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

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

    @test_int [x/(a + b*cosh(x)^2), x, 9, (x*log(1 + (b*ℯ^(2*x))/(2*a + b - 2*sqrt(a)*sqrt(a + b))))/(2*sqrt(a)*sqrt(a + b)) - (x*log(1 + (b*ℯ^(2*x))/(2*a + b + 2*sqrt(a)*sqrt(a + b))))/(2*sqrt(a)*sqrt(a + b)) + PolyLog(2, -((b*ℯ^(2*x))/(2*a + b - 2*sqrt(a)*sqrt(a + b))))/(4*sqrt(a)*sqrt(a + b)) - PolyLog(2, -((b*ℯ^(2*x))/(2*a + b + 2*sqrt(a)*sqrt(a + b))))/(4*sqrt(a)*sqrt(a + b))]
    @test_int [x^2/(a + b*cosh(x)^2), x, 11, (x^2*log(1 + (b*ℯ^(2*x))/(2*a + b - 2*sqrt(a)*sqrt(a + b))))/(2*sqrt(a)*sqrt(a + b)) - (x^2*log(1 + (b*ℯ^(2*x))/(2*a + b + 2*sqrt(a)*sqrt(a + b))))/(2*sqrt(a)*sqrt(a + b)) + (x*PolyLog(2, -((b*ℯ^(2*x))/(2*a + b - 2*sqrt(a)*sqrt(a + b)))))/(2*sqrt(a)*sqrt(a + b)) - (x*PolyLog(2, -((b*ℯ^(2*x))/(2*a + b + 2*sqrt(a)*sqrt(a + b)))))/(2*sqrt(a)*sqrt(a + b)) - PolyLog(3, -((b*ℯ^(2*x))/(2*a + b - 2*sqrt(a)*sqrt(a + b))))/(4*sqrt(a)*sqrt(a + b)) + PolyLog(3, -((b*ℯ^(2*x))/(2*a + b + 2*sqrt(a)*sqrt(a + b))))/(4*sqrt(a)*sqrt(a + b))]
    @test_int [x^3/(a + b*cosh(x)^2), x, 13, (x^3*log(1 + (b*ℯ^(2*x))/(2*a + b - 2*sqrt(a)*sqrt(a + b))))/(2*sqrt(a)*sqrt(a + b)) - (x^3*log(1 + (b*ℯ^(2*x))/(2*a + b + 2*sqrt(a)*sqrt(a + b))))/(2*sqrt(a)*sqrt(a + b)) + (3*x^2*PolyLog(2, -((b*ℯ^(2*x))/(2*a + b - 2*sqrt(a)*sqrt(a + b)))))/(4*sqrt(a)*sqrt(a + b)) - (3*x^2*PolyLog(2, -((b*ℯ^(2*x))/(2*a + b + 2*sqrt(a)*sqrt(a + b)))))/(4*sqrt(a)*sqrt(a + b)) - (3*x*PolyLog(3, -((b*ℯ^(2*x))/(2*a + b - 2*sqrt(a)*sqrt(a + b)))))/(4*sqrt(a)*sqrt(a + b)) + (3*x*PolyLog(3, -((b*ℯ^(2*x))/(2*a + b + 2*sqrt(a)*sqrt(a + b)))))/(4*sqrt(a)*sqrt(a + b)) + (3*PolyLog(4, -((b*ℯ^(2*x))/(2*a + b - 2*sqrt(a)*sqrt(a + b)))))/(8*sqrt(a)*sqrt(a + b)) - (3*PolyLog(4, -((b*ℯ^(2*x))/(2*a + b + 2*sqrt(a)*sqrt(a + b)))))/(8*sqrt(a)*sqrt(a + b))]

    #= ::Section::Closed:: =#
    #=Integrands*of*the*form*(1-a^2*x^2)^m*cosh(sqrt(1-a*x)/sqrt(1+a*x))^n=#

    @test_int [cosh(sqrt(1 - a*x)/sqrt(1 + a*x))^3/(1 - a^2*x^2), x, 5, -((3*CoshIntegral(sqrt(1 - a*x)/sqrt(1 + a*x)))/(4*a)) - CoshIntegral((3*sqrt(1 - a*x))/sqrt(1 + a*x))/(4*a)]
    @test_int [cosh(sqrt(1 - a*x)/sqrt(1 + a*x))^2/(1 - a^2*x^2), x, 4, -(CoshIntegral((2*sqrt(1 - a*x))/sqrt(1 + a*x))/(2*a)) - log(sqrt(1 - a*x)/sqrt(1 + a*x))/(2*a)]
    @test_int [cosh(sqrt(1 - a*x)/sqrt(1 + a*x))^1/(1 - a^2*x^2), x, 2, -(CoshIntegral(sqrt(1 - a*x)/sqrt(1 + a*x))/a)]
    @test_int [1/(cosh(sqrt(1 - a*x)/sqrt(1 + a*x))^1*(1 - a^2*x^2)), x, 1, Unintegrable(sech(sqrt(1 - a*x)/sqrt(1 + a*x))/((1 - a*x)*(1 + a*x)), x)]
    @test_int [1/(cosh(sqrt(1 - a*x)/sqrt(1 + a*x))^2*(1 - a^2*x^2)), x, 1, Unintegrable(sech(sqrt(1 - a*x)/sqrt(1 + a*x))^2/((1 - a*x)*(1 + a*x)), x)]

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

    @test_int [x*sinh(x)/(a + b*cosh(x))^2, x, 3, (2*atanh((sqrt(a - b)*tanh(x/2))/sqrt(a + b)))/(sqrt(a - b)*b*sqrt(a + b)) - x/(b*(a + b*cosh(x)))]
    @test_int [x*sinh(x)/(a + b*cosh(x))^3, x, 5, (a*atanh((sqrt(a - b)*tanh(x/2))/sqrt(a + b)))/((a - b)^(3/2)*b*(a + b)^(3/2)) - x/(2*b*(a + b*cosh(x))^2) - sinh(x)/(2*(a^2 - b^2)*(a + b*cosh(x)))]

    @test_int [sinh(a + b*x)*(2 + cosh(a + b*x)^2)/x, x, 13, (9/4)*CoshIntegral(b*x)*sinh(a) + (1/4)*CoshIntegral(3*b*x)*sinh(3*a) + (9/4)*cosh(a)*SinhIntegral(b*x) + (1/4)*cosh(3*a)*SinhIntegral(3*b*x)]

    @test_int [(x^m*sinh(c + d*x))/(a + b*cosh(c + d*x)), x, 0, Unintegrable((x^m*sinh(c + d*x))/(a + b*cosh(c + d*x)), x)]

    @test_int [(x^3*sinh(c + d*x))/(a + b*cosh(c + d*x)), x, 11, -x^4/(4*b) + (x^3*log(1 + (b*ℯ^(c + d*x))/(a - sqrt(a^2 - b^2))))/(b*d) + (x^3*log(1 + (b*ℯ^(c + d*x))/(a + sqrt(a^2 - b^2))))/(b*d) + (3*x^2*PolyLog(2, -((b*ℯ^(c + d*x))/(a - sqrt(a^2 - b^2)))))/(b*d^2) + (3*x^2*PolyLog(2, -((b*ℯ^(c + d*x))/(a + sqrt(a^2 - b^2)))))/(b*d^2) - (6*x*PolyLog(3, -((b*ℯ^(c + d*x))/(a - sqrt(a^2 - b^2)))))/(b*d^3) - (6*x*PolyLog(3, -((b*ℯ^(c + d*x))/(a + sqrt(a^2 - b^2)))))/(b*d^3) + (6*PolyLog(4, -((b*ℯ^(c + d*x))/(a - sqrt(a^2 - b^2)))))/(b*d^4) + (6*PolyLog(4, -((b*ℯ^(c + d*x))/(a + sqrt(a^2 - b^2)))))/(b*d^4)]
    @test_int [(x^2*sinh(c + d*x))/(a + b*cosh(c + d*x)), x, 9, -x^3/(3*b) + (x^2*log(1 + (b*ℯ^(c + d*x))/(a - sqrt(a^2 - b^2))))/(b*d) + (x^2*log(1 + (b*ℯ^(c + d*x))/(a + sqrt(a^2 - b^2))))/(b*d) + (2*x*PolyLog(2, -((b*ℯ^(c + d*x))/(a - sqrt(a^2 - b^2)))))/(b*d^2) + (2*x*PolyLog(2, -((b*ℯ^(c + d*x))/(a + sqrt(a^2 - b^2)))))/(b*d^2) - (2*PolyLog(3, -((b*ℯ^(c + d*x))/(a - sqrt(a^2 - b^2)))))/(b*d^3) - (2*PolyLog(3, -((b*ℯ^(c + d*x))/(a + sqrt(a^2 - b^2)))))/(b*d^3)]
    @test_int [(x*sinh(c + d*x))/(a + b*cosh(c + d*x)), x, 7, -x^2/(2*b) + (x*log(1 + (b*ℯ^(c + d*x))/(a - sqrt(a^2 - b^2))))/(b*d) + (x*log(1 + (b*ℯ^(c + d*x))/(a + sqrt(a^2 - b^2))))/(b*d) + PolyLog(2, -((b*ℯ^(c + d*x))/(a - sqrt(a^2 - b^2))))/(b*d^2) + PolyLog(2, -((b*ℯ^(c + d*x))/(a + sqrt(a^2 - b^2))))/(b*d^2)]
    @test_int [sinh(c + d*x)/(a + b*cosh(c + d*x)), x, 2, log(a + b*cosh(c + d*x))/(b*d)]
    @test_int [sinh(c + d*x)/(x*(a + b*cosh(c + d*x))), x, 0, Unintegrable(sinh(c + d*x)/(x*(a + b*cosh(c + d*x))), x)]

    @test_int [(x^m*sinh(c + d*x)^2)/(a + b*cosh(c + d*x)), x, 0, Unintegrable((x^m*sinh(c + d*x)^2)/(a + b*cosh(c + d*x)), x)]

    @test_int [(x^3*sinh(c + d*x)^2)/(a + b*cosh(c + d*x)), x, 18, -(a*x^4)/(4*b^2) - (6*cosh(c + d*x))/(b*d^4) - (3*x^2*cosh(c + d*x))/(b*d^2) + (sqrt(a^2 - b^2)*x^3*log(1 + (b*ℯ^(c + d*x))/(a - sqrt(a^2 - b^2))))/(b^2*d) - (sqrt(a^2 - b^2)*x^3*log(1 + (b*ℯ^(c + d*x))/(a + sqrt(a^2 - b^2))))/(b^2*d) + (3*sqrt(a^2 - b^2)*x^2*PolyLog(2, -((b*ℯ^(c + d*x))/(a - sqrt(a^2 - b^2)))))/(b^2*d^2) - (3*sqrt(a^2 - b^2)*x^2*PolyLog(2, -((b*ℯ^(c + d*x))/(a + sqrt(a^2 - b^2)))))/(b^2*d^2) - (6*sqrt(a^2 - b^2)*x*PolyLog(3, -((b*ℯ^(c + d*x))/(a - sqrt(a^2 - b^2)))))/(b^2*d^3) + (6*sqrt(a^2 - b^2)*x*PolyLog(3, -((b*ℯ^(c + d*x))/(a + sqrt(a^2 - b^2)))))/(b^2*d^3) + (6*sqrt(a^2 - b^2)*PolyLog(4, -((b*ℯ^(c + d*x))/(a - sqrt(a^2 - b^2)))))/(b^2*d^4) - (6*sqrt(a^2 - b^2)*PolyLog(4, -((b*ℯ^(c + d*x))/(a + sqrt(a^2 - b^2)))))/(b^2*d^4) + (6*x*sinh(c + d*x))/(b*d^3) + (x^3*sinh(c + d*x))/(b*d)]
    @test_int [(x^2*sinh(c + d*x)^2)/(a + b*cosh(c + d*x)), x, 15, -(a*x^3)/(3*b^2) - (2*x*cosh(c + d*x))/(b*d^2) + (sqrt(a^2 - b^2)*x^2*log(1 + (b*ℯ^(c + d*x))/(a - sqrt(a^2 - b^2))))/(b^2*d) - (sqrt(a^2 - b^2)*x^2*log(1 + (b*ℯ^(c + d*x))/(a + sqrt(a^2 - b^2))))/(b^2*d) + (2*sqrt(a^2 - b^2)*x*PolyLog(2, -((b*ℯ^(c + d*x))/(a - sqrt(a^2 - b^2)))))/(b^2*d^2) - (2*sqrt(a^2 - b^2)*x*PolyLog(2, -((b*ℯ^(c + d*x))/(a + sqrt(a^2 - b^2)))))/(b^2*d^2) - (2*sqrt(a^2 - b^2)*PolyLog(3, -((b*ℯ^(c + d*x))/(a - sqrt(a^2 - b^2)))))/(b^2*d^3) + (2*sqrt(a^2 - b^2)*PolyLog(3, -((b*ℯ^(c + d*x))/(a + sqrt(a^2 - b^2)))))/(b^2*d^3) + (2*sinh(c + d*x))/(b*d^3) + (x^2*sinh(c + d*x))/(b*d)]
    @test_int [(x*sinh(c + d*x)^2)/(a + b*cosh(c + d*x)), x, 12, -(a*x^2)/(2*b^2) - cosh(c + d*x)/(b*d^2) + (sqrt(a^2 - b^2)*x*log(1 + (b*ℯ^(c + d*x))/(a - sqrt(a^2 - b^2))))/(b^2*d) - (sqrt(a^2 - b^2)*x*log(1 + (b*ℯ^(c + d*x))/(a + sqrt(a^2 - b^2))))/(b^2*d) + (sqrt(a^2 - b^2)*PolyLog(2, -((b*ℯ^(c + d*x))/(a - sqrt(a^2 - b^2)))))/(b^2*d^2) - (sqrt(a^2 - b^2)*PolyLog(2, -((b*ℯ^(c + d*x))/(a + sqrt(a^2 - b^2)))))/(b^2*d^2) + (x*sinh(c + d*x))/(b*d)]
    @test_int [sinh(c + d*x)^2/(a + b*cosh(c + d*x)), x, 4, -((a*x)/b^2) + (2*sqrt(a - b)*sqrt(a + b)*atanh((sqrt(a - b)*tanh((1/2)*(c + d*x)))/sqrt(a + b)))/(b^2*d) + sinh(c + d*x)/(b*d)]
    @test_int [sinh(c + d*x)^2/(x*(a + b*cosh(c + d*x))), x, 0, Unintegrable(sinh(c + d*x)^2/(x*(a + b*cosh(c + d*x))), x)]

    @test_int [(x^m*sinh(c + d*x)^3)/(a + b*cosh(c + d*x)), x, 0, Unintegrable((x^m*sinh(c + d*x)^3)/(a + b*cosh(c + d*x)), x)]

    @test_int [(x^3*sinh(c + d*x)^3)/(a + b*cosh(c + d*x)), x, 21, (3*x)/(8*b*d^3) + x^3/(4*b*d) - ((a^2 - b^2)*x^4)/(4*b^3) - (6*a*x*cosh(c + d*x))/(b^2*d^3) - (a*x^3*cosh(c + d*x))/(b^2*d) + ((a^2 - b^2)*x^3*log(1 + (b*ℯ^(c + d*x))/(a - sqrt(a^2 - b^2))))/(b^3*d) + ((a^2 - b^2)*x^3*log(1 + (b*ℯ^(c + d*x))/(a + sqrt(a^2 - b^2))))/(b^3*d) + (3*(a^2 - b^2)*x^2*PolyLog(2, -((b*ℯ^(c + d*x))/(a - sqrt(a^2 - b^2)))))/(b^3*d^2) + (3*(a^2 - b^2)*x^2*PolyLog(2, -((b*ℯ^(c + d*x))/(a + sqrt(a^2 - b^2)))))/(b^3*d^2) - (6*(a^2 - b^2)*x*PolyLog(3, -((b*ℯ^(c + d*x))/(a - sqrt(a^2 - b^2)))))/(b^3*d^3) - (6*(a^2 - b^2)*x*PolyLog(3, -((b*ℯ^(c + d*x))/(a + sqrt(a^2 - b^2)))))/(b^3*d^3) + (6*(a^2 - b^2)*PolyLog(4, -((b*ℯ^(c + d*x))/(a - sqrt(a^2 - b^2)))))/(b^3*d^4) + (6*(a^2 - b^2)*PolyLog(4, -((b*ℯ^(c + d*x))/(a + sqrt(a^2 - b^2)))))/(b^3*d^4) + (6*a*sinh(c + d*x))/(b^2*d^4) + (3*a*x^2*sinh(c + d*x))/(b^2*d^2) - (3*cosh(c + d*x)*sinh(c + d*x))/(8*b*d^4) - (3*x^2*cosh(c + d*x)*sinh(c + d*x))/(4*b*d^2) + (3*x*sinh(c + d*x)^2)/(4*b*d^3) + (x^3*sinh(c + d*x)^2)/(2*b*d)]
    @test_int [(x^2*sinh(c + d*x)^3)/(a + b*cosh(c + d*x)), x, 16, x^2/(4*b*d) - ((a^2 - b^2)*x^3)/(3*b^3) - (2*a*cosh(c + d*x))/(b^2*d^3) - (a*x^2*cosh(c + d*x))/(b^2*d) + ((a^2 - b^2)*x^2*log(1 + (b*ℯ^(c + d*x))/(a - sqrt(a^2 - b^2))))/(b^3*d) + ((a^2 - b^2)*x^2*log(1 + (b*ℯ^(c + d*x))/(a + sqrt(a^2 - b^2))))/(b^3*d) + (2*(a^2 - b^2)*x*PolyLog(2, -((b*ℯ^(c + d*x))/(a - sqrt(a^2 - b^2)))))/(b^3*d^2) + (2*(a^2 - b^2)*x*PolyLog(2, -((b*ℯ^(c + d*x))/(a + sqrt(a^2 - b^2)))))/(b^3*d^2) - (2*(a^2 - b^2)*PolyLog(3, -((b*ℯ^(c + d*x))/(a - sqrt(a^2 - b^2)))))/(b^3*d^3) - (2*(a^2 - b^2)*PolyLog(3, -((b*ℯ^(c + d*x))/(a + sqrt(a^2 - b^2)))))/(b^3*d^3) + (2*a*x*sinh(c + d*x))/(b^2*d^2) - (x*cosh(c + d*x)*sinh(c + d*x))/(2*b*d^2) + sinh(c + d*x)^2/(4*b*d^3) + (x^2*sinh(c + d*x)^2)/(2*b*d)]
    @test_int [(x*sinh(c + d*x)^3)/(a + b*cosh(c + d*x)), x, 13, x/(4*b*d) - ((a^2 - b^2)*x^2)/(2*b^3) - (a*x*cosh(c + d*x))/(b^2*d) + ((a^2 - b^2)*x*log(1 + (b*ℯ^(c + d*x))/(a - sqrt(a^2 - b^2))))/(b^3*d) + ((a^2 - b^2)*x*log(1 + (b*ℯ^(c + d*x))/(a + sqrt(a^2 - b^2))))/(b^3*d) + ((a^2 - b^2)*PolyLog(2, -((b*ℯ^(c + d*x))/(a - sqrt(a^2 - b^2)))))/(b^3*d^2) + ((a^2 - b^2)*PolyLog(2, -((b*ℯ^(c + d*x))/(a + sqrt(a^2 - b^2)))))/(b^3*d^2) + (a*sinh(c + d*x))/(b^2*d^2) - (cosh(c + d*x)*sinh(c + d*x))/(4*b*d^2) + (x*sinh(c + d*x)^2)/(2*b*d)]
    @test_int [sinh(c + d*x)^3/(a + b*cosh(c + d*x)), x, 3, -((a*cosh(c + d*x))/(b^2*d)) + cosh(c + d*x)^2/(2*b*d) + ((a^2 - b^2)*log(a + b*cosh(c + d*x)))/(b^3*d)]
    @test_int [sinh(c + d*x)^3/(x*(a + b*cosh(c + d*x))), x, 0, Unintegrable(sinh(c + d*x)^3/(x*(a + b*cosh(c + d*x))), x)]

    #= ::Section::Closed:: =#
    #=Integrands*of*the*form*x^m*cosh(a+b*log(c*x^n))^p=#

    #= ::Subsection::Closed:: =#
    #=Integrands*of*the*form*x^m*cosh(a+b*log(c*x^n))^p=#

    @test_int [cosh(a + b*log(c*x^n)), x, 1, (x*cosh(a + b*log(c*x^n)))/(1 - b^2*n^2) - (b*n*x*sinh(a + b*log(c*x^n)))/(1 - b^2*n^2)]
    @test_int [cosh(a + b*log(c*x^n))^2, x, 2, -((2*b^2*n^2*x)/(1 - 4*b^2*n^2)) + (x*cosh(a + b*log(c*x^n))^2)/(1 - 4*b^2*n^2) - (2*b*n*x*cosh(a + b*log(c*x^n))*sinh(a + b*log(c*x^n)))/(1 - 4*b^2*n^2)]
    @test_int [cosh(a + b*log(c*x^n))^3, x, 2, -((6*b^2*n^2*x*cosh(a + b*log(c*x^n)))/(1 - 10*b^2*n^2 + 9*b^4*n^4)) + (x*cosh(a + b*log(c*x^n))^3)/(1 - 9*b^2*n^2) + (6*b^3*n^3*x*sinh(a + b*log(c*x^n)))/(1 - 10*b^2*n^2 + 9*b^4*n^4) - (3*b*n*x*cosh(a + b*log(c*x^n))^2*sinh(a + b*log(c*x^n)))/(1 - 9*b^2*n^2)]
    @test_int [cosh(a + b*log(c*x^n))^4, x, 3, (24*b^4*n^4*x)/(1 - 20*b^2*n^2 + 64*b^4*n^4) - (12*b^2*n^2*x*cosh(a + b*log(c*x^n))^2)/(1 - 20*b^2*n^2 + 64*b^4*n^4) + (x*cosh(a + b*log(c*x^n))^4)/(1 - 16*b^2*n^2) + (24*b^3*n^3*x*cosh(a + b*log(c*x^n))*sinh(a + b*log(c*x^n)))/(1 - 20*b^2*n^2 + 64*b^4*n^4) - (4*b*n*x*cosh(a + b*log(c*x^n))^3*sinh(a + b*log(c*x^n)))/(1 - 16*b^2*n^2)]

    @test_int [x^m*cosh(a + b*log(c*x^n)), x, 1, ((1 + m)*x^(1 + m)*cosh(a + b*log(c*x^n)))/((1 + m)^2 - b^2*n^2) - (b*n*x^(1 + m)*sinh(a + b*log(c*x^n)))/((1 + m)^2 - b^2*n^2)]
    @test_int [x^m*cosh(a + b*log(c*x^n))^2, x, 2, -((2*b^2*n^2*x^(1 + m))/((1 + m)*((1 + m)^2 - 4*b^2*n^2))) + ((1 + m)*x^(1 + m)*cosh(a + b*log(c*x^n))^2)/((1 + m)^2 - 4*b^2*n^2) - (2*b*n*x^(1 + m)*cosh(a + b*log(c*x^n))*sinh(a + b*log(c*x^n)))/((1 + m)^2 - 4*b^2*n^2)]
    @test_int [x^m*cosh(a + b*log(c*x^n))^3, x, 2, -((6*b^2*(1 + m)*n^2*x^(1 + m)*cosh(a + b*log(c*x^n)))/(((1 + m)^2 - 9*b^2*n^2)*((1 + m)^2 - b^2*n^2))) + ((1 + m)*x^(1 + m)*cosh(a + b*log(c*x^n))^3)/((1 + m)^2 - 9*b^2*n^2) + (6*b^3*n^3*x^(1 + m)*sinh(a + b*log(c*x^n)))/(((1 + m)^2 - 9*b^2*n^2)*((1 + m)^2 - b^2*n^2)) - (3*b*n*x^(1 + m)*cosh(a + b*log(c*x^n))^2*sinh(a + b*log(c*x^n)))/((1 + m)^2 - 9*b^2*n^2)]
    @test_int [x^m*cosh(a + b*log(c*x^n))^4, x, 3, (24*b^4*n^4*x^(1 + m))/((1 + m)*((1 + m)^2 - 16*b^2*n^2)*((1 + m)^2 - 4*b^2*n^2)) - (12*b^2*(1 + m)*n^2*x^(1 + m)*cosh(a + b*log(c*x^n))^2)/(((1 + m)^2 - 16*b^2*n^2)*((1 + m)^2 - 4*b^2*n^2)) + ((1 + m)*x^(1 + m)*cosh(a + b*log(c*x^n))^4)/((1 + m)^2 - 16*b^2*n^2) + (24*b^3*n^3*x^(1 + m)*cosh(a + b*log(c*x^n))*sinh(a + b*log(c*x^n)))/(((1 + m)^2 - 16*b^2*n^2)*((1 + m)^2 - 4*b^2*n^2)) - (4*b*n*x^(1 + m)*cosh(a + b*log(c*x^n))^3*sinh(a + b*log(c*x^n)))/((1 + m)^2 - 16*b^2*n^2)]

    @test_int [cosh(a + b*log(c*x^n))/x, x, 2, sinh(a + b*log(c*x^n))/(b*n)]
    @test_int [cosh(a + b*log(c*x^n))^2/x, x, 3, log(x)/2 + (cosh(a + b*log(c*x^n))*sinh(a + b*log(c*x^n)))/(2*b*n)]
    @test_int [cosh(a + b*log(c*x^n))^3/x, x, 3, sinh(a + b*log(c*x^n))/(b*n) + sinh(a + b*log(c*x^n))^3/(3*b*n)]
    @test_int [cosh(a + b*log(c*x^n))^4/x, x, 4, 3*log(x)/8 + (3*cosh(a + b*log(c*x^n))*sinh(a + b*log(c*x^n)))/(8*b*n) + (cosh(a + b*log(c*x^n))^3*sinh(a + b*log(c*x^n)))/(4*b*n)]
    @test_int [cosh(a + b*log(c*x^n))^5/x, x, 3, sinh(a + b*log(c*x^n))/(b*n) + (2*sinh(a + b*log(c*x^n))^3)/(3*b*n) + sinh(a + b*log(c*x^n))^5/(5*b*n)]

    #= ::Subsection::Closed:: =#
    #=Integrands*of*the*form*x^m*cosh(a+b*log(c*x^n))^(p/2)=#

    @test_int [cosh(a + b*log(c*x^n))^(5/2)/x, x, 3, -((6*im*Elliptic.E((1/2)*im*(a + b*log(c*x^n)), 2))/(5*b*n)) + (2*cosh(a + b*log(c*x^n))^(3/2)*sinh(a + b*log(c*x^n)))/(5*b*n)]
    @test_int [cosh(a + b*log(c*x^n))^(3/2)/x, x, 3, -((2*im*Elliptic.F((1/2)*im*(a + b*log(c*x^n)), 2))/(3*b*n)) + (2*sqrt(cosh(a + b*log(c*x^n)))*sinh(a + b*log(c*x^n)))/(3*b*n)]
    @test_int [sqrt(cosh(a + b*log(c*x^n)))/x, x, 2, -((2*im*Elliptic.E((1/2)*im*(a + b*log(c*x^n)), 2))/(b*n))]
    @test_int [1/(x*sqrt(cosh(a + b*log(c*x^n)))), x, 2, -((2*im*Elliptic.F((1/2)*im*(a + b*log(c*x^n)), 2))/(b*n))]
    @test_int [1/(x*cosh(a + b*log(c*x^n))^(3/2)), x, 3, (2*im*Elliptic.E((1/2)*im*(a + b*log(c*x^n)), 2))/(b*n) + (2*sinh(a + b*log(c*x^n)))/(b*n*sqrt(cosh(a + b*log(c*x^n))))]
    @test_int [1/(x*cosh(a + b*log(c*x^n))^(5/2)), x, 3, -((2*im*Elliptic.F((1/2)*im*(a + b*log(c*x^n)), 2))/(3*b*n)) + (2*sinh(a + b*log(c*x^n)))/(3*b*n*cosh(a + b*log(c*x^n))^(3/2))]

    @test_int [cosh(a + 2/n*log(c*x^n))^(5/2), x, 8, (-(1/4))*x*cosh(a + (2*log(c*x^n))/n)^(5/2) + (5*x*cosh(a + (2*log(c*x^n))/n)^(5/2))/(ℯ^(2*a)*(c*x^n)^(4/n)*(4*(1 + 1/(ℯ^(2*a)*(c*x^n)^(4/n)))^2)) + (5*x*cosh(a + (2*log(c*x^n))/n)^(5/2))/(12*(1 + 1/(ℯ^(2*a)*(c*x^n)^(4/n)))) - (5*x*acsch(ℯ^a*(c*x^n)^(2/n))*cosh(a + (2*log(c*x^n))/n)^(5/2))/(ℯ^(3*a)*(c*x^n)^(6/n)*(4*(1 + 1/(ℯ^(2*a)*(c*x^n)^(4/n)))^(5/2)))]
    @test_int [sqrt(cosh(a + 2/n*log(c*x^n))), x, 6, (1/2)*x*sqrt(cosh(a + (2*log(c*x^n))/n)) - (x*acsch(ℯ^a*(c*x^n)^(2/n))*sqrt(cosh(a + (2*log(c*x^n))/n)))/(ℯ^a*(c*x^n)^(2/n)*(2*sqrt(1 + 1/(ℯ^(2*a)*(c*x^n)^(4/n)))))]
    @test_int [1/cosh(a + 2/n*log(c*x^n))^(3/2), x, 3, -((x*(1 + 1/(ℯ^(2*a)*(c*x^n)^(4/n))))/(2*cosh(a + (2*log(c*x^n))/n)^(3/2)))]
    @test_int [1/cosh(a + 2/n*log(c*x^n))^(7/2), x, 4, -((x*(1 + 1/(ℯ^(2*a)*(c*x^n)^(4/n))))/(6*cosh(a + (2*log(c*x^n))/n)^(7/2))) - (x*(1 + 1/(ℯ^(2*a)*(c*x^n)^(4/n))))/(ℯ^(2*a)*(c*x^n)^(4/n)*(15*cosh(a + (2*log(c*x^n))/n)^(7/2)))]

    #= ::Section::Closed:: =#
    #=Integrands*of*the*form*cosh((a+b*x)/(c+d*x))^n=#

    @test_int [cosh((a + b*x)/(c + d*x)), x, 5, ((c + d*x)*cosh((a + b*x)/(c + d*x)))/d + ((b*c - a*d)*CoshIntegral((b*c - a*d)/(d*(c + d*x)))*sinh(b/d))/d^2 - ((b*c - a*d)*cosh(b/d)*SinhIntegral((b*c - a*d)/(d*(c + d*x))))/d^2]
    @test_int [cosh((a + b*x)/(c + d*x))^2, x, 6, ((c + d*x)*cosh((a + b*x)/(c + d*x))^2)/d + ((b*c - a*d)*CoshIntegral((2*(b*c - a*d))/(d*(c + d*x)))*sinh((2*b)/d))/d^2 - ((b*c - a*d)*cosh((2*b)/d)*SinhIntegral((2*(b*c - a*d))/(d*(c + d*x))))/d^2]

    #= ::Section::Closed:: =#
    #=Integrands*of*the*form*ℯ^(a+b*x)*cosh(c+d*x)^m=#

    #= ::Subsection::Closed:: =#
    #=Integrands*of*the*form*ℯ^(a+b*x)*cosh(a+b*x)^m=#

    @test_int [ℯ^(a + b*x)*cosh(a + b*x)^4, x, 4, -(ℯ^(-3*a - 3*b*x)/(48*b)) - ℯ^(-a - b*x)/(4*b) + (3*ℯ^(a + b*x))/(8*b) + ℯ^(3*a + 3*b*x)/(12*b) + ℯ^(5*a + 5*b*x)/(80*b)]
    @test_int [ℯ^(a + b*x)*cosh(a + b*x)^3, x, 5, -(ℯ^(-2*a - 2*b*x)/(16*b)) + (3*ℯ^(2*a + 2*b*x))/(16*b) + ℯ^(4*a + 4*b*x)/(32*b) + (3*x)/8]
    @test_int [ℯ^(a + b*x)*cosh(a + b*x)^2, x, 4, -(ℯ^(-a - b*x)/(4*b)) + ℯ^(a + b*x)/(2*b) + ℯ^(3*a + 3*b*x)/(12*b)]
    @test_int [ℯ^(a + b*x)*cosh(a + b*x)^1, x, 4, ℯ^(2*a + 2*b*x)/(4*b) + x/2]
    @test_int [ℯ^(a + b*x)*sech(a + b*x)^1, x, 3, log(1 + ℯ^(2*a + 2*b*x))/b]
    @test_int [ℯ^(a + b*x)*sech(a + b*x)^2, x, 4, -((2*ℯ^(a + b*x))/(b*(1 + ℯ^(2*a + 2*b*x)))) + (2*atan(ℯ^(a + b*x)))/b]
    @test_int [ℯ^(a + b*x)*sech(a + b*x)^3, x, 3, (2*ℯ^(4*a + 4*b*x))/(b*(1 + ℯ^(2*a + 2*b*x))^2)]
    @test_int [ℯ^(a + b*x)*sech(a + b*x)^4, x, 6, -((8*ℯ^(3*a + 3*b*x))/(3*b*(1 + ℯ^(2*a + 2*b*x))^3)) - (2*ℯ^(a + b*x))/(b*(1 + ℯ^(2*a + 2*b*x))^2) + ℯ^(a + b*x)/(b*(1 + ℯ^(2*a + 2*b*x))) + atan(ℯ^(a + b*x))/b]
    @test_int [ℯ^(a + b*x)*sech(a + b*x)^5, x, 5, -(4/(b*(1 + ℯ^(2*a + 2*b*x))^4)) + 32/(3*b*(1 + ℯ^(2*a + 2*b*x))^3) - 8/(b*(1 + ℯ^(2*a + 2*b*x))^2)]

    #= ::Subsection::Closed:: =#
    #=Integrands*of*the*form*ℯ^x*cosh(n*x)^m=#

    @test_int [ℯ^x*cosh(2*x)^2, x, 4, -(1/12)/ℯ^(3*x) + ℯ^x/2 + ℯ^(5*x)/20]
    @test_int [ℯ^x*cosh(2*x), x, 4, -(1/(ℯ^x*2)) + ℯ^(3*x)/6]
    @test_int [ℯ^x*sech(2*x), x, 11, -(atan(1 - sqrt(2)*ℯ^x)/sqrt(2)) + atan(1 + sqrt(2)*ℯ^x)/sqrt(2) + log(1 - sqrt(2)*ℯ^x + ℯ^(2*x))/(2*sqrt(2)) - log(1 + sqrt(2)*ℯ^x + ℯ^(2*x))/(2*sqrt(2))]
    @test_int [ℯ^x*sech(2*x)^2, x, 12, -(ℯ^x/(1 + ℯ^(4*x))) - atan(1 - sqrt(2)*ℯ^x)/(2*sqrt(2)) + atan(1 + sqrt(2)*ℯ^x)/(2*sqrt(2)) - log(1 - sqrt(2)*ℯ^x + ℯ^(2*x))/(4*sqrt(2)) + log(1 + sqrt(2)*ℯ^x + ℯ^(2*x))/(4*sqrt(2))]

    @test_int [ℯ^x*cosh(3*x)^2, x, 4, -(1/20)/ℯ^(5*x) + ℯ^x/2 + ℯ^(7*x)/28]
    @test_int [ℯ^x*cosh(3*x), x, 4, -(1/4)/ℯ^(2*x) + ℯ^(4*x)/8]
    @test_int [ℯ^x*sech(3*x), x, 9, -(atan((1 - 2*ℯ^(2*x))/sqrt(3))/sqrt(3)) - (1/3)*log(1 + ℯ^(2*x)) + (1/6)*log(1 - ℯ^(2*x) + ℯ^(4*x))]
    @test_int [ℯ^x*sech(3*x)^2, x, 13, -((2*ℯ^x)/(3*(1 + ℯ^(6*x)))) + (2*atan(ℯ^x))/9 - (1/9)*atan(sqrt(3) - 2*ℯ^x) + (1/9)*atan(sqrt(3) + 2*ℯ^x) - log(1 - sqrt(3)*ℯ^x + ℯ^(2*x))/(6*sqrt(3)) + log(1 + sqrt(3)*ℯ^x + ℯ^(2*x))/(6*sqrt(3))]

    @test_int [ℯ^x*cosh(4*x)^2, x, 4, -(1/28)/ℯ^(7*x) + ℯ^x/2 + ℯ^(9*x)/36]
    @test_int [ℯ^x*cosh(4*x), x, 4, -(1/6)/ℯ^(3*x) + ℯ^(5*x)/10]
    @test_int [ℯ^x*sech(4*x), x, 21, atan((sqrt(2 - sqrt(2)) - 2*ℯ^x)/sqrt(2 + sqrt(2)))/(2*sqrt(2*(2 + sqrt(2)))) - atan((sqrt(2 + sqrt(2)) - 2*ℯ^x)/sqrt(2 - sqrt(2)))/(2*sqrt(2*(2 - sqrt(2)))) - atan((sqrt(2 - sqrt(2)) + 2*ℯ^x)/sqrt(2 + sqrt(2)))/(2*sqrt(2*(2 + sqrt(2)))) + atan((sqrt(2 + sqrt(2)) + 2*ℯ^x)/sqrt(2 - sqrt(2)))/(2*sqrt(2*(2 - sqrt(2)))) - log(1 - sqrt(2 - sqrt(2))*ℯ^x + ℯ^(2*x))/(4*sqrt(2*(2 - sqrt(2)))) + log(1 + sqrt(2 - sqrt(2))*ℯ^x + ℯ^(2*x))/(4*sqrt(2*(2 - sqrt(2)))) + log(1 - sqrt(2 + sqrt(2))*ℯ^x + ℯ^(2*x))/(4*sqrt(2*(2 + sqrt(2)))) - log(1 + sqrt(2 + sqrt(2))*ℯ^x + ℯ^(2*x))/(4*sqrt(2*(2 + sqrt(2))))]
    @test_int [ℯ^x*sech(4*x)^2, x, 22, -(ℯ^x/(2*(1 + ℯ^(8*x)))) - atan((sqrt(2 - sqrt(2)) - 2*ℯ^x)/sqrt(2 + sqrt(2)))/(8*sqrt(2*(2 - sqrt(2)))) - atan((sqrt(2 + sqrt(2)) - 2*ℯ^x)/sqrt(2 - sqrt(2)))/(8*sqrt(2*(2 + sqrt(2)))) + atan((sqrt(2 - sqrt(2)) + 2*ℯ^x)/sqrt(2 + sqrt(2)))/(8*sqrt(2*(2 - sqrt(2)))) + atan((sqrt(2 + sqrt(2)) + 2*ℯ^x)/sqrt(2 - sqrt(2)))/(8*sqrt(2*(2 + sqrt(2)))) - (1/32)*sqrt(2 - sqrt(2))*log(1 - sqrt(2 - sqrt(2))*ℯ^x + ℯ^(2*x)) + (1/32)*sqrt(2 - sqrt(2))*log(1 + sqrt(2 - sqrt(2))*ℯ^x + ℯ^(2*x)) - (1/32)*sqrt(2 + sqrt(2))*log(1 - sqrt(2 + sqrt(2))*ℯ^x + ℯ^(2*x)) + (1/32)*sqrt(2 + sqrt(2))*log(1 + sqrt(2 + sqrt(2))*ℯ^x + ℯ^(2*x))]

    #= ::Subsection::Closed:: =#
    #=Integrands*of*the*form*F^(c*(a+b*x))*cosh(d+e*x)^m=#

    @test_int [F^(c*(a + b*x))*cosh(d + e*x)^3, x, 2, -((b*c*F^(c*(a + b*x))*cosh(d + e*x)^3*log(F))/(9*e^2 - b^2*c^2*log(F)^2)) - (6*b*c*e^2*F^(c*(a + b*x))*cosh(d + e*x)*log(F))/(9*e^4 - 10*b^2*c^2*e^2*log(F)^2 + b^4*c^4*log(F)^4) + (3*e*F^(c*(a + b*x))*cosh(d + e*x)^2*sinh(d + e*x))/(9*e^2 - b^2*c^2*log(F)^2) + (6*e^3*F^(c*(a + b*x))*sinh(d + e*x))/(9*e^4 - 10*b^2*c^2*e^2*log(F)^2 + b^4*c^4*log(F)^4)]
    @test_int [F^(c*(a + b*x))*cosh(d + e*x)^2, x, 2, (2*e^2*F^(c*(a + b*x)))/(b*c*log(F)*(4*e^2 - b^2*c^2*log(F)^2)) - (b*c*F^(c*(a + b*x))*cosh(d + e*x)^2*log(F))/(4*e^2 - b^2*c^2*log(F)^2) + (2*e*F^(c*(a + b*x))*cosh(d + e*x)*sinh(d + e*x))/(4*e^2 - b^2*c^2*log(F)^2)]
    @test_int [F^(c*(a + b*x))*cosh(d + e*x)^1, x, 1, -((b*c*F^(c*(a + b*x))*cosh(d + e*x)*log(F))/(e^2 - b^2*c^2*log(F)^2)) + (e*F^(c*(a + b*x))*sinh(d + e*x))/(e^2 - b^2*c^2*log(F)^2)]
    @test_int [F^(c*(a + b*x))*sech(d + e*x)^1, x, 1, (2*ℯ^(d + e*x)*F^(c*(a + b*x))*HypergeometricFunctions._₂F₁(1, (e + b*c*log(F))/(2*e), (1/2)*(3 + (b*c*log(F))/e), -ℯ^(2*(d + e*x))))/(e + b*c*log(F))]
    @test_int [F^(c*(a + b*x))*sech(d + e*x)^2, x, 1, (4*ℯ^(2*(d + e*x))*F^(c*(a + b*x))*HypergeometricFunctions._₂F₁(2, 1 + (b*c*log(F))/(2*e), 2 + (b*c*log(F))/(2*e), -ℯ^(2*(d + e*x))))/(2*e + b*c*log(F))]
    @test_int [F^(c*(a + b*x))*sech(d + e*x)^3, x, 2, (ℯ^(d + e*x)*F^(c*(a + b*x))*HypergeometricFunctions._₂F₁(1, (e + b*c*log(F))/(2*e), (1/2)*(3 + (b*c*log(F))/e), -ℯ^(2*(d + e*x)))*(e - b*c*log(F)))/e^2 + (b*c*F^(c*(a + b*x))*log(F)*sech(d + e*x))/(2*e^2) + (F^(c*(a + b*x))*sech(d + e*x)*tanh(d + e*x))/(2*e)]
    @test_int [F^(c*(a + b*x))*sech(d + e*x)^4, x, 2, (2*ℯ^(2*(d + e*x))*F^(c*(a + b*x))*HypergeometricFunctions._₂F₁(2, 1 + (b*c*log(F))/(2*e), 2 + (b*c*log(F))/(2*e), -ℯ^(2*(d + e*x)))*(2*e - b*c*log(F)))/(3*e^2) + (b*c*F^(c*(a + b*x))*log(F)*sech(d + e*x)^2)/(6*e^2) + (F^(c*(a + b*x))*sech(d + e*x)^2*tanh(d + e*x))/(3*e)]

    #= ::Subsection::Closed:: =#
    #=Integrands*of*the*form*ℯ^(c*(a+b*x))*(cosh(a*c+b*c*x)^2)^(m/2)=#

    @test_int [ℯ^(c*(a + b*x))*(cosh(a*c + b*c*x)^2)^(5/2), x, 6, -(sqrt(cosh(a*c + b*c*x)^2)*sech(a*c + b*c*x))/(128*b*c*ℯ^(4*c*(a + b*x))) - (5*sqrt(cosh(a*c + b*c*x)^2)*sech(a*c + b*c*x))/(64*b*c*ℯ^(2*c*(a + b*x))) + (5*ℯ^(2*c*(a + b*x))*sqrt(cosh(a*c + b*c*x)^2)*sech(a*c + b*c*x))/(32*b*c) + (5*ℯ^(4*c*(a + b*x))*sqrt(cosh(a*c + b*c*x)^2)*sech(a*c + b*c*x))/(128*b*c) + (ℯ^(6*c*(a + b*x))*sqrt(cosh(a*c + b*c*x)^2)*sech(a*c + b*c*x))/(192*b*c) + (5*x*sqrt(cosh(a*c + b*c*x)^2)*sech(a*c + b*c*x))/16]
    @test_int [ℯ^(c*(a + b*x))*(cosh(a*c + b*c*x)^2)^(3/2), x, 6, -(sqrt(cosh(a*c + b*c*x)^2)*sech(a*c + b*c*x))/(16*b*c*ℯ^(2*c*(a + b*x))) + (3*ℯ^(2*c*(a + b*x))*sqrt(cosh(a*c + b*c*x)^2)*sech(a*c + b*c*x))/(16*b*c) + (ℯ^(4*c*(a + b*x))*sqrt(cosh(a*c + b*c*x)^2)*sech(a*c + b*c*x))/(32*b*c) + (3*x*sqrt(cosh(a*c + b*c*x)^2)*sech(a*c + b*c*x))/8]
    @test_int [ℯ^(c*(a + b*x))*sqrt(cosh(a*c + b*c*x)^2), x, 5, (ℯ^(2*c*(a + b*x))*sqrt(cosh(a*c + b*c*x)^2)*sech(a*c + b*c*x))/(4*b*c) + (x*sqrt(cosh(a*c + b*c*x)^2)*sech(a*c + b*c*x))/2]
    @test_int [ℯ^(c*(a + b*x))/sqrt(cosh(a*c + b*c*x)^2), x, 4, (cosh(a*c + b*c*x)*log(1 + ℯ^(2*c*(a + b*x))))/(b*c*sqrt(cosh(a*c + b*c*x)^2))]
    @test_int [ℯ^(c*(a + b*x))/(cosh(a*c + b*c*x)^2)^(3/2), x, 4, (2*ℯ^(4*c*(a + b*x))*cosh(a*c + b*c*x))/(b*c*(1 + ℯ^(2*c*(a + b*x)))^2*sqrt(cosh(a*c + b*c*x)^2))]
    @test_int [ℯ^(c*(a + b*x))/(cosh(a*c + b*c*x)^2)^(5/2), x, 6, (-4*cosh(a*c + b*c*x))/(b*c*(1 + ℯ^(2*c*(a + b*x)))^4*sqrt(cosh(a*c + b*c*x)^2)) + (32*cosh(a*c + b*c*x))/(3*b*c*(1 + ℯ^(2*c*(a + b*x)))^3*sqrt(cosh(a*c + b*c*x)^2)) - (8*cosh(a*c + b*c*x))/(b*c*(1 + ℯ^(2*c*(a + b*x)))^2*sqrt(cosh(a*c + b*c*x)^2))]
    @test_int [ℯ^(c*(a + b*x))/(cosh(a*c + b*c*x)^2)^(7/2), x, 6, (32*cosh(a*c + b*c*x))/(3*b*c*(1 + ℯ^(2*c*(a + b*x)))^6*sqrt(cosh(a*c + b*c*x)^2)) - (192*cosh(a*c + b*c*x))/(5*b*c*(1 + ℯ^(2*c*(a + b*x)))^5*sqrt(cosh(a*c + b*c*x)^2)) + (48*cosh(a*c + b*c*x))/(b*c*(1 + ℯ^(2*c*(a + b*x)))^4*sqrt(cosh(a*c + b*c*x)^2)) - (64*cosh(a*c + b*c*x))/(3*b*c*(1 + ℯ^(2*c*(a + b*x)))^3*sqrt(cosh(a*c + b*c*x)^2))]

    #= ::Section::Closed:: =#
    #=Integrands*of*the*form*ℯ^(a+b*x+c*x^2)*cosh(d+e*x+f*x^2)^m=#

    @test_int [ℯ^x*cosh(a + b*x), x, 1, (ℯ^x*cosh(a + b*x))/(1 - b^2) - (b*ℯ^x*sinh(a + b*x))/(1 - b^2)]
    @test_int [ℯ^x*cosh(a + c*x^2), x, 6, -((ℯ^(-a + 1/(4*c))*sqrt(pi)*erf((1 - 2*c*x)/(2*sqrt(c))))/(4*sqrt(c))) + (ℯ^(a - 1/(4*c))*sqrt(pi)*erfi((1 + 2*c*x)/(2*sqrt(c))))/(4*sqrt(c))]
    @test_int [ℯ^x*cosh(a + b*x + c*x^2), x, 6, -((ℯ^(-a + (1 - b)^2/(4*c))*sqrt(pi)*erf((1 - b - 2*c*x)/(2*sqrt(c))))/(4*sqrt(c))) + (ℯ^(a - (1 + b)^2/(4*c))*sqrt(pi)*erfi((1 + b + 2*c*x)/(2*sqrt(c))))/(4*sqrt(c))]

    @test_int [ℯ^(x^2)*cosh(a + b*x), x, 6, (1/4)*ℯ^(-a - b^2/4)*sqrt(pi)*erfi((1/2)*(-b + 2*x)) + (1/4)*ℯ^(a - b^2/4)*sqrt(pi)*erfi((1/2)*(b + 2*x))]
    @test_int [ℯ^(x^2)*cosh(a + c*x^2), x, 4, (sqrt(pi)*erfi(sqrt(1 - c)*x))/(ℯ^a*(4*sqrt(1 - c))) + (ℯ^a*sqrt(pi)*erfi(sqrt(1 + c)*x))/(4*sqrt(1 + c))]
    @test_int [ℯ^(x^2)*cosh(a + b*x + c*x^2), x, 6, -((ℯ^(-a - b^2/(4*(1 - c)))*sqrt(pi)*erfi((b - 2*(1 - c)*x)/(2*sqrt(1 - c))))/(4*sqrt(1 - c))) + (ℯ^(a - b^2/(4*(1 + c)))*sqrt(pi)*erfi((b + 2*(1 + c)*x)/(2*sqrt(1 + c))))/(4*sqrt(1 + c))]

    @test_int [f^(a + b*x)*cosh(d + f*x^2), x, 8, (ℯ^(-d + (b^2*log(f)^2)/(4*f))*f^(-1/2 + a)*sqrt(pi)*erf((2*f*x - b*log(f))/(2*sqrt(f))))/4 + (ℯ^(d - (b^2*log(f)^2)/(4*f))*f^(-1/2 + a)*sqrt(pi)*erfi((2*f*x + b*log(f))/(2*sqrt(f))))/4]
    @test_int [f^(a + b*x)*cosh(d + f*x^2)^2, x, 9, (ℯ^(-2*d + (b^2*log(f)^2)/(8*f))*f^(-1/2 + a)*sqrt(pi/2)*erf((4*f*x - b*log(f))/(2*sqrt(2)*sqrt(f))))/8 + (ℯ^(2*d - (b^2*log(f)^2)/(8*f))*f^(-1/2 + a)*sqrt(pi/2)*erfi((4*f*x + b*log(f))/(2*sqrt(2)*sqrt(f))))/8 + f^(a + b*x)/(2*b*log(f))]
    @test_int [f^(a + b*x)*cosh(d + f*x^2)^3, x, 14, (3*ℯ^(-d + (b^2*log(f)^2)/(4*f))*f^(-1/2 + a)*sqrt(pi)*erf((2*f*x - b*log(f))/(2*sqrt(f))))/16 + (ℯ^(-3*d + (b^2*log(f)^2)/(12*f))*f^(-1/2 + a)*sqrt(pi/3)*erf((6*f*x - b*log(f))/(2*sqrt(3)*sqrt(f))))/16 + (3*ℯ^(d - (b^2*log(f)^2)/(4*f))*f^(-1/2 + a)*sqrt(pi)*erfi((2*f*x + b*log(f))/(2*sqrt(f))))/16 + (ℯ^(3*d - (b^2*log(f)^2)/(12*f))*f^(-1/2 + a)*sqrt(pi/3)*erfi((6*f*x + b*log(f))/(2*sqrt(3)*sqrt(f))))/16]

    @test_int [f^(a + b*x)*cosh(d + e*x + f*x^2), x, 8, (ℯ^(-d + (e - b*log(f))^2/(4*f))*f^(-1/2 + a)*sqrt(pi)*erf((e + 2*f*x - b*log(f))/(2*sqrt(f))))/4 + (ℯ^(d - (e + b*log(f))^2/(4*f))*f^(-1/2 + a)*sqrt(pi)*erfi((e + 2*f*x + b*log(f))/(2*sqrt(f))))/4]
    @test_int [f^(a + b*x)*cosh(d + e*x + f*x^2)^2, x, 9, (ℯ^(-2*d + (2*e - b*log(f))^2/(8*f))*f^(-1/2 + a)*sqrt(pi/2)*erf((2*e + 4*f*x - b*log(f))/(2*sqrt(2)*sqrt(f))))/8 + (ℯ^(2*d - (2*e + b*log(f))^2/(8*f))*f^(-1/2 + a)*sqrt(pi/2)*erfi((2*e + 4*f*x + b*log(f))/(2*sqrt(2)*sqrt(f))))/8 + f^(a + b*x)/(2*b*log(f))]
    @test_int [f^(a + b*x)*cosh(d + e*x + f*x^2)^3, x, 14, (3*ℯ^(-d + (e - b*log(f))^2/(4*f))*f^(-1/2 + a)*sqrt(pi)*erf((e + 2*f*x - b*log(f))/(2*sqrt(f))))/16 + (ℯ^(-3*d + (3*e - b*log(f))^2/(12*f))*f^(-1/2 + a)*sqrt(pi/3)*erf((3*e + 6*f*x - b*log(f))/(2*sqrt(3)*sqrt(f))))/16 + (3*ℯ^(d - (e + b*log(f))^2/(4*f))*f^(-1/2 + a)*sqrt(pi)*erfi((e + 2*f*x + b*log(f))/(2*sqrt(f))))/16 + (ℯ^(3*d - (3*e + b*log(f))^2/(12*f))*f^(-1/2 + a)*sqrt(pi/3)*erfi((3*e + 6*f*x + b*log(f))/(2*sqrt(3)*sqrt(f))))/16]

    @test_int [f^(a + c*x^2)*cosh(d + e*x), x, 8, If(13>=8, -(ℯ^(-d - e^2/(4*c*log(f)))*f^a*sqrt(pi)*erfi((e - 2*c*x*log(f))/(2*sqrt(c)*sqrt(log(f)))))/(4*sqrt(c)*sqrt(log(f))) + (ℯ^(d - e^2/(4*c*log(f)))*f^a*sqrt(pi)*erfi((e + 2*c*x*log(f))/(2*sqrt(c)*sqrt(log(f)))))/(4*sqrt(c)*sqrt(log(f))), (ℯ^(-d - e^2/(4*c*log(f)))*f^a*sqrt(pi)*erfi(-((e - 2*c*x*log(f))/(2*sqrt(c)*sqrt(log(f))))))/(4*sqrt(c)*sqrt(log(f))) + (ℯ^(d - e^2/(4*c*log(f)))*f^a*sqrt(pi)*erfi((e + 2*c*x*log(f))/(2*sqrt(c)*sqrt(log(f)))))/(4*sqrt(c)*sqrt(log(f))))]
    @test_int [f^(a + c*x^2)*cosh(d + e*x)^2, x, 9, If(13>=8, (f^a*sqrt(pi)*erfi(sqrt(c)*x*sqrt(log(f))))/(4*sqrt(c)*sqrt(log(f))) - (ℯ^(-2*d - e^2/(c*log(f)))*f^a*sqrt(pi)*erfi((e - c*x*log(f))/(sqrt(c)*sqrt(log(f)))))/(8*sqrt(c)*sqrt(log(f))) + (ℯ^(2*d - e^2/(c*log(f)))*f^a*sqrt(pi)*erfi((e + c*x*log(f))/(sqrt(c)*sqrt(log(f)))))/(8*sqrt(c)*sqrt(log(f))), (f^a*sqrt(pi)*erfi(sqrt(c)*x*sqrt(log(f))))/(4*sqrt(c)*sqrt(log(f))) + (ℯ^(-2*d - e^2/(c*log(f)))*f^a*sqrt(pi)*erfi(-((e - c*x*log(f))/(sqrt(c)*sqrt(log(f))))))/(8*sqrt(c)*sqrt(log(f))) + (ℯ^(2*d - e^2/(c*log(f)))*f^a*sqrt(pi)*erfi((e + c*x*log(f))/(sqrt(c)*sqrt(log(f)))))/(8*sqrt(c)*sqrt(log(f))))]
    @test_int [f^(a + c*x^2)*cosh(d + e*x)^3, x, 14, If(13>=8, (-3*ℯ^(-d - e^2/(4*c*log(f)))*f^a*sqrt(pi)*erfi((e - 2*c*x*log(f))/(2*sqrt(c)*sqrt(log(f)))))/(16*sqrt(c)*sqrt(log(f))) - (ℯ^(-3*d - (9*e^2)/(4*c*log(f)))*f^a*sqrt(pi)*erfi((3*e - 2*c*x*log(f))/(2*sqrt(c)*sqrt(log(f)))))/(16*sqrt(c)*sqrt(log(f))) + (3*ℯ^(d - e^2/(4*c*log(f)))*f^a*sqrt(pi)*erfi((e + 2*c*x*log(f))/(2*sqrt(c)*sqrt(log(f)))))/(16*sqrt(c)*sqrt(log(f))) + (ℯ^(3*d - (9*e^2)/(4*c*log(f)))*f^a*sqrt(pi)*erfi((3*e + 2*c*x*log(f))/(2*sqrt(c)*sqrt(log(f)))))/(16*sqrt(c)*sqrt(log(f))), (3*ℯ^(-d - e^2/(4*c*log(f)))*f^a*sqrt(pi)*erfi(-((e - 2*c*x*log(f))/(2*sqrt(c)*sqrt(log(f))))))/(16*sqrt(c)*sqrt(log(f))) + (ℯ^(-3*d - (9*e^2)/(4*c*log(f)))*f^a*sqrt(pi)*erfi(-((3*e - 2*c*x*log(f))/(2*sqrt(c)*sqrt(log(f))))))/(16*sqrt(c)*sqrt(log(f))) + (3*ℯ^(d - e^2/(4*c*log(f)))*f^a*sqrt(pi)*erfi((e + 2*c*x*log(f))/(2*sqrt(c)*sqrt(log(f)))))/(16*sqrt(c)*sqrt(log(f))) + (ℯ^(3*d - (9*e^2)/(4*c*log(f)))*f^a*sqrt(pi)*erfi((3*e + 2*c*x*log(f))/(2*sqrt(c)*sqrt(log(f)))))/(16*sqrt(c)*sqrt(log(f))))]

    @test_int [f^(a + c*x^2)*cosh(d + f*x^2), x, 6, (f^a*sqrt(pi)*erf(x*sqrt(f - c*log(f))))/(4*ℯ^d*sqrt(f - c*log(f))) + (ℯ^d*f^a*sqrt(pi)*erfi(x*sqrt(f + c*log(f))))/(4*sqrt(f + c*log(f)))]
    @test_int [f^(a + c*x^2)*cosh(d + f*x^2)^2, x, 7, (f^a*sqrt(pi)*erfi(sqrt(c)*x*sqrt(log(f))))/(4*sqrt(c)*sqrt(log(f))) + (f^a*sqrt(pi)*erf(x*sqrt(2*f - c*log(f))))/(8*ℯ^(2*d)*sqrt(2*f - c*log(f))) + (ℯ^(2*d)*f^a*sqrt(pi)*erfi(x*sqrt(2*f + c*log(f))))/(8*sqrt(2*f + c*log(f)))]
    @test_int [f^(a + c*x^2)*cosh(d + f*x^2)^3, x, 10, (3*f^a*sqrt(pi)*erf(x*sqrt(f - c*log(f))))/(16*ℯ^d*sqrt(f - c*log(f))) + (f^a*sqrt(pi)*erf(x*sqrt(3*f - c*log(f))))/(16*ℯ^(3*d)*sqrt(3*f - c*log(f))) + (3*ℯ^d*f^a*sqrt(pi)*erfi(x*sqrt(f + c*log(f))))/(16*sqrt(f + c*log(f))) + (ℯ^(3*d)*f^a*sqrt(pi)*erfi(x*sqrt(3*f + c*log(f))))/(16*sqrt(3*f + c*log(f)))]

    @test_int [f^(a + c*x^2)*cosh(d + e*x + f*x^2), x, 8, (ℯ^(-d + e^2/(4*f - 4*c*log(f)))*f^a*sqrt(pi)*erf((e + 2*x*(f - c*log(f)))/(2*sqrt(f - c*log(f)))))/(4*sqrt(f - c*log(f))) + (ℯ^(d - e^2/(4*(f + c*log(f))))*f^a*sqrt(pi)*erfi((e + 2*x*(f + c*log(f)))/(2*sqrt(f + c*log(f)))))/(4*sqrt(f + c*log(f)))]
    @test_int [f^(a + c*x^2)*cosh(d + e*x + f*x^2)^2, x, 9, (f^a*sqrt(pi)*erfi(sqrt(c)*x*sqrt(log(f))))/(4*sqrt(c)*sqrt(log(f))) + (ℯ^(-2*d + e^2/(2*f - c*log(f)))*f^a*sqrt(pi)*erf((e + x*(2*f - c*log(f)))/sqrt(2*f - c*log(f))))/(8*sqrt(2*f - c*log(f))) + (ℯ^(2*d - e^2/(2*f + c*log(f)))*f^a*sqrt(pi)*erfi((e + x*(2*f + c*log(f)))/sqrt(2*f + c*log(f))))/(8*sqrt(2*f + c*log(f)))]
    @test_int [f^(a + c*x^2)*cosh(d + e*x + f*x^2)^3, x, 14, (3*ℯ^(-d + e^2/(4*f - 4*c*log(f)))*f^a*sqrt(pi)*erf((e + 2*x*(f - c*log(f)))/(2*sqrt(f - c*log(f)))))/(16*sqrt(f - c*log(f))) + (ℯ^(-3*d + (9*e^2)/(12*f - 4*c*log(f)))*f^a*sqrt(pi)*erf((3*e + 2*x*(3*f - c*log(f)))/(2*sqrt(3*f - c*log(f)))))/(16*sqrt(3*f - c*log(f))) + (3*ℯ^(d - e^2/(4*(f + c*log(f))))*f^a*sqrt(pi)*erfi((e + 2*x*(f + c*log(f)))/(2*sqrt(f + c*log(f)))))/(16*sqrt(f + c*log(f))) + (ℯ^(3*d - (9*e^2)/(4*(3*f + c*log(f))))*f^a*sqrt(pi)*erfi((3*e + 2*x*(3*f + c*log(f)))/(2*sqrt(3*f + c*log(f)))))/(16*sqrt(3*f + c*log(f)))]

    @test_int [f^(a + b*x + c*x^2)*cosh(d + e*x), x, 8, If(13>=8, -(ℯ^(-d - (e - b*log(f))^2/(4*c*log(f)))*f^a*sqrt(pi)*erfi((e - b*log(f) - 2*c*x*log(f))/(2*sqrt(c)*sqrt(log(f)))))/(4*sqrt(c)*sqrt(log(f))) + (ℯ^(d - (e + b*log(f))^2/(4*c*log(f)))*f^a*sqrt(pi)*erfi((e + b*log(f) + 2*c*x*log(f))/(2*sqrt(c)*sqrt(log(f)))))/(4*sqrt(c)*sqrt(log(f))), (ℯ^(-d - (e - b*log(f))^2/(4*c*log(f)))*f^a*sqrt(pi)*erfi(-((e - b*log(f) - 2*c*x*log(f))/(2*sqrt(c)*sqrt(log(f))))))/(4*sqrt(c)*sqrt(log(f))) + (ℯ^(d - (e + b*log(f))^2/(4*c*log(f)))*f^a*sqrt(pi)*erfi((e + b*log(f) + 2*c*x*log(f))/(2*sqrt(c)*sqrt(log(f)))))/(4*sqrt(c)*sqrt(log(f))))]
    @test_int [f^(a + b*x + c*x^2)*cosh(d + e*x)^2, x, 10, If(13>=8, (f^(a - b^2/(4*c))*sqrt(pi)*erfi(((b + 2*c*x)*sqrt(log(f)))/(2*sqrt(c))))/(4*sqrt(c)*sqrt(log(f))) - (ℯ^(-2*d - (2*e - b*log(f))^2/(4*c*log(f)))*f^a*sqrt(pi)*erfi((2*e - b*log(f) - 2*c*x*log(f))/(2*sqrt(c)*sqrt(log(f)))))/(8*sqrt(c)*sqrt(log(f))) + (ℯ^(2*d - (2*e + b*log(f))^2/(4*c*log(f)))*f^a*sqrt(pi)*erfi((2*e + b*log(f) + 2*c*x*log(f))/(2*sqrt(c)*sqrt(log(f)))))/(8*sqrt(c)*sqrt(log(f))), (f^(a - b^2/(4*c))*sqrt(pi)*erfi(((b + 2*c*x)*sqrt(log(f)))/(2*sqrt(c))))/(4*sqrt(c)*sqrt(log(f))) + (ℯ^(-2*d - (2*e - b*log(f))^2/(4*c*log(f)))*f^a*sqrt(pi)*erfi(-((2*e - b*log(f) - 2*c*x*log(f))/(2*sqrt(c)*sqrt(log(f))))))/(8*sqrt(c)*sqrt(log(f))) + (ℯ^(2*d - (2*e + b*log(f))^2/(4*c*log(f)))*f^a*sqrt(pi)*erfi((2*e + b*log(f) + 2*c*x*log(f))/(2*sqrt(c)*sqrt(log(f)))))/(8*sqrt(c)*sqrt(log(f))))]
    @test_int [f^(a + b*x + c*x^2)*cosh(d + e*x)^3, x, 14, If(13>=8, (-3*ℯ^(-d - (e - b*log(f))^2/(4*c*log(f)))*f^a*sqrt(pi)*erfi((e - b*log(f) - 2*c*x*log(f))/(2*sqrt(c)*sqrt(log(f)))))/(16*sqrt(c)*sqrt(log(f))) - (ℯ^(-3*d - (3*e - b*log(f))^2/(4*c*log(f)))*f^a*sqrt(pi)*erfi((3*e - b*log(f) - 2*c*x*log(f))/(2*sqrt(c)*sqrt(log(f)))))/(16*sqrt(c)*sqrt(log(f))) + (3*ℯ^(d - (e + b*log(f))^2/(4*c*log(f)))*f^a*sqrt(pi)*erfi((e + b*log(f) + 2*c*x*log(f))/(2*sqrt(c)*sqrt(log(f)))))/(16*sqrt(c)*sqrt(log(f))) + (ℯ^(3*d - (3*e + b*log(f))^2/(4*c*log(f)))*f^a*sqrt(pi)*erfi((3*e + b*log(f) + 2*c*x*log(f))/(2*sqrt(c)*sqrt(log(f)))))/(16*sqrt(c)*sqrt(log(f))), (3*ℯ^(-d - (e - b*log(f))^2/(4*c*log(f)))*f^a*sqrt(pi)*erfi(-((e - b*log(f) - 2*c*x*log(f))/(2*sqrt(c)*sqrt(log(f))))))/(16*sqrt(c)*sqrt(log(f))) + (ℯ^(-3*d - (3*e - b*log(f))^2/(4*c*log(f)))*f^a*sqrt(pi)*erfi(-((3*e - b*log(f) - 2*c*x*log(f))/(2*sqrt(c)*sqrt(log(f))))))/(16*sqrt(c)*sqrt(log(f))) + (3*ℯ^(d - (e + b*log(f))^2/(4*c*log(f)))*f^a*sqrt(pi)*erfi((e + b*log(f) + 2*c*x*log(f))/(2*sqrt(c)*sqrt(log(f)))))/(16*sqrt(c)*sqrt(log(f))) + (ℯ^(3*d - (3*e + b*log(f))^2/(4*c*log(f)))*f^a*sqrt(pi)*erfi((3*e + b*log(f) + 2*c*x*log(f))/(2*sqrt(c)*sqrt(log(f)))))/(16*sqrt(c)*sqrt(log(f))))]

    @test_int [f^(a + b*x + c*x^2)*cosh(d + f*x^2), x, 8, -(ℯ^(-d + (b^2*log(f)^2)/(4*f - 4*c*log(f)))*f^a*sqrt(pi)*erf((b*log(f) - 2*x*(f - c*log(f)))/(2*sqrt(f - c*log(f)))))/(4*sqrt(f - c*log(f))) + (ℯ^(d - (b^2*log(f)^2)/(4*(f + c*log(f))))*f^a*sqrt(pi)*erfi((b*log(f) + 2*x*(f + c*log(f)))/(2*sqrt(f + c*log(f)))))/(4*sqrt(f + c*log(f)))]
    @test_int [f^(a + b*x + c*x^2)*cosh(d + f*x^2)^2, x, 10, (f^(a - b^2/(4*c))*sqrt(pi)*erfi(((b + 2*c*x)*sqrt(log(f)))/(2*sqrt(c))))/(4*sqrt(c)*sqrt(log(f))) - (ℯ^(-2*d + (b^2*log(f)^2)/(8*f - 4*c*log(f)))*f^a*sqrt(pi)*erf((b*log(f) - 2*x*(2*f - c*log(f)))/(2*sqrt(2*f - c*log(f)))))/(8*sqrt(2*f - c*log(f))) + (ℯ^(2*d - (b^2*log(f)^2)/(8*f + 4*c*log(f)))*f^a*sqrt(pi)*erfi((b*log(f) + 2*x*(2*f + c*log(f)))/(2*sqrt(2*f + c*log(f)))))/(8*sqrt(2*f + c*log(f)))]
    @test_int [f^(a + b*x + c*x^2)*cosh(d + f*x^2)^3, x, 14, (-3*ℯ^(-d + (b^2*log(f)^2)/(4*f - 4*c*log(f)))*f^a*sqrt(pi)*erf((b*log(f) - 2*x*(f - c*log(f)))/(2*sqrt(f - c*log(f)))))/(16*sqrt(f - c*log(f))) - (ℯ^(-3*d + (b^2*log(f)^2)/(12*f - 4*c*log(f)))*f^a*sqrt(pi)*erf((b*log(f) - 2*x*(3*f - c*log(f)))/(2*sqrt(3*f - c*log(f)))))/(16*sqrt(3*f - c*log(f))) + (3*ℯ^(d - (b^2*log(f)^2)/(4*(f + c*log(f))))*f^a*sqrt(pi)*erfi((b*log(f) + 2*x*(f + c*log(f)))/(2*sqrt(f + c*log(f)))))/(16*sqrt(f + c*log(f))) + (ℯ^(3*d - (b^2*log(f)^2)/(4*(3*f + c*log(f))))*f^a*sqrt(pi)*erfi((b*log(f) + 2*x*(3*f + c*log(f)))/(2*sqrt(3*f + c*log(f)))))/(16*sqrt(3*f + c*log(f)))]

    @test_int [f^(a + b*x + c*x^2)*cosh(d + e*x + f*x^2), x, 8, (ℯ^(-d + (e - b*log(f))^2/(4*(f - c*log(f))))*f^a*sqrt(pi)*erf((e - b*log(f) + 2*x*(f - c*log(f)))/(2*sqrt(f - c*log(f)))))/(4*sqrt(f - c*log(f))) + (ℯ^(d - (e + b*log(f))^2/(4*(f + c*log(f))))*f^a*sqrt(pi)*erfi((e + b*log(f) + 2*x*(f + c*log(f)))/(2*sqrt(f + c*log(f)))))/(4*sqrt(f + c*log(f)))]
    @test_int [f^(a + b*x + c*x^2)*cosh(d + e*x + f*x^2)^2, x, 10, (f^(a - b^2/(4*c))*sqrt(pi)*erfi(((b + 2*c*x)*sqrt(log(f)))/(2*sqrt(c))))/(4*sqrt(c)*sqrt(log(f))) + (ℯ^(-2*d + (2*e - b*log(f))^2/(8*f - 4*c*log(f)))*f^a*sqrt(pi)*erf((2*e - b*log(f) + 2*x*(2*f - c*log(f)))/(2*sqrt(2*f - c*log(f)))))/(8*sqrt(2*f - c*log(f))) + (ℯ^(2*d - (2*e + b*log(f))^2/(8*f + 4*c*log(f)))*f^a*sqrt(pi)*erfi((2*e + b*log(f) + 2*x*(2*f + c*log(f)))/(2*sqrt(2*f + c*log(f)))))/(8*sqrt(2*f + c*log(f)))]
    @test_int [f^(a + b*x + c*x^2)*cosh(d + e*x + f*x^2)^3, x, 14, (3*ℯ^(-d + (e - b*log(f))^2/(4*(f - c*log(f))))*f^a*sqrt(pi)*erf((e - b*log(f) + 2*x*(f - c*log(f)))/(2*sqrt(f - c*log(f)))))/(16*sqrt(f - c*log(f))) + (ℯ^(-3*d + (3*e - b*log(f))^2/(12*f - 4*c*log(f)))*f^a*sqrt(pi)*erf((3*e - b*log(f) + 2*x*(3*f - c*log(f)))/(2*sqrt(3*f - c*log(f)))))/(16*sqrt(3*f - c*log(f))) + (3*ℯ^(d - (e + b*log(f))^2/(4*(f + c*log(f))))*f^a*sqrt(pi)*erfi((e + b*log(f) + 2*x*(f + c*log(f)))/(2*sqrt(f + c*log(f)))))/(16*sqrt(f + c*log(f))) + (ℯ^(3*d - (3*e + b*log(f))^2/(4*(3*f + c*log(f))))*f^a*sqrt(pi)*erfi((3*e + b*log(f) + 2*x*(3*f + c*log(f)))/(2*sqrt(3*f + c*log(f)))))/(16*sqrt(3*f + c*log(f)))]

    #= ::Section::Closed:: =#
    #=Miscellaneous*integrands*involving*hyperbolic*cosines=#

    @test_int [x/cosh(x)^(3/2) + x*sqrt(cosh(x)), x, 2, -4*sqrt(cosh(x)) + (2*x*sinh(x))/sqrt(cosh(x))]
    @test_int [x/cosh(x)^(5/2) - x/(3*sqrt(cosh(x))), x, 2, 4/(3*sqrt(cosh(x))) + (2*x*sinh(x))/(3*cosh(x)^(3/2))]
    @test_int [x/cosh(x)^(7/2) + (3/5)*x*sqrt(cosh(x)), x, 3, 4/(15*cosh(x)^(3/2)) - (12*sqrt(cosh(x)))/5 + (2*x*sinh(x))/(5*cosh(x)^(5/2)) + (6*x*sinh(x))/(5*sqrt(cosh(x)))]
    @test_int [x^2/cosh(x)^(3/2) + x^2*sqrt(cosh(x)), x, 3, -8*x*sqrt(cosh(x)) - 16*im*Elliptic.E((im*x)/2, 2) + (2*x^2*sinh(x))/sqrt(cosh(x))]

    @test_int [(x + cosh(x))^2, x, 6, x/2 + x^3/3 - 2*cosh(x) + 2*x*sinh(x) + (1/2)*cosh(x)*sinh(x)]
    @test_int [(x + cosh(x))^3, x, 9, (3*x^2)/4 + x^4/4 - 6*x*cosh(x) - (3*cosh(x)^2)/4 + 7*sinh(x) + 3*x^2*sinh(x) + (3/2)*x*cosh(x)*sinh(x) + sinh(x)^3/3]

    @test_int [cosh(a + b*x)/(c + d*x^2), x, 8, (cosh(a + (b*sqrt(-c))/sqrt(d))*CoshIntegral((b*sqrt(-c))/sqrt(d) - b*x))/(2*sqrt(-c)*sqrt(d)) - (cosh(a - (b*sqrt(-c))/sqrt(d))*CoshIntegral((b*sqrt(-c))/sqrt(d) + b*x))/(2*sqrt(-c)*sqrt(d)) - (sinh(a + (b*sqrt(-c))/sqrt(d))*SinhIntegral((b*sqrt(-c))/sqrt(d) - b*x))/(2*sqrt(-c)*sqrt(d)) - (sinh(a - (b*sqrt(-c))/sqrt(d))*SinhIntegral((b*sqrt(-c))/sqrt(d) + b*x))/(2*sqrt(-c)*sqrt(d))]
    @test_int [cosh(a + b*x)/(c + d*x + e*x^2), x, 8, (cosh(a - (b*(d - sqrt(d^2 - 4*c*e)))/(2*e))*CoshIntegral((b*(d - sqrt(d^2 - 4*c*e)))/(2*e) + b*x))/sqrt(d^2 - 4*c*e) - (cosh(a - (b*(d + sqrt(d^2 - 4*c*e)))/(2*e))*CoshIntegral((b*(d + sqrt(d^2 - 4*c*e)))/(2*e) + b*x))/sqrt(d^2 - 4*c*e) + (sinh(a - (b*(d - sqrt(d^2 - 4*c*e)))/(2*e))*SinhIntegral((b*(d - sqrt(d^2 - 4*c*e)))/(2*e) + b*x))/sqrt(d^2 - 4*c*e) - (sinh(a - (b*(d + sqrt(d^2 - 4*c*e)))/(2*e))*SinhIntegral((b*(d + sqrt(d^2 - 4*c*e)))/(2*e) + b*x))/sqrt(d^2 - 4*c*e)]
    end

max_stars_repo_path: test/6 Hyperbolic functions/6.2 Hyperbolic cosine/6.2.5 Hyperbolic cosine functions.jl


text:
@inline vstore!(ptr::AbstractStridedPointer{T}, v::Number) where {T<:Number} = __vstore!(pointer(ptr), convert(T,v), False(), False(), False(), register_size())

using LayoutPointers: nopromote_axis_indicator

@inline _vload(ptr::AbstractStridedPointer{T,0}, i::Tuple{}, ::A, ::StaticInt{RS}) where {T,A<:StaticBool,RS} = __vload(pointer(ptr), A(), StaticInt{RS}())
@inline gep(ptr::AbstractStridedPointer{T,0}, i::Tuple{}) where {T} = pointer(ptr)

# terminating
@inline _offset_index(i::Tuple{}, offset::Tuple{}) = ()
@inline _offset_index(i::Tuple{I1}, offset::Tuple{I2,I3,Vararg}) where {I1,I2,I3} = (vsub_nsw(only(i), first(offset)),)
@inline _offset_index(i::Tuple{I1,I2,Vararg}, offset::Tuple{I3}) where {I1,I2,I3} = (vsub_nsw(first(i), first(offset)),)
@inline _offset_index(i::Tuple{I1}, offset::Tuple{I2}) where {I1,I2}           = (vsub_nsw(only(i), only(offset)),)
# iterating
@inline _offset_index(i::Tuple{I1,I2,Vararg}, offset::Tuple{I3,I4,Vararg}) where {I1,I2,I3,I4} = (vsub_nsw(first(i), first(offset)), _offset_index(Base.tail(i),Base.tail(offset))...)

@inline offset_index(ptr, i) = _offset_index(i, offsets(ptr))
@inline linear_index(ptr, i) = tdot(ptr, offset_index(ptr, i), strides(ptr))

# Fast compile path?
@inline function _vload(ptr::AbstractStridedPointer, i::Tuple, ::A, ::StaticInt{RS}) where {A<:StaticBool,RS}
    p, li = linear_index(ptr, i)
    __vload(p, li, A(), StaticInt{RS}())
end
@inline function _vload(
  ptr::AbstractStridedPointer, i::Tuple, m::Union{AbstractMask,Bool}, ::A, ::StaticInt{RS}
) where {A<:StaticBool,RS}
  p, li = linear_index(ptr, i)
  __vload(p, li, m, A(), StaticInt{RS}())
end
@inline function _vload(
  ptr::AbstractStridedPointer{T}, i::Tuple{I}, ::A, ::StaticInt{RS}
) where {T,I,A<:StaticBool,RS}
  p, li = tdot(ptr, i, strides(ptr))
  __vload(p, li, A(), StaticInt{RS}())
end
@inline function _vload(
  ptr::AbstractStridedPointer{T}, i::Tuple{I}, m::Union{AbstractMask,Bool}, ::A, ::StaticInt{RS}
) where {T,I,A<:StaticBool,RS}
  p, li = tdot(ptr, i, strides(ptr))
  __vload(p, li, m, A(), StaticInt{RS}())
end
# Ambiguity: 1-dimensional + 1-dim index -> Cartesian (offset) indexing
@inline function _vload(
  ptr::AbstractStridedPointer{T,1}, i::Tuple{I}, ::A, ::StaticInt{RS}
) where {T,I,A<:StaticBool,RS}
  p, li = linear_index(ptr, i)
  __vload(p, li, A(), StaticInt{RS}())
end
@inline function _vload(
  ptr::AbstractStridedPointer{T,1}, i::Tuple{I}, m::Union{AbstractMask,Bool}, ::A, ::StaticInt{RS}
) where {T,I,A<:StaticBool,RS}
  p, li = linear_index(ptr, i)
  __vload(p, li, m, A(), StaticInt{RS}())
end

# align, noalias, nontemporal
@inline function _vstore!(
  ptr::AbstractStridedPointer, v, i::Tuple, ::A, ::S, ::NT, ::StaticInt{RS}
) where {A<:StaticBool,S<:StaticBool,NT<:StaticBool,RS}
  p, li = linear_index(ptr, i)
  __vstore!(p, v, li, A(), S(), NT(), StaticInt{RS}())
end
@inline function _vstore!(
  ptr::AbstractStridedPointer, v, i::Tuple, m::Union{AbstractMask,Bool}, ::A, ::S, ::NT, ::StaticInt{RS}
) where {A<:StaticBool,S<:StaticBool,NT<:StaticBool,RS}
  p, li = linear_index(ptr, i)

  __vstore!(p, v, li, m, A(), S(), NT(), StaticInt{RS}())
end
@inline function _vstore!(
  ptr::AbstractStridedPointer{T}, v, i::Tuple{I}, ::A, ::S, ::NT, ::StaticInt{RS}
) where {T,I,A<:StaticBool,S<:StaticBool,NT<:StaticBool,RS}
  p, li = tdot(ptr, i, strides(ptr))
  __vstore!(p, v, li, A(), S(), NT(), StaticInt{RS}())
end
@inline function _vstore!(
  ptr::AbstractStridedPointer{T}, v, i::Tuple{I}, m::Union{AbstractMask,Bool}, ::A, ::S, ::NT, ::StaticInt{RS}
) where {T,I,A<:StaticBool,S<:StaticBool,NT<:StaticBool,RS}
  p, li = tdot(ptr, i, strides(ptr))
  __vstore!(p, v, li, m, A(), S(), NT(), StaticInt{RS}())
end
@inline function _vstore!(
  ptr::AbstractStridedPointer{T,1}, v, i::Tuple{I}, ::A, ::S, ::NT, ::StaticInt{RS}
) where {T,I,A<:StaticBool,S<:StaticBool,NT<:StaticBool,RS}
  p, li = linear_index(ptr, i)
  __vstore!(p, v, li, A(), S(), NT(), StaticInt{RS}())
end
@inline function _vstore!(
  ptr::AbstractStridedPointer{T,1}, v, i::Tuple{I}, m::Union{AbstractMask,Bool}, ::A, ::S, ::NT, ::StaticInt{RS}
) where {T,I,A<:StaticBool,S<:StaticBool,NT<:StaticBool,RS}
  p, li = linear_index(ptr, i)
  __vstore!(p, v, li, m, A(), S(), NT(), StaticInt{RS}())
end

@inline function _vstore!(
  f::F, ptr::AbstractStridedPointer, v, i::Tuple, ::A, ::S, ::NT, ::StaticInt{RS}
) where {F,A<:StaticBool,S<:StaticBool,NT<:StaticBool,RS}
  p, li = linear_index(ptr, i)
  __vstore!(f, p, v, li, A(), S(), NT(), StaticInt{RS}())
end
@inline function _vstore!(
  f::F, ptr::AbstractStridedPointer, v, i::Tuple, m::Union{AbstractMask,Bool}, ::A, ::S, ::NT, ::StaticInt{RS}
) where {F,A<:StaticBool,S<:StaticBool,NT<:StaticBool,RS}
  p, li = linear_index(ptr, i)
  __vstore!(f, p, v, li, m, A(), S(), NT(), StaticInt{RS}())
end
@inline function _vstore!(
  f::F, ptr::AbstractStridedPointer{T}, v, i::Tuple{I}, ::A, ::S, ::NT, ::StaticInt{RS}
) where {F, T,I,A<:StaticBool,S<:StaticBool,NT<:StaticBool,RS}
  p, li = tdot(ptr, i, strides(ptr))
  __vstore!(f, p, v, li, A(), S(), NT(), StaticInt{RS}())
end
@inline function _vstore!(
  f::F, ptr::AbstractStridedPointer{T}, v, i::Tuple{I}, m::Union{AbstractMask,Bool}, ::A, ::S, ::NT, ::StaticInt{RS}
) where {F, T,I,A<:StaticBool,S<:StaticBool,NT<:StaticBool,RS}
  p, li = tdot(ptr, i, strides(ptr))
  __vstore!(f, p, v, li, m, A(), S(), NT(), StaticInt{RS}())
end
@inline function _vstore!(
  f::F, ptr::AbstractStridedPointer{T,1}, v, i::Tuple{I}, ::A, ::S, ::NT, ::StaticInt{RS}
) where {F, T,I,A<:StaticBool,S<:StaticBool,NT<:StaticBool,RS}
  p, li = linear_index(ptr, i)
  __vstore!(f, p, v, li, A(), S(), NT(), StaticInt{RS}())
end
@inline function _vstore!(
  f::F, ptr::AbstractStridedPointer{T,1}, v, i::Tuple{I}, m::Union{AbstractMask,Bool}, ::A, ::S, ::NT, ::StaticInt{RS}
) where {F, T,I,A<:StaticBool,S<:StaticBool,NT<:StaticBool,RS}
  p, li = linear_index(ptr, i)
  __vstore!(f, p, v, li, m, A(), S(), NT(), StaticInt{RS}())
end

@inline function gep(ptr::AbstractStridedPointer{T,N,C,B,R,X,NTuple{N,StaticInt{0}}}, i::Tuple{Vararg{Any,N}}) where {T,N,C,B,R,X}
  p, li = tdot(ptr, i, strides(ptr))
  gep(p, li)
end
@inline function gep(ptr::AbstractStridedPointer{T,N,C,B,R,X,O}, i::Tuple) where {T,N,C,B,R,X,O}
  p, li = linear_index(ptr, i)
  gep(p, li)
end
@inline function gep(ptr::AbstractStridedPointer{T}, i::Tuple{I}) where {T, I}
  p, li = tdot(ptr, i, strides(ptr))
  gep(p, li)
end
@inline function gep(ptr::AbstractStridedPointer{T,1,C,B,R,X,O}, i::Tuple{I}) where {T, I,C,B,R,X,O}
  p, li = linear_index(ptr, i)
  gep(p, li)
end
@inline function gep(ptr::AbstractStridedPointer{T,1,C,B,R,X,Tuple{StaticInt{0}}}, i::Tuple{I}) where {T, I,C,B,R,X}
  p, li = tdot(ptr, i, strides(ptr))
  gep(p, li)
end

# There is probably a smarter way to do indexing adjustment here.
# The reasoning for the current approach of geping for Zero() on extracted inds
# and for offsets otherwise is best demonstrated witht his motivational example:
#
# A = OffsetArray(rand(10,11), 6:15, 5:15);
# for i in 6:15
    # s += A[i,i]
# end
# first access is at zero-based index
# (first(6:16) - ArrayInterface.offsets(a)[1]) * ArrayInterface.strides(A)[1] + (first(6:16) - ArrayInterface.offsets(a)[2]) * ArrayInterface.strides(A)[2]
# equal to
#  (6 - 6)*1 + (6 - 5)*10 = 10
# i.e., the 1-based index 11.
# So now we want to adjust the offsets and pointer's value
# so that indexing it with a single `i` (after summing strides) is correct.
# Moving to 0-based indexing is easiest for combining strides. So we gep by 0 on these inds.
# E.g., gep(stridedpointer(A), (0,0))
# ptr += (0 - 6)*1 + (0 - 5)*10 = -56
# new stride = 1 + 10 = 11
# new_offset = 0
# now if we access the 6th element
# (6 - new_offse) * new_stride
# ptr += (6 - 0) * 11 = 66
# cumulative:
# ptr = pointer(A) + 66 - 56  = pointer(A) + 10
# so initial load is of pointer(A) + 10 -> the 11th element w/ 1-based indexing

function double_index_quote(C,B,R::NTuple{N,Int},I1::Int,I2::Int) where {N}
  # place into position of second arg
  J1 = I1 + 1; J2 = I2 + 1;
  @assert (J1 != B) & (J2 != B)
  Cnew = ((C == J1) | (C == J2)) ? -1 : (C - (J1 < C))
  strd = Expr(:tuple); offs = Expr(:tuple);
  inds = Expr(:tuple); Rtup = Expr(:tuple)
  si = Expr(:curly, GlobalRef(ArrayInterface, :StrideIndex), N-1, Rtup, Cnew)
  for n in 1:N
    if n == J1
      push!(inds.args, :(Zero()))
    elseif n == J2
      arg1 = Expr(:call, getfield, :strd, J1, false)
      arg2 = Expr(:call, getfield, :strd, J2, false)
      push!(strd.args, Expr(:call, :+, arg1, arg2))
      push!(offs.args, :(Zero()))
      push!(inds.args, :(Zero()))
      push!(Rtup.args, max(R[J1], R[J2]))
    else
      push!(strd.args, Expr(:call, getfield, :strd, n, false))
      push!(offs.args, Expr(:call, getfield, :offs, n, false))
      push!(inds.args, Expr(:call, getfield, :offs, n, false))
      push!(Rtup.args, R[n])
    end
  end
  gepedptr = Expr(:call, :gep, :ptr, inds)
  newptr = Expr(:call, :stridedpointer, gepedptr, Expr(:call, si, strd, offs), :(StaticInt{$B}()))
  Expr(:block, Expr(:meta,:inline), :(strd = strides(ptr)), :(offs = offsets(ptr)), newptr)
end
@generated function double_index(ptr::AbstractStridedPointer{T,N,C,B,R}, ::Val{I1}, ::Val{I2}) where {T,N,C,B,R,I1,I2}
  double_index_quote(C, B, R, I1, I2)
end

using LayoutPointers: FastRange
# `FastRange{<:Integer}` can ignore the offset
@inline vload(r::FastRange{T,Zero}, i::Tuple{I}) where {T<:Integer,I} = convert(T, getfield(r, :o)) + convert(T, getfield(r, :s)) * first(i)

@inline function vload(r::FastRange{T}, i::Tuple{I}) where {T<:FloatingTypes,I}
  convert(T, getfield(r, :f)) + convert(T, getfield(r, :s)) * (only(i) + convert(T, getfield(r, :o)))
end
@inline function gesp(r::FastRange{T,Zero}, i::Tuple{I}) where {I,T<:Integer}
  s = getfield(r, :s)
  FastRange{T}(Zero(), s, only(i)*s + getfield(r, :o))
end
@inline function gesp(r::FastRange{T}, i::Tuple{I}) where {I,T<:FloatingTypes}
    FastRange{T}(getfield(r, :f), getfield(r, :s), only(i) + getfield(r, :o))
end
@inline gesp(r::FastRange{T,Zero}, i::Tuple{NullStep}) where {T<:Integer} = r
@inline gesp(r::FastRange{T}, i::Tuple{NullStep}) where {T<:FloatingTypes} = r
@inline increment_ptr(r::FastRange{T,Zero}, i::Tuple{I}) where {I,T<:Integer} = only(i)*s + getfield(r, :o)
@inline increment_ptr(r::FastRange{T}, i::Tuple{I}) where {I,T<:Integer} = only(i) + getfield(r, :o)
@inline increment_ptr(r::FastRange) = getfield(r,:o)
@inline increment_ptr(r::FastRange{T}, o, i::Tuple{I}) where {I,T} = vadd_nsw(only(i), o)
@inline increment_ptr(r::FastRange{T,Zero}, o, i::Tuple{I}) where {I,T} = vadd_nsw(vmul_nsw(only(i), getfield(r, :s)), o)

@inline reconstruct_ptr(r::FastRange{T}, o) where {T} = FastRange{T}(getfield(r,:f), getfield(r, :s), o)

@inline vload(r::FastRange, i, m::AbstractMask) = (v = vload(r, i); ifelse(m, v, zero(v)))
@inline vload(r::FastRange, i, m::Bool) = (v = vload(r, i); ifelse(m, v, zero(v)))
@inline _vload(r::FastRange, i, _, __) = vload(r, i)
@inline _vload(r::FastRange, i, m::AbstractMask, __, ___) = vload(r, i, m)
@inline _vload(r::FastRange, i, m::VecUnroll{<:Any,<:Any,<:Union{Bool,Bit}}, __, ___) = vload(r, i, m)
function _vload_fastrange_unroll(AU::Int, F::Int, N::Int, AV::Int, W::Int, M::UInt, X::Int, mask::Bool, vecunrollmask::Bool)
  t = Expr(:tuple)
  inds = unrolled_indicies(1, AU, F, N, AV, W, X)
  q = quote
    $(Expr(:meta, :inline))
    gptr = gesp(r, data(u))
  end
  vecunrollmask && push!(q.args, :(masktup = data(vm)))
  gf = GlobalRef(Core, :getfield)
  for n in 1:N
    l = Expr(:call, :vload, :gptr, inds[n])
    if vecunrollmask
      push!(l.args, :($gf(masktup, $n, false)))
    elseif mask & (M % Bool)
      push!(l.args, :m)
    end
    M >>= 1
    push!(t.args, l)
  end
  push!(q.args, :(VecUnroll($t)))
  q
end

"""
For structs wrapping arrays, using `GC.@preserve` can trigger heap allocations.
`preserve_buffer` attempts to extract the heap-allocated part. Isolating it by itself
will often allow the heap allocations to be elided. For example:

```julia
julia> using StaticArrays, BenchmarkTools

julia> # Needed until a release is made featuring https://github.com/JuliaArrays/StaticArrays.jl/commit/a0179213b741c0feebd2fc6a1101a7358a90caed
       Base.elsize(::Type{<:MArray{S,T}}) where {S,T} = sizeof(T)

julia> @noinline foo(A) = unsafe_load(A,1)
foo (generic function with 1 method)

julia> function alloc_test_1()
           A = view(MMatrix{8,8,Float64}(undef), 2:5, 3:7)
           A[begin] = 4
           GC.@preserve A foo(pointer(A))
       end
alloc_test_1 (generic function with 1 method)

julia> function alloc_test_2()
           A = view(MMatrix{8,8,Float64}(undef), 2:5, 3:7)
           A[begin] = 4
           pb = parent(A) # or `LoopVectorization.preserve_buffer(A)`; `perserve_buffer(::SubArray)` calls `parent`
           GC.@preserve pb foo(pointer(A))
       end
alloc_test_2 (generic function with 1 method)

julia> @benchmark alloc_test_1()
BenchmarkTools.Trial:
  memory estimate:  544 bytes
  allocs estimate:  1
  --------------
  minimum time:     17.227 ns (0.00% GC)
  median time:      21.352 ns (0.00% GC)
  mean time:        26.151 ns (13.33% GC)
  maximum time:     571.130 ns (78.53% GC)
  --------------
  samples:          10000
  evals/sample:     998

julia> @benchmark alloc_test_2()
BenchmarkTools.Trial:
  memory estimate:  0 bytes
  allocs estimate:  0
  --------------
  minimum time:     3.275 ns (0.00% GC)
  median time:      3.493 ns (0.00% GC)
  mean time:        3.491 ns (0.00% GC)
  maximum time:     4.998 ns (0.00% GC)
  --------------
  samples:          10000
  evals/sample:     1000
```
"""
@inline preserve_buffer(A::AbstractArray) = A
@inline preserve_buffer(A::Union{LinearAlgebra.Transpose,LinearAlgebra.Adjoint,Base.ReinterpretArray,Base.ReshapedArray,PermutedDimsArray,SubArray}) = preserve_buffer(parent(A))
@inline preserve_buffer(x) = x

function llvmptr_comp_quote(cmp, Tsym)
  pt = Expr(:curly, GlobalRef(Core, :LLVMPtr), Tsym, 0)
  instrs = "%cmpi1 = icmp $cmp i8* %0, %1\n%cmpi8 = zext i1 %cmpi1 to i8\nret i8 %cmpi8"
  Expr(:block, Expr(:meta,:inline), :($(Base.llvmcall)($instrs, Bool, Tuple{$pt,$pt}, p1, p2)))
end
@inline llvmptrd(p::Ptr) = reinterpret(Core.LLVMPtr{Float64,0}, p)
@inline llvmptrd(p::AbstractStridedPointer) = llvmptrd(pointer(p))
for (op,f,cmp) ∈ [(:(<),:vlt,"ult"), (:(>),:vgt,"ugt"), (:(≤),:vle,"ule"), (:(≥),:vge,"uge"), (:(==),:veq,"eq"), (:(≠),:vne,"ne")]
  @eval begin
    @generated function $f(p1::Core.LLVMPtr{T,0}, p2::Core.LLVMPtr{T,0}) where {T}
      llvmptr_comp_quote($cmp, JULIA_TYPES[T])
    end
    @inline Base.$op(p1::P, p2::P) where {P <: AbstractStridedPointer} = $f(llvmptrd(p1), llvmptrd(p2))
    @inline Base.$op(p1::P, p2::P) where {P <: StridedBitPointer} = $op(linearize(p1), linearize(p2))
    @inline Base.$op(p1::P, p2::P) where {P <: FastRange} = $op(getfield(p1, :o), getfield(p2, :o))
    @inline $f(p1::Ptr, p2::Ptr, sp::AbstractStridedPointer) = $f(llvmptrd(p1), llvmptrd(p2))
    @inline $f(p1::NTuple{N,Int}, p2::NTuple{N,Int}, sp) where {N} = $op(reconstruct_ptr(sp, p1), reconstruct_ptr(sp, p2))
    @inline $f(a,b,c) = $f(a,b)
  end
end
@inline linearize(p::StridedBitPointer) = -sum(map(*, strides(p), offsets(p)))

ext: jl


text:
module TestUtils

using Bootstrap
using Test

@testset "Statistic functions" begin

    x = collect(100:-1:0) ## avoid sorting

    ## reference values, computed with boot:::norm_inter (R)
    qr = (
        (1.0,      Inf),
        (0.0,     -Inf),
        (0.5,     50.0),
        (0.4713,  47.07265),
        (0.1,      9.205641),
        (0.052,    4.319606)
    )

    @testset "Normal-interpolated quantiles" begin

        @testset "Reference values: alpha scalar" begin
            for (alpha, ref) in qr
                @test isapprox( Bootstrap.iquantile(x, alpha), ref, atol = 1e-5 )
            end
        end

        @testset "Reference values: alpha vector" begin
            a = Float64[x[1] for x in qr]
            r = Float64[x[2] for x in qr]
            y = Bootstrap.iquantile(x, a)
            @test isapprox(y, r, atol = 1e-4 )
        end

        @testset "Monotone quantiles" begin
            x = collect(0:100)
            ## check that quantiles are monotone
            y0 = -Inf
            for alpha in 0:0.001:1
                y1 = Bootstrap.iquantile(x, alpha)
                @test y1 >= y0
                y0 = y1
            end
        end

    end

end

@testset "Utility functions" begin

    @testset "Exact sampling" begin

        mss = collect(Bootstrap.exact(4))
        @test length(mss) == 35
        @test reduce(&, [issorted(c) for c in mss])

        for n in 1:6
            @test length(Bootstrap.exact(n)) == Bootstrap.nrun_exact(n)
        end

    end

end

end