#include "test_MI.h"

int test_MI_canonhom (int iterations)
{
	int error = 0;
	int i;
	// Check canonhom followed by retract.
	for (i = iterations; i > 0; i--) {
		cl_I m = testrandom_I();
		cl_modint_ring R = find_modint_ring(m);
		cl_I a = testrandom_I();
		ASSERT2(R->retract(R->canonhom(a)) == (m==0 ? a : mod(a,abs(m))), m,a);
	}
	return error;
}