fix memory leaks on EMGLLF, test OK for EMGrank
[valse.git] / src / test / test.EMGLLF.c
index 60516bc..168f81e 100644 (file)
@@ -1,48 +1,46 @@
 #include "EMGLLF.h"
-#include "ioutils.h"
+#include "test_utils.h"
+#include <stdlib.h>
 
 int main(int argc, char** argv)
 {
-       ////////////
-       // INPUTS //
-       ////////////
-
-       Int* dimensions = readArray_int("dimensions");
-       mwSize n = dimensions[0];
-       mwSize p = dimensions[1];
-       mwSize m = dimensions[2];
-       mwSize k = dimensions[3];
+       int* dimensions = readArray_int("dimensions");
+       int n = dimensions[0];
+       int p = dimensions[1];
+       int m = dimensions[2];
+       int k = dimensions[3];
        free(dimensions);
 
+       ////////////
+       // INPUTS //
        Real* phiInit = readArray_real("phiInit");
        Real* rhoInit = readArray_real("rhoInit");
        Real* piInit = readArray_real("piInit");
        Real* gamInit = readArray_real("gamInit");
-       Int mini = read_int("mini");
-       Int maxi = read_int("maxi");
+       int mini = read_int("mini");
+       int maxi = read_int("maxi");
        Real gamma = read_real("gamma");
        Real lambda = read_real("lambda");
        Real* X = readArray_real("X");
        Real* Y = readArray_real("Y");
        Real tau = read_real("tau");
+       ////////////
 
        /////////////
        // OUTPUTS //
-       /////////////
-
        Real* phi = (Real*)malloc(p*m*k*sizeof(Real));
        Real* rho = (Real*)malloc(m*m*k*sizeof(Real));
        Real* pi = (Real*)malloc(k*sizeof(Real));
        Real* LLF = (Real*)malloc(maxi*sizeof(Real));
        Real* S = (Real*)malloc(p*m*k*sizeof(Real));
+       /////////////
 
        ////////////////////
        // Call to EMGLLF //
-       ////////////////////
-
        EMGLLF_core(phiInit,rhoInit,piInit,gamInit,mini,maxi,gamma,lambda,X,Y,tau,
                phi,rho,pi,LLF,S,
                n,p,m,k);
+       ////////////////////
 
        free(phiInit);
        free(rhoInit);
@@ -67,8 +65,8 @@ int main(int argc, char** argv)
        free(pi);
        free(ref_pi);
 
-       Real* ref_LLF = readArray_real("LLF", maxi);
-       compareArray_real("LLF", LLF, ref_LLF);
+       Real* ref_LLF = readArray_real("LLF");
+       compareArray_real("LLF", LLF, ref_LLF, maxi);
        free(LLF);
        free(ref_LLF);