// Giac integration test file: "0 Independent test suites\Apostol Problems.txt"
// "nock" means we do not check the antiderivative
I:=i;
lst:=[


// Vladimir Bondarenko Integration Problems

// 9 June 2010
[1/(cos(z)+sin(z)+sqrt(2)),z,1,(-1+sin(z)*sqrt(2))/(cos(z)-sin(z))],
[1/(sqrt(1-x)+sqrt(1+x))^2,x,4,(-1/2)/x+1/2*arcsin(x)+1/2*sqrt(1-x^2)/x],
[1/(1+cos(x))^2,x,2,1/3*sin(x)/(1+cos(x))^2+1/3*sin(x)/(1+cos(x))],
[sin(x)/sqrt(1+x),x,5,cos(1)*FresnelS(sqrt(2/Pi)*sqrt(1+x))*sqrt(2*Pi)-FresnelC(sqrt(2/Pi)*sqrt(1+x))*sin(1)*sqrt(2*Pi)],
[1/(cos(x)+sin(x))^6,x,3,1/10*(-cos(x)+sin(x))/(cos(x)+sin(x))^5+1/15*(-cos(x)+sin(x))/(cos(x)+sin(x))^3+2/15*sin(x)/(cos(x)+sin(x))],
[log(1/x^4+x^4),x,22,-4*x+x*log(1/x^4+x^4)-arctan((-2*x+sqrt(2+sqrt(2)))/sqrt(2-sqrt(2)))*sqrt(2-sqrt(2))+arctan((2*x+sqrt(2+sqrt(2)))/sqrt(2-sqrt(2)))*sqrt(2-sqrt(2))-1/2*log(1+x^2-x*sqrt(2-sqrt(2)))*sqrt(2-sqrt(2))+1/2*log(1+x^2+x*sqrt(2-sqrt(2)))*sqrt(2-sqrt(2))-arctan((-2*x+sqrt(2-sqrt(2)))/sqrt(2+sqrt(2)))*sqrt(2+sqrt(2))+arctan((2*x+sqrt(2-sqrt(2)))/sqrt(2+sqrt(2)))*sqrt(2+sqrt(2))-1/2*log(1+x^2-x*sqrt(2+sqrt(2)))*sqrt(2+sqrt(2))+1/2*log(1+x^2+x*sqrt(2+sqrt(2)))*sqrt(2+sqrt(2))],
[log(1+x)/(x*sqrt(1+sqrt(1+x))),x,-1,-8*arctanh(sqrt(1+sqrt(1+x)))-arctanh(sqrt(1+sqrt(1+x))/sqrt(2))*log(1+x)*sqrt(2)+2*arctanh(1/sqrt(2))*log(1-sqrt(1+sqrt(1+x)))*sqrt(2)-2*arctanh(1/sqrt(2))*log(1+sqrt(1+sqrt(1+x)))*sqrt(2)+polylog(2,-sqrt(2)*(1-sqrt(1+sqrt(1+x)))/(2-sqrt(2)))*sqrt(2)-polylog(2,sqrt(2)*(1-sqrt(1+sqrt(1+x)))/(2+sqrt(2)))*sqrt(2)-polylog(2,-sqrt(2)*(1+sqrt(1+sqrt(1+x)))/(2-sqrt(2)))*sqrt(2)+polylog(2,sqrt(2)*(1+sqrt(1+sqrt(1+x)))/(2+sqrt(2)))*sqrt(2)-2*log(1+x)/sqrt(1+sqrt(1+x))],
[log(1+x)*sqrt(1+sqrt(1+x))/x,x,-1,16*arctanh(sqrt(1+sqrt(1+x)))-2*arctanh(sqrt(1+sqrt(1+x))/sqrt(2))*log(1+x)*sqrt(2)+4*arctanh(1/sqrt(2))*log(1-sqrt(1+sqrt(1+x)))*sqrt(2)-4*arctanh(1/sqrt(2))*log(1+sqrt(1+sqrt(1+x)))*sqrt(2)+2*polylog(2,-sqrt(2)*(1-sqrt(1+sqrt(1+x)))/(2-sqrt(2)))*sqrt(2)-2*polylog(2,sqrt(2)*(1-sqrt(1+sqrt(1+x)))/(2+sqrt(2)))*sqrt(2)-2*polylog(2,-sqrt(2)*(1+sqrt(1+sqrt(1+x)))/(2-sqrt(2)))*sqrt(2)+2*polylog(2,sqrt(2)*(1+sqrt(1+sqrt(1+x)))/(2+sqrt(2)))*sqrt(2)-16*sqrt(1+sqrt(1+x))+4*log(1+x)*sqrt(1+sqrt(1+x))],

// 4 July 2010
[1/(1+sqrt(x+sqrt(1+x^2))),x,4,1/2*log(x+sqrt(1+x^2))-2*log(1+sqrt(x+sqrt(1+x^2)))+(-1/2)/(x+sqrt(1+x^2))+1/sqrt(x+sqrt(1+x^2))+sqrt(x+sqrt(1+x^2))],
[sqrt(1+x)/(x+sqrt(1+sqrt(1+x))),x,6,8*arctanh((1+2*sqrt(1+sqrt(1+x)))/sqrt(5))/sqrt(5)+2*sqrt(1+x)],
[1/(x-sqrt(1+sqrt(1+x))),x,5,2/5*log(1+sqrt(5)-2*sqrt(1+sqrt(1+x)))*(5-sqrt(5))+2/5*log(1-sqrt(5)-2*sqrt(1+sqrt(1+x)))*(5+sqrt(5))],
[x/(x+sqrt(1-sqrt(1+x))),x,6,8*arctanh((1+2*sqrt(1-sqrt(1+x)))/sqrt(5))/sqrt(5)+(1-sqrt(1+x))^2+2*sqrt(1+x)-4*sqrt(1-sqrt(1+x))],
[ff(x),x,x],//[sqrt(x+sqrt(1+x))/((1+x^2)*sqrt(1+x)),x,20,1/2*I*arctanh(1/2*(2-sqrt(1-I)-(1+2*sqrt(1-I))*sqrt(1+x))/(sqrt(-I+sqrt(1-I))*sqrt(x+sqrt(1+x))))/sqrt((-1+I)/(I-sqrt(1-I)))-1/2*I*arctan(1/2*(2+sqrt(1-I)-(1-2*sqrt(1-I))*sqrt(1+x))/(sqrt(I+sqrt(1-I))*sqrt(x+sqrt(1+x))))/sqrt((1-I)/(I+sqrt(1-I)))+1/2*I*arctan(1/2*(2+sqrt(1+I)-(1-2*sqrt(1+I))*sqrt(1+x))/(sqrt(-I+sqrt(1+I))*sqrt(x+sqrt(1+x))))/sqrt((-1-I)/(I-sqrt(1+I)))-1/2*I*arctanh(1/2*(2-sqrt(1+I)-(1+2*sqrt(1+I))*sqrt(1+x))/(sqrt(I+sqrt(1+I))*sqrt(x+sqrt(1+x))))/sqrt((1+I)/(I+sqrt(1+I)))],
[ff(x),x,x],//[sqrt(x+sqrt(1+x))/(1+x^2),x,22,1/2*I*arctanh(1/2*(2-sqrt(1-I)-(1+2*sqrt(1-I))*sqrt(1+x))/(sqrt(-I+sqrt(1-I))*sqrt(x+sqrt(1+x))))*sqrt(-I+sqrt(1-I))+1/2*I*arctan(1/2*(2+sqrt(1-I)-(1-2*sqrt(1-I))*sqrt(1+x))/(sqrt(I+sqrt(1-I))*sqrt(x+sqrt(1+x))))*sqrt(I+sqrt(1-I))-1/2*I*arctan(1/2*(2+sqrt(1+I)-(1-2*sqrt(1+I))*sqrt(1+x))/(sqrt(-I+sqrt(1+I))*sqrt(x+sqrt(1+x))))*sqrt(-I+sqrt(1+I))-1/2*I*arctanh(1/2*(2-sqrt(1+I)-(1+2*sqrt(1+I))*sqrt(1+x))/(sqrt(I+sqrt(1+I))*sqrt(x+sqrt(1+x))))*sqrt(I+sqrt(1+I))],
[sqrt(1+sqrt(x)+sqrt(1+2*x+2*sqrt(x))),x,2,2/15*(2+6*x^(3/2)+sqrt(x)-(2-sqrt(x))*sqrt(1+2*x+2*sqrt(x)))*sqrt(1+sqrt(x)+sqrt(1+2*x+2*sqrt(x)))/sqrt(x)],
[sqrt(sqrt(2)+sqrt(x)+sqrt(2+2*x+sqrt(8)*sqrt(x))),x,3,2/15*sqrt(2)*(4+3*x^(3/2)*sqrt(2)+sqrt(2)*sqrt(x)-sqrt(2)*(2*sqrt(2)-sqrt(x))*sqrt(1+x+sqrt(2)*sqrt(x)))*sqrt(sqrt(2)+sqrt(x)+sqrt(2)*sqrt(1+x+sqrt(2)*sqrt(x)))/sqrt(x)],
[sqrt(x+sqrt(1+x))/x^2,x,7,-1/4*arctan(1/2*(3+sqrt(1+x))/sqrt(x+sqrt(1+x)))+3/4*arctanh(1/2*(1-3*sqrt(1+x))/sqrt(x+sqrt(1+x)))-sqrt(x+sqrt(1+x))/x],
[sqrt(1/x+sqrt(1+1/x)),x,7,1/4*arctan(1/2*(3+sqrt(1+1/x))/sqrt(1/x+sqrt(1+1/x)))-3/4*arctanh(1/2*(1-3*sqrt(1+1/x))/sqrt(1/x+sqrt(1+1/x)))+x*sqrt(1/x+sqrt(1+1/x))],
[sqrt(1+exp(-x))/(-exp(-x)+exp(x)),x,6,-arctanh(sqrt(1+exp(-x))/sqrt(2))*sqrt(2)],
[sqrt(1+exp(-x))/sinh(x),x,7,-2*arctanh(sqrt(1+exp(-x))/sqrt(2))*sqrt(2)],
[1/(cos(x)+cos(3*x))^5,x,-45,-523/256*arctanh(sin(x))+1/32*sin(x)/(1-2*sin(x)^2)^4-17/192*sin(x)/(1-2*sin(x)^2)^3+203/768*sin(x)/(1-2*sin(x)^2)^2-437/512*sin(x)/(1-2*sin(x)^2)+1483/512*arctanh(sin(x)*sqrt(2))/sqrt(2)-43/256*sec(x)*tan(x)-1/128*sec(x)^3*tan(x)],
[1/(1+cos(x)+sin(x))^2,x,3,-log(1+tan(1/2*x))+(-cos(x)+sin(x))/(1+cos(x)+sin(x))],
[sqrt(1+tanh(4*x)),x,2,1/2*arctanh(sqrt(1+tanh(4*x))/sqrt(2))/sqrt(2)],
[tanh(x)/sqrt(exp(x)+exp(2*x)),x,"nock",arctan(1/2*(I+(1+2*I)*exp(x))/(sqrt(1-I)*sqrt(exp(x)+exp(2*x))))/sqrt(1-I)-arctan(1/2*(I+(-1+2*I)*exp(x))/(sqrt(1+I)*sqrt(exp(x)+exp(2*x))))/sqrt(1+I)+2*sqrt(exp(x)+exp(2*x))/exp(x)],
[sqrt(sinh(2*x)/cosh(x)),x,5,2*I*sqrt(cos(1/4*Pi-1/2*I*x)^2)/cos(1/4*Pi-1/2*I*x)*EllipticE(sin(1/4*Pi-1/2*I*x),sqrt(2))*sqrt(2)*sqrt(sinh(x))/sqrt(I*sinh(x)),2*I*sqrt(cos(1/4*Pi-1/2*I*x)^2)/cos(1/4*Pi-1/2*I*x)*EllipticE(sin(1/4*Pi-1/2*I*x),sqrt(2))*sqrt(sech(x)*sinh(2*x))/sqrt(I*sinh(x))],
[log(x^2+sqrt(1-x^2)),x,-31,-2*x-arcsin(x)+x*log(x^2+sqrt(1-x^2))+arctanh(x*sqrt(2/(-1+sqrt(5))))*sqrt(1/2*(-1+sqrt(5)))-arctanh(x*sqrt(1/2*(-1+sqrt(5)))/sqrt(1-x^2))*sqrt(1/2*(-1+sqrt(5)))+arctan(x*sqrt(2/(1+sqrt(5))))*sqrt(1/2*(1+sqrt(5)))+arctan(x*sqrt(1/2*(1+sqrt(5)))/sqrt(1-x^2))*sqrt(1/2*(1+sqrt(5)))],
[log(1+exp(x))/(1+exp(2*x)),x,12,-1/2*log((1/2-1/2*I)*(I-exp(x)))*log(1+exp(x))-1/2*log((-1/2-1/2*I)*(I+exp(x)))*log(1+exp(x))-polylog(2,-exp(x))-1/2*polylog(2,(1/2-1/2*I)*(1+exp(x)))-1/2*polylog(2,(1/2+1/2*I)*(1+exp(x)))],
[cosh(x)*log(1+cosh(x)^2)^2,x,13,8*sinh(x)-4*log(2+sinh(x)^2)*sinh(x)+log(2+sinh(x)^2)^2*sinh(x)-8*arctan(sinh(x)/sqrt(2))*sqrt(2)+4*I*arctan(sinh(x)/sqrt(2))^2*sqrt(2)+4*arctan(sinh(x)/sqrt(2))*log(2+sinh(x)^2)*sqrt(2)+8*arctan(sinh(x)/sqrt(2))*log(2*sqrt(2)/(I*sinh(x)+sqrt(2)))*sqrt(2)+4*I*polylog(2,1-2*sqrt(2)/(I*sinh(x)+sqrt(2)))*sqrt(2)],
[cosh(x)*log(cosh(x)^2+sinh(x))^2,x,28,-2*log(1+sinh(x)+sinh(x)^2)+8*sinh(x)-4*log(1+sinh(x)+sinh(x)^2)*sinh(x)+log(1+sinh(x)+sinh(x)^2)^2*sinh(x)+log(1+sinh(x)+sinh(x)^2)*log(1+2*sinh(x)-I*sqrt(3))*(1-I*sqrt(3))-1/2*log(1+2*sinh(x)-I*sqrt(3))^2*(1-I*sqrt(3))-log(1+2*sinh(x)-I*sqrt(3))*log(-1/2*I*(1+2*sinh(x)+I*sqrt(3))/sqrt(3))*(1-I*sqrt(3))-polylog(2,1/2*(I+2*I*sinh(x)+sqrt(3))/sqrt(3))*(1-I*sqrt(3))+log(1+sinh(x)+sinh(x)^2)*log(1+2*sinh(x)+I*sqrt(3))*(1+I*sqrt(3))-1/2*log(1+2*sinh(x)+I*sqrt(3))^2*(1+I*sqrt(3))-log(1+2*sinh(x)+I*sqrt(3))*log(1/2*I*(1+2*sinh(x)-I*sqrt(3))/sqrt(3))*(1+I*sqrt(3))-polylog(2,1/2*(-I-2*I*sinh(x)+sqrt(3))/sqrt(3))*(1+I*sqrt(3))-4*arctan((1+2*sinh(x))/sqrt(3))*sqrt(3)],
[log(x+sqrt(1+x))/(1+x^2),x,44,1/2*I*log(sqrt(1-I)-sqrt(1+x))*log(x+sqrt(1+x))-1/2*I*log(sqrt(1+I)-sqrt(1+x))*log(x+sqrt(1+x))+1/2*I*log(x+sqrt(1+x))*log(sqrt(1-I)+sqrt(1+x))-1/2*I*log(x+sqrt(1+x))*log(sqrt(1+I)+sqrt(1+x))-1/2*I*log(sqrt(1-I)+sqrt(1+x))*log((1-sqrt(5)+2*sqrt(1+x))/(1-2*sqrt(1-I)-sqrt(5)))-1/2*I*log(sqrt(1-I)-sqrt(1+x))*log((1-sqrt(5)+2*sqrt(1+x))/(1+2*sqrt(1-I)-sqrt(5)))+1/2*I*log(sqrt(1+I)+sqrt(1+x))*log((1-sqrt(5)+2*sqrt(1+x))/(1-2*sqrt(1+I)-sqrt(5)))+1/2*I*log(sqrt(1+I)-sqrt(1+x))*log((1-sqrt(5)+2*sqrt(1+x))/(1+2*sqrt(1+I)-sqrt(5)))-1/2*I*log(sqrt(1-I)+sqrt(1+x))*log((1+sqrt(5)+2*sqrt(1+x))/(1-2*sqrt(1-I)+sqrt(5)))-1/2*I*log(sqrt(1-I)-sqrt(1+x))*log((1+sqrt(5)+2*sqrt(1+x))/(1+2*sqrt(1-I)+sqrt(5)))+1/2*I*log(sqrt(1+I)+sqrt(1+x))*log((1+sqrt(5)+2*sqrt(1+x))/(1-2*sqrt(1+I)+sqrt(5)))+1/2*I*log(sqrt(1+I)-sqrt(1+x))*log((1+sqrt(5)+2*sqrt(1+x))/(1+2*sqrt(1+I)+sqrt(5)))-1/2*I*polylog(2,2*(sqrt(1-I)-sqrt(1+x))/(1+2*sqrt(1-I)-sqrt(5)))-1/2*I*polylog(2,2*(sqrt(1-I)-sqrt(1+x))/(1+2*sqrt(1-I)+sqrt(5)))+1/2*I*polylog(2,2*(sqrt(1+I)-sqrt(1+x))/(1+2*sqrt(1+I)-sqrt(5)))+1/2*I*polylog(2,2*(sqrt(1+I)-sqrt(1+x))/(1+2*sqrt(1+I)+sqrt(5)))-1/2*I*polylog(2,-2*(sqrt(1-I)+sqrt(1+x))/(1-2*sqrt(1-I)-sqrt(5)))-1/2*I*polylog(2,-2*(sqrt(1-I)+sqrt(1+x))/(1-2*sqrt(1-I)+sqrt(5)))+1/2*I*polylog(2,-2*(sqrt(1+I)+sqrt(1+x))/(1-2*sqrt(1+I)-sqrt(5)))+1/2*I*polylog(2,-2*(sqrt(1+I)+sqrt(1+x))/(1-2*sqrt(1+I)+sqrt(5)))],
[log(x+sqrt(1+x))^2/(1+x)^2,x,35,log(1+x)-6*log(sqrt(1+x))*log(x+sqrt(1+x))-log(x+sqrt(1+x))^2/(1+x)+6*log(1/2*(-1+sqrt(5)))*log(1-sqrt(5)+2*sqrt(1+x))+6*log(sqrt(1+x))*log(1+2*sqrt(1+x)/(1+sqrt(5)))+6*polylog(2,-2*sqrt(1+x)/(1+sqrt(5)))-6*polylog(2,1+2*sqrt(1+x)/(1-sqrt(5)))-log(1+sqrt(5)+2*sqrt(1+x))*(1-sqrt(5))+log(x+sqrt(1+x))*log(1+sqrt(5)+2*sqrt(1+x))*(3-sqrt(5))-log(1/2*(-1+sqrt(5)-2*sqrt(1+x))/sqrt(5))*log(1+sqrt(5)+2*sqrt(1+x))*(3-sqrt(5))-1/2*log(1+sqrt(5)+2*sqrt(1+x))^2*(3-sqrt(5))-polylog(2,1/2*(1+sqrt(5)+2*sqrt(1+x))/sqrt(5))*(3-sqrt(5))-log(1-sqrt(5)+2*sqrt(1+x))*(1+sqrt(5))+log(x+sqrt(1+x))*log(1-sqrt(5)+2*sqrt(1+x))*(3+sqrt(5))-1/2*log(1-sqrt(5)+2*sqrt(1+x))^2*(3+sqrt(5))-log(1-sqrt(5)+2*sqrt(1+x))*log(1/2*(1+sqrt(5)+2*sqrt(1+x))/sqrt(5))*(3+sqrt(5))-polylog(2,1/2*(-1+sqrt(5)-2*sqrt(1+x))/sqrt(5))*(3+sqrt(5))+2*log(x+sqrt(1+x))/sqrt(1+x)],
[log(x+sqrt(1+x))/x,x,21,log(-1+sqrt(1+x))*log(x+sqrt(1+x))+log(1+sqrt(1+x))*log(x+sqrt(1+x))-log(-1+sqrt(1+x))*log((1-sqrt(5)+2*sqrt(1+x))/(3-sqrt(5)))-log(1+sqrt(1+x))*log((-1+sqrt(5)-2*sqrt(1+x))/(1+sqrt(5)))-log(1+sqrt(1+x))*log((-1-sqrt(5)-2*sqrt(1+x))/(1-sqrt(5)))-log(-1+sqrt(1+x))*log((1+sqrt(5)+2*sqrt(1+x))/(3+sqrt(5)))-polylog(2,2*(1-sqrt(1+x))/(3-sqrt(5)))-polylog(2,2*(1-sqrt(1+x))/(3+sqrt(5)))-polylog(2,2*(1+sqrt(1+x))/(1-sqrt(5)))-polylog(2,2*(1+sqrt(1+x))/(1+sqrt(5)))],
[arctan(2*tan(x)),x,7,x*arctan(2*tan(x))+1/2*I*x*log(1-3*exp(2*I*x))-1/2*I*x*log(1-1/3*exp(2*I*x))-1/4*polylog(2,1/3*exp(2*I*x))+1/4*polylog(2,3*exp(2*I*x))],
[arctan(x)*log(x)/x,x,5,1/2*I*log(x)*polylog(2,-I*x)-1/2*I*log(x)*polylog(2,I*x)-1/2*I*polylog(3,-I*x)+1/2*I*polylog(3,I*x)],

//  Note: Mathematica is unable to differentiate result back to integrand! 
[arctan(x)^2*sqrt(1+x^2),x,10,arcsinh(x)-I*arctan(exp(I*arctan(x)))*arctan(x)^2+I*arctan(x)*polylog(2,-I*exp(I*arctan(x)))-I*arctan(x)*polylog(2,I*exp(I*arctan(x)))-polylog(3,-I*exp(I*arctan(x)))+polylog(3,I*exp(I*arctan(x)))-arctan(x)*sqrt(1+x^2)+1/2*x*arctan(x)^2*sqrt(1+x^2)]
];

