# Reading the file hypergeometricsols_source in Maple produces the file "hypergeometricsols.m"

# Reading that latter file loads the implementation:
read "hypergeometricsols.m";
read Examples:
Tests := [ Linp_walks, Linp_alg, Linp_nonlog, Linp_log ]:
_Envdiffopdomain := [Dx,x]:

Test3 := false; # Set to false if you want to run all tests (about 10 minutes)

if Test3 = true then
	# test only 3 examples of each type
	Tests := map(i -> i[1..3], Tests)
fi:
Tests := map(op, Tests):

for L in Tests do
	H := `DEtools/hypergeometricsols`(L);
	if H = [] then
		error "not solved"
	fi
od;

# We should also check for some examples if the output is really a solution of the input:

# Modify one of examples from Linp_walks:
L := DEtools[symmetric_product]( Linp_walks[-1], Dx+x+3-3/x^2);
L := DEtools[diffop2de](L, y(x));
S := `DEtools/hypergeometricsols`(L);
simplify(eval(L, y(x) = S[1]));
simplify(eval(L, y(x) = S[2]));
