/*
Factorization over Finite Fields test.
AKS Oct 2006.
*/


for p in [2, 3, 5] do
    K := GF(p);
    for d in [2 .. 10] do
	L := GF(p, d);
	p, d;
	for n in [2 .. 10 by 4] do
	    f := IrreduciblePolynomial(K, n);
	    fact := Factorization(PolynomialRing(L)!f);
	    roots := Roots(f, L);
	    assert
		{<-Coefficient(t[1], 0), t[2]>: t in fact | Degree(t[1]) eq 1}
		eq Set(roots);
	end for;
    end for;
end for;