res:=[]:;
S:=182; S:=size(lst);
failint:=[]; failsimp:=[]; nock:=[]; ass:=[];
print("Integration independent test suites, Bondarenko "+S);
file:=fopen("intindbo.tst");
T0:=time();
for j from 0 to S-1 do
  l:=eval(lst,1)[j]; 
  f:=l[0]; v:=l[1]; hyp:=l[2]; print(f);
  purge(unquote(v));
  if (type(hyp)==string) expr(hyp); // eval assumption
  print(j+1,f,v,hyp,about(unquote(v)));
  try { g:=integrate(f,unquote(v)); } catch(err){ g:="integrate(err)"; }
  s:=""+eval(g,1);
  h:=false;
  fail:=size(s.find("integrate("))>0 || hyp==x;
  if (fail) failint.append(j+1);
  if (hyp=="nock") nock.append(j+1);
  if (hyp.type==string && size(hyp.find("assume("))>0) ass.append(j+1);
  if (hyp!="nock" && !fail)  h:=simplify(diff(g,unquote(v))-f); else print("nock");
  purge(unquote(assumptions));
  fgh:=""+eval([j+1,f,g,h],1);
  if (eval(h,1)!=0) failsimp.append(j+1);
  print(fgh);
  //res.append([f,g,h]); print(res[size(res)-1]);
  fprint(file,"",fgh);
od:;
fprint(file,"","Time:",time()-T0,", tests: ",S,", integration failures: ",size(failint),failint,", simplification failures: ",size(failsimp),failsimp,", not cheked: ",size(nock),nock,", assumptions: ",size(ass),ass);
fclose(file);
print("Integration independent test suites, Bondarenko ","tests: ",S,", integration failures: ",size(failint),failint,", simplification failures: ",size(failsimp),failsimp,", not cheked: ",size(nock),nock,", assumptions: ",size(ass),ass);
//res;
