summaryrefslogtreecommitdiff
path: root/src/c/auxiliaryFunctions/find/testFind.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/c/auxiliaryFunctions/find/testFind.c')
-rw-r--r--src/c/auxiliaryFunctions/find/testFind.c217
1 files changed, 217 insertions, 0 deletions
diff --git a/src/c/auxiliaryFunctions/find/testFind.c b/src/c/auxiliaryFunctions/find/testFind.c
new file mode 100644
index 0000000..298d55b
--- /dev/null
+++ b/src/c/auxiliaryFunctions/find/testFind.c
@@ -0,0 +1,217 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2007-2008 - INRIA - Bruno JOFRET
+ *
+ * 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 <stdlib.h>
+#include "testFind.h"
+
+int sfindaTest() {
+ int result = 0, i = 0;
+ float goodArray[5] = {0.,2.,3.,5.,10.};
+ float badArray[5] = {0.,0.,0.,0.,0.};
+ float res[4] = {2.,3.,4.,5.};
+ float *outGood = NULL, *outBad = NULL;
+ int indiceOut;
+
+ outGood=(float*)malloc((unsigned int)5*sizeof(float));
+ outBad=(float*)malloc((unsigned int)5*sizeof(float));
+
+ printf(">> Floats \n");
+ sfinda(goodArray, 5, outGood, &indiceOut,-1);
+ sfinda(badArray, 5, outBad, &indiceOut,-1);
+
+ for (i=0;i<4;i++){
+ if ( outGood[i] != res[i]) {
+ printf("ERROR ! : Test Failed (non empty array)\n");
+ result = ERROR;
+ }
+ else
+ printf("%f ",outGood[i]);
+ }
+
+ printf("\n");
+
+ if (outBad[0]!=-1) {
+ printf("ERROR ! : Test Failed (empty array)\n");
+ result = ERROR;
+ }
+ else
+ printf("%f ",outBad[0]);
+
+ printf("\n");
+ free(outBad);
+ free(outGood);
+ return result;
+}
+
+int dfindaTest() {
+ int result = 0, i = 0;
+ double goodArray[5] = {0.,2.,3.,5.,10.};
+ double badArray[5] = {0.,0.,0.,0.,0.};
+ double res[4] = {2.,3.,4.,5.};
+ double *outGood = NULL, *outBad = NULL;
+ int indiceOut;
+
+ outGood=(double*)malloc((unsigned int)5*sizeof(double));
+ outBad=(double*)malloc((unsigned int)5*sizeof(double));
+
+
+ printf(">> Double \n");
+ dfinda(goodArray, 5, outGood, &indiceOut,-1);
+ dfinda(badArray, 5, outBad, &indiceOut,-1);
+
+ for (i=0;i<4;i++){
+ if ( outGood[i] != res[i]) {
+ printf("ERROR ! : Test Failed (non empty array)\n");
+ result = ERROR;
+ }
+ else
+ printf("%f ",outGood[i]);
+ }
+
+ printf("\n");
+
+ if (outBad[0]!=-1) {
+ printf("ERROR ! : Test Failed (empty array)\n");
+ result = ERROR;
+ }
+ else
+ printf("%f ",outBad[0]);
+
+ printf("\n");
+ free(outBad);
+ free(outGood);
+ return result;
+}
+
+int cfindaTest() {
+ int result = 0, i = 0;
+ floatComplex goodArray[5];
+ floatComplex badArray[5];
+ float res[4] = {2.,3.,4.,5.};
+ float *outGood = NULL, *outBad = NULL;
+ int indiceOut;
+
+ outGood=(float*)malloc((unsigned int)5*sizeof(float));
+ outBad=(float*)malloc((unsigned int)5*sizeof(float));
+
+ /* Good values in goodArray */
+ goodArray[0] = FloatComplex(0., 0.);
+ goodArray[1] = FloatComplex(0., 2.);
+ goodArray[2] = FloatComplex(3., 50.);
+ goodArray[3] = FloatComplex(5., 10.);
+ goodArray[4] = FloatComplex(10., -10.);
+ /* Bad values in badArray */
+ badArray[0] = FloatComplex(0., 0.);
+ badArray[1] = FloatComplex(0., 0.);
+ badArray[2] = FloatComplex(0., 0.);
+ badArray[3] = FloatComplex(0., 0.);
+ badArray[4] = FloatComplex(0., 0.);
+
+ printf(">> Float Complex \n");
+ cfinda(goodArray, 5, outGood, &indiceOut,-1);
+ cfinda(badArray, 5, outBad, &indiceOut,-1);
+
+ for (i=0;i<4;i++){
+ if ( outGood[i] != res[i]) {
+ printf("ERROR ! : Test Failed (non empty array)\n");
+ result = ERROR;
+ }
+ else
+ printf("%f ",outGood[i]);
+ }
+
+ printf("\n");
+
+ if (outBad[0]!=-1) {
+ printf("ERROR ! : Test Failed (empty array)\n");
+ result = ERROR;
+ }
+ else
+ printf("%f ",outBad[0]);
+
+ printf("\n");
+ free(outBad);
+ free(outGood);
+ return result;
+}
+
+int zfindaTest() {
+ int result = 0, i = 0;
+ doubleComplex goodArray[5];
+ doubleComplex badArray[5];
+ double res[4] = {2.,3.,4.,5.};
+ double *outGood = NULL, *outBad = NULL;
+ int indiceOut;
+
+ outGood=(double*)malloc((unsigned int)5*sizeof(double));
+ outBad=(double*)malloc((unsigned int)5*sizeof(double));
+
+
+ /* Good values in goodArray */
+ goodArray[0] = DoubleComplex(0., 0.);
+ goodArray[1] = DoubleComplex(0., 2.);
+ goodArray[2] = DoubleComplex(3., 50.);
+ goodArray[3] = DoubleComplex(5., 10.);
+ goodArray[4] = DoubleComplex(10., -10.);
+ /* Bad values in badArray */
+ badArray[0] = DoubleComplex(0., 0.);
+ badArray[1] = DoubleComplex(0., 0.);
+ badArray[2] = DoubleComplex(0., 0.);
+ badArray[3] = DoubleComplex(0., 0.);
+ badArray[4] = DoubleComplex(0., 0.);
+
+
+ printf(">> Double Complex \n");
+ zfinda(goodArray, 5, outGood, &indiceOut,-1);
+ zfinda(badArray, 5, outBad, &indiceOut,-1);
+
+ for (i=0;i<4;i++){
+ if ( outGood[i] != res[i]) {
+ printf("ERROR ! : Test Failed (non empty array)\n");
+ result = ERROR;
+ }
+ else
+ printf("%f ",outGood[i]);
+ }
+
+ printf("\n");
+
+ if (outBad[0]!=-1) {
+ printf("ERROR ! : Test Failed (empty array)\n");
+ result = ERROR;
+ }
+ else
+ printf("%f ",outBad[0]);
+
+ printf("\n");
+ free(outBad);
+ free(outGood);
+ return result;
+}
+
+int testFind() {
+ int sfindaStatus, dfindaStatus = 0;
+ int cfindaStatus, zfindaStatus = 0;
+
+ printf(">>>> Find Tests\n");
+ sfindaStatus = sfindaTest();
+ dfindaStatus = dfindaTest();
+ cfindaStatus = cfindaTest();
+ zfindaStatus = zfindaTest();
+
+ return (sfindaStatus + dfindaStatus +
+ cfindaStatus + zfindaStatus);
+}
+
+int main(void) {
+ assert(testFind() == 0);
+ return 0;
+}