private void test3(
boolean complex, boolean overwrite,
boolean center1, boolean center2, boolean center3,
int padding1, int padding2, int padding3,
int n1, double d1, double f1,
int n2, double d2, double f2,
int n3, double d3, double f3)
{
if (n1<=0 || n2<=0 || n3<=0) return;
Sampling s1 = new Sampling(n1,d1,f1);
Sampling s2 = new Sampling(n2,d2,f2);
Sampling s3 = new Sampling(n3,d3,f3);
Fft fft = new Fft(s1,s2,s3);
fft.setComplex(complex);
fft.setOverwrite(overwrite);
fft.setCenter1(center1);
fft.setCenter2(center2);
fft.setCenter3(center3);
fft.setPadding1(padding1);
fft.setPadding2(padding2);
fft.setPadding3(padding3);
float[][][] f = (complex)?crandfloat(n1,n2,n3):randfloat(n1,n2,n3);
float[][][] g = fft.applyForward(f);
float[][][] h = fft.applyInverse(g);
if (complex)
assertComplexEqual(n1,n2,n3,f,h);
else
assertRealEqual(n1,n2,n3,f,h);
}