diff options
Diffstat (limited to 'src/c/signalProcessing/fftshift/testFloatFftShift.c')
-rw-r--r-- | src/c/signalProcessing/fftshift/testFloatFftShift.c | 159 |
1 files changed, 159 insertions, 0 deletions
diff --git a/src/c/signalProcessing/fftshift/testFloatFftShift.c b/src/c/signalProcessing/fftshift/testFloatFftShift.c new file mode 100644 index 0000000..19b8573 --- /dev/null +++ b/src/c/signalProcessing/fftshift/testFloatFftShift.c @@ -0,0 +1,159 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2008 - INRIA - Arnaud TORSET + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + * + */ + + +#include "fftshift.h" +#include <assert.h> +#define SOURCE {1,2,3,4,5,6,7,8,9,10,11,12} + + +static void srowfftshiftaTest(void){ + int i=0; + + float in[]=SOURCE; + float result3_4[12]={3,1,2,6,4,5,9,7,8,12,10,11}; + float result4_3[12]={3,4,1,2,7,8,5,6,11,12,9,10}; + float out[12]; + + srowfftshifta(in,3,4,out); + for (i=0;i<12;i++) assert( out[i]-result3_4[i]==0); + + srowfftshifta(in,4,3,out); + for (i=0;i<12;i++) assert( out[i]-result4_3[i]==0); + +} + +static void crowfftshiftaTest(void){ + int i=0; + + float inR[]=SOURCE; + float result3_4[12]={3,1,2,6,4,5,9,7,8,12,10,11}; + float result4_3[12]={3,4,1,2,7,8,5,6,11,12,9,10}; + floatComplex out[12]; + float ZEROS[12]={0}; + floatComplex *in; + + in=FloatComplexMatrix(inR,ZEROS,12); + + crowfftshifta(in,3,4,out); + for (i=0;i<12;i++) { + assert( creals(out[i])-result3_4[i]==0); + assert( cimags(out[i])==0); + } + + crowfftshifta(in,4,3,out); + for (i=0;i<12;i++) { + assert( creals(out[i])-result4_3[i]==0); + assert( cimags(out[i])==0); + } +} + + +static void scolumnfftshiftaTest(void){ + int i=0; + + float in[]=SOURCE; + float result3_4[12]={7,8,9,10,11,12,1,2,3,4,5,6}; + float result4_3[12]={9,10,11,12,1,2,3,4,5,6,7,8}; + float out[12]; + + scolumnfftshifta(in,3,4,out); + for (i=0;i<12;i++) assert( out[i]-result3_4[i]==0); + + scolumnfftshifta(in,4,3,out); + for (i=0;i<12;i++) assert( out[i]-result4_3[i]==0); + +} + +static void ccolumnfftshiftaTest(void){ + int i=0; + + float inR[]=SOURCE; + float result3_4[12]={7,8,9,10,11,12,1,2,3,4,5,6}; + float result4_3[12]={9,10,11,12,1,2,3,4,5,6,7,8}; + floatComplex out[12]; + float ZEROS[12]={0}; + floatComplex *in; + + in=FloatComplexMatrix(inR,ZEROS,12); + + ccolumnfftshifta(in,3,4,out); + for (i=0;i<12;i++) { + assert( creals(out[i])-result3_4[i]==0); + assert( cimags(out[i])==0); + } + + ccolumnfftshifta(in,4,3,out); + for (i=0;i<12;i++) { + assert( creals(out[i])-result4_3[i]==0); + assert( cimags(out[i])==0); + } + +} + +static void sfftshiftaTest(void){ + int i=0; + + float in[]=SOURCE; + float result3_4[12]={9,7,8,12,10,11,3,1,2,6,4,5}; + float result4_3[12]={11,12,9,10,3,4,1,2,7,8,5,6}; + float out[12]; + + sfftshifta(in,3,4,out); + for (i=0;i<12;i++) assert( out[i]-result3_4[i]==0); + + sfftshifta(in,4,3,out); + for (i=0;i<12;i++) assert( out[i]-result4_3[i]==0); + +} + +static void cfftshiftaTest(void){ + int i=0; + + float inR[]=SOURCE; + float result3_4[12]={9,7,8,12,10,11,3,1,2,6,4,5}; + float result4_3[12]={11,12,9,10,3,4,1,2,7,8,5,6}; + floatComplex out[12]; + float ZEROS[12]={0}; + floatComplex *in; + + in=FloatComplexMatrix(inR,ZEROS,12); + + cfftshifta(in,3,4,out); + for (i=0;i<12;i++) { + assert( creals(out[i])-result3_4[i]==0); + assert( cimags(out[i])==0); + } + + cfftshifta(in,4,3,out); + for (i=0;i<12;i++) { + assert( creals(out[i])-result4_3[i]==0); + assert( cimags(out[i])==0); + } + +} + +static int FftShiftTest(void){ + srowfftshiftaTest(); + crowfftshiftaTest(); + scolumnfftshiftaTest(); + ccolumnfftshiftaTest(); + sfftshiftaTest(); + cfftshiftaTest(); + return 0; +} + + +int main(void){ + assert (FftShiftTest()==0); + return 0; +} |