From 7ea8c1e58b3ab98eda5b003ccdffe5e35222bb4f Mon Sep 17 00:00:00 2001 From: Benjamin Auder Date: Thu, 12 Jan 2017 16:21:25 +0100 Subject: [PATCH] test almost working --- .../{.test.EMGLLF.c.swp => .Makefile.swp} | Bin 12288 -> 12288 bytes src/test/.utils.c.swp | Bin 12288 -> 0 bytes src/test/Makefile | 18 ++-- src/test/test.ConstructionModelesLassoMLE.c | 90 ++++++++--------- src/test/test.EMGLLF.c | 55 +++++------ src/test/test.EMGrank.c | 52 +++++----- src/test/test.constructionModelesLassoRank.c | 70 +++++++------- src/test/test.selectiontotale.c | 84 ++++++++-------- src/test/utils.c | 91 +++++++++++------- src/test/utils.h | 17 ++++ 10 files changed, 261 insertions(+), 216 deletions(-) rename src/test/{.test.EMGLLF.c.swp => .Makefile.swp} (79%) delete mode 100644 src/test/.utils.c.swp create mode 100644 src/test/utils.h diff --git a/src/test/.test.EMGLLF.c.swp b/src/test/.Makefile.swp similarity index 79% rename from src/test/.test.EMGLLF.c.swp rename to src/test/.Makefile.swp index 176ac00789fa190350c8e35d63ce68e5f447f061..bfa54d3242d716f99d03e59d79aec9385f9d18f4 100644 GIT binary patch literal 12288 zcmYc?2=nw+u+TGLU|?VnU|=wwR~})+`j5ewlYt?zG$pkNBu)TlR2HNbW#;D*P{yF2 zk&>cclvYL6@-OC$ueqG(`X2chQMeDjE2By2#kinXb6mkz-S1JhQQDafsz77hI$4D z1}3QU)uA*a8V%)+QllX-8UmvsFd71*Aut*OqaiRF0;3@?8UmvsFd71*Aut*OLofsq zQy3TwxEUB;a6{(*Vg3K_{0t0x`572y@iQ=#^D{6c^D{8m@iQO2e#YCH@K z5j66_x4#999b@FHkjE2By2#kinXb6mkz-S1JhQMeD&@lw`^a4Em{UWUt z5_57Cl5zJiK_f^M>cij9JbhO?WGqkAyOR8K!=pHLUq zU`+;9y?iSLRlQ_1Eh=#!C%C{hfSeKU1LZS-Rtf7Br{<(4mt^MWh2)nc=A>FFU=!8L zC*9!W{Ji3lqEfKgzWFJsIjO}yiN(eFL5X?UP+RaRA;(HrU-u$}=};ay2H|p;ua7GM zr~CT2l4GH(ue*Omn4-Rs+ z(o440%hv=;1qV5UrOGpNQj!ykQcyEUGFXv- q;d%MGnYjfynaPW2jGXMY=K4?1t literal 12288 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 int main(int argc, char** argv) { @@ -7,34 +8,34 @@ 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); - 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"); - 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"); + float* phiInit = readArray_real("phiInit"); + float* rhoInit = readArray_real("rhoInit"); + float* piInit = readArray_real("piInit"); + float* gamInit = readArray_real("gamInit"); + int mini = read_int("mini"); + int maxi = read_int("maxi"); + float gamma = read_real("gamma"); + float lambda = read_real("lambda"); + float* X = readArray_real("X"); + float* Y = readArray_real("Y"); + float 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)); + float* phi = (float*)malloc(p*m*k*sizeof(float)); + float* rho = (float*)malloc(m*m*k*sizeof(float)); + float* pi = (float*)malloc(k*sizeof(float)); + float* LLF = (float*)malloc(maxi*sizeof(float)); + float* S = (float*)malloc(p*m*k*sizeof(float)); //////////////////// // Call to EMGLLF // @@ -52,27 +53,27 @@ int main(int argc, char** argv) free(Y); // Compare to reference outputs - Real* ref_phi = readArray_real("phi"); + float* ref_phi = readArray_real("phi"); compareArray_real("phi", phi, ref_phi, p*m*k); free(phi); free(ref_phi); - Real* ref_rho = readArray_real("rho"); + float* ref_rho = readArray_real("rho"); compareArray_real("rho", rho, ref_rho, m*m*k); free(rho); free(ref_rho); - Real* ref_pi = readArray_real("pi"); + float* ref_pi = readArray_real("pi"); compareArray_real("pi", pi, ref_pi, k); free(pi); free(ref_pi); - Real* ref_LLF = readArray_real("LLF", maxi); + float* ref_LLF = readArray_real("LLF", maxi); compareArray_real("LLF", LLF, ref_LLF); free(LLF); free(ref_LLF); - Real* ref_S = readArray_real("S"); + float* ref_S = readArray_real("S"); compareArray_real("S", S, ref_S, p*m*k); free(S); free(ref_S); diff --git a/src/test/test.EMGrank.c b/src/test/test.EMGrank.c index 1227738..c6edbc2 100644 --- a/src/test/test.EMGrank.c +++ b/src/test/test.EMGrank.c @@ -4,62 +4,62 @@ int main(int argc, char** argv) { // read dimensions - const Int nbDims = 4; - Int* dimensions = readArray_int("dimensions",&nbDims,1); - mwSize n = dimensions[0]; - mwSize p = dimensions[1]; - mwSize m = dimensions[2]; - mwSize k = dimensions[3]; + const int nbDims = 4; + int* dimensions = readArray_int("dimensions",&nbDims,1); + int n = dimensions[0]; + int p = dimensions[1]; + int m = dimensions[2]; + int k = dimensions[3]; free(dimensions); - mwSize lengthOne = 1; + int lengthOne = 1; //////////// // INPUTS // //////////// // Rho - const mwSize dimRho[] = {m, m, k}; - Real* Rho = readArray_real("Rho",dimRho,3); + const int dimRho[] = {m, m, k}; + float* Rho = readArray_real("Rho",dimRho,3); // Pi - Real* Pi = readArray_real("Pi",&k,1); + float* Pi = readArray_real("Pi",&k,1); // min number of iterations - Int* pmini = readArray_int("mini",&lengthOne,1); - Int mini = *pmini; + int* pmini = readArray_int("mini",&lengthOne,1); + int mini = *pmini; free(pmini); // max number of iterations - Int* pmaxi = readArray_int("maxi",&lengthOne,1); - Int maxi = *pmaxi; + int* pmaxi = readArray_int("maxi",&lengthOne,1); + int maxi = *pmaxi; free(pmaxi); // X - const mwSize dimX[] = {n, p}; - Real* X = readArray_real("X",dimX, 2); + const int dimX[] = {n, p}; + float* X = readArray_real("X",dimX, 2); // Y - const mwSize dimY[] = {n, m}; - Real* Y = readArray_real("Y",dimY, 2); + const int dimY[] = {n, m}; + float* Y = readArray_real("Y",dimY, 2); // tau - Real* ptau = readArray_real("tau",&lengthOne,1); - Real tau = *ptau; + float* ptau = readArray_real("tau",&lengthOne,1); + float tau = *ptau; free(ptau); // tau - Int* rank = readArray_int("rank",&k,1); + int* rank = readArray_int("rank",&k,1); ///////////// // OUTPUTS // ///////////// // phi - const mwSize dimPhi[] = {p, m, k}; - Real* phi = (Real*)malloc(dimPhi[0]*dimPhi[1]*dimPhi[2]*sizeof(Real)); + const int dimPhi[] = {p, m, k}; + float* phi = (float*)malloc(dimPhi[0]*dimPhi[1]*dimPhi[2]*sizeof(float)); // LLF - Real* LLF = (Real*)malloc(1*sizeof(Real)); + float* LLF = (float*)malloc(1*sizeof(float)); ////////////////////////// // Main call to EMGrank // @@ -77,13 +77,13 @@ int main(int argc, char** argv) free(rank); // Compare to reference outputs - Real* ref_phi = readArray_real("phi",dimPhi, 3); + float* ref_phi = readArray_real("phi",dimPhi, 3); compareArray_real("phi", phi, ref_phi, dimPhi[0]*dimPhi[1]*dimPhi[2]); free(phi); free(ref_phi); // LLF - Real* ref_LLF = readArray_real("LLF",&lengthOne,1); + float* ref_LLF = readArray_real("LLF",&lengthOne,1); compareArray_real("LLF", LLF, ref_LLF, 1); free(LLF); free(ref_LLF); diff --git a/src/test/test.constructionModelesLassoRank.c b/src/test/test.constructionModelesLassoRank.c index 2232e9e..1060e20 100644 --- a/src/test/test.constructionModelesLassoRank.c +++ b/src/test/test.constructionModelesLassoRank.c @@ -4,63 +4,63 @@ int main(int argc, char** argv) { // read dimensions - const Int nbDims = 5; - Int* dimensions = readArray_int("dimensions",&nbDims,1); - mwSize n = dimensions[0]; - mwSize p = dimensions[1]; - mwSize m = dimensions[2]; - mwSize k = dimensions[3]; - mwSize L = dimensions[4]; + const int nbDims = 5; + int* dimensions = readArray_int("dimensions",&nbDims,1); + int n = dimensions[0]; + int p = dimensions[1]; + int m = dimensions[2]; + int k = dimensions[3]; + int L = dimensions[4]; free(dimensions); - mwSize lengthOne = 1; + int lengthOne = 1; //////////// // INPUTS // //////////// // piInit - const mwSize dimPi[] = {k, L}; - Real* Pi = readArray_real("Pi",dimPi,2); + const int dimPi[] = {k, L}; + float* Pi = readArray_real("Pi",dimPi,2); // rhoInit - const mwSize dimRho[] = {m, m, k, L}; - Real* Rho = readArray_real("Rho",dimRho,4); + const int dimRho[] = {m, m, k, L}; + float* Rho = readArray_real("Rho",dimRho,4); // min number of iterations - Int* pmini = readArray_int("mini",&lengthOne,1); - Int mini = *pmini; + int* pmini = readArray_int("mini",&lengthOne,1); + int mini = *pmini; free(pmini); // max number of iterations - Int* pmaxi = readArray_int("maxi",&lengthOne,1); - Int maxi = *pmaxi; + int* pmaxi = readArray_int("maxi",&lengthOne,1); + int maxi = *pmaxi; free(pmaxi); // X - const mwSize dimX[] = {n, p}; - Real* X = readArray_real("X",dimX,2); + const int dimX[] = {n, p}; + float* X = readArray_real("X",dimX,2); // Y - const mwSize dimY[] = {n, m}; - Real* Y = readArray_real("Y",dimY,2); + const int dimY[] = {n, m}; + float* Y = readArray_real("Y",dimY,2); // tau - Real* ptau = readArray_real("tau",&lengthOne,1); - Real tau = *ptau; + float* ptau = readArray_real("tau",&lengthOne,1); + float tau = *ptau; free(ptau); // A1 - const mwSize dimA[] = {p, L}; - Int* A1 = readArray_int("A1",dimA,2); + const int dimA[] = {p, L}; + int* A1 = readArray_int("A1",dimA,2); // rangmin - Int* prangmin = readArray_int("rangmin",&lengthOne,1); - Int rangmin = *prangmin; + int* prangmin = readArray_int("rangmin",&lengthOne,1); + int rangmin = *prangmin; free(prangmin); // rangmax - Int* prangmax = readArray_int("rangmax",&lengthOne,1); - Int rangmax = *prangmax; + int* prangmax = readArray_int("rangmax",&lengthOne,1); + int rangmax = *prangmax; free(prangmax); ///////////// @@ -68,13 +68,13 @@ int main(int argc, char** argv) ///////////// // phi - mwSize Size = (mwSize)pow(rangmax-rangmin+1, k); - const mwSize dimPhi[] = {p, m, k, L*Size}; - Real* phi = (Real*)malloc(dimPhi[0]*dimPhi[1]*dimPhi[2]*dimPhi[3]*sizeof(Real)); + int Size = (int)pow(rangmax-rangmin+1, k); + const int dimPhi[] = {p, m, k, L*Size}; + float* phi = (float*)malloc(dimPhi[0]*dimPhi[1]*dimPhi[2]*dimPhi[3]*sizeof(float)); // lvraisemblance - const mwSize dimLvraisemblance[] = {L*Size, 2}; - Real* lvraisemblance = (Real*)malloc(dimLvraisemblance[0]*dimLvraisemblance[1]*sizeof(Real)); + const int dimLvraisemblance[] = {L*Size, 2}; + float* lvraisemblance = (float*)malloc(dimLvraisemblance[0]*dimLvraisemblance[1]*sizeof(float)); ////////////////////////////////////////////// // Main call to constructionModelesLassoMLE // @@ -92,13 +92,13 @@ int main(int argc, char** argv) free(A1); // Compare to reference outputs - Real* ref_phi = readArray_real("phi",dimPhi, 4); + float* ref_phi = readArray_real("phi",dimPhi, 4); compareArray_real("phi", phi, ref_phi, dimPhi[0]*dimPhi[1]*dimPhi[2]*dimPhi[3]); free(phi); free(ref_phi); // lvraisemblance - Real* ref_lvraisemblance = readArray_real("lvraisemblance",dimLvraisemblance,2); + float* ref_lvraisemblance = readArray_real("lvraisemblance",dimLvraisemblance,2); compareArray_real("lvraisemblance", lvraisemblance, ref_lvraisemblance, dimLvraisemblance[0]*dimLvraisemblance[1]); free(lvraisemblance); free(ref_lvraisemblance); diff --git a/src/test/test.selectiontotale.c b/src/test/test.selectiontotale.c index 45cb461..ebfdf19 100644 --- a/src/test/test.selectiontotale.c +++ b/src/test/test.selectiontotale.c @@ -1,72 +1,72 @@ #include "selectiontotale.h" #include "ioutils.h" -mwSize main(mwSize argc, char** argv) +int main(int argc, char** argv) { // read dimensions - const Int nbDims = 5; - Int* dimensions = readArray_int("dimensions",&nbDims,1); - mwSize n = dimensions[0]; - mwSize p = dimensions[1]; - mwSize m = dimensions[2]; - mwSize k = dimensions[3]; - mwSize L = dimensions[4]; + const int nbDims = 5; + int* dimensions = readArray_int("dimensions",&nbDims,1); + int n = dimensions[0]; + int p = dimensions[1]; + int m = dimensions[2]; + int k = dimensions[3]; + int L = dimensions[4]; free(dimensions); - mwSize lengthOne = 1; + int lengthOne = 1; //////////// // INPUTS // //////////// // phiInit - const mwSize dimPhiInit[] = {p, m, k}; - Real* phiInit = readArray_real("phiInit",dimPhiInit,3); + const int dimPhiInit[] = {p, m, k}; + float* phiInit = readArray_real("phiInit",dimPhiInit,3); // rhoInit - const mwSize dimRhoInit[] = {m, m, k}; - Real* rhoInit = readArray_real("rhoInit",dimRhoInit,3); + const int dimRhoInit[] = {m, m, k}; + float* rhoInit = readArray_real("rhoInit",dimRhoInit,3); // piInit - Real* piInit = readArray_real("piInit",&k,1); + float* piInit = readArray_real("piInit",&k,1); // gamInit - const mwSize dimGamInit[] = {n, k}; - Real* gamInit = readArray_real("gamInit",dimGamInit, 2); + const int dimGamInit[] = {n, k}; + float* gamInit = readArray_real("gamInit",dimGamInit, 2); // min number of iterations - Int* pmini = readArray_int("mini",&lengthOne,1); - Int mini = *pmini; + int* pmini = readArray_int("mini",&lengthOne,1); + int mini = *pmini; free(pmini); // max number of iterations - Int* pmaxi = readArray_int("maxi",&lengthOne,1); - Int maxi = *pmaxi; + int* pmaxi = readArray_int("maxi",&lengthOne,1); + int maxi = *pmaxi; free(pmaxi); // gamma - Real* pgamma = readArray_real("gamma",&lengthOne,1); - Real gamma = *pgamma; + float* pgamma = readArray_real("gamma",&lengthOne,1); + float gamma = *pgamma; free(pgamma); // lambda - Real* glambda = readArray_real("glambda",&L,1); + float* glambda = readArray_real("glambda",&L,1); // X - const mwSize dimX[] = {n, p}; - Real* X = readArray_real("X",dimX,2); + const int dimX[] = {n, p}; + float* X = readArray_real("X",dimX,2); // Y - const mwSize dimY[] = {n, m}; - Real* Y = readArray_real("Y",dimY,2); + const int dimY[] = {n, m}; + float* Y = readArray_real("Y",dimY,2); // seuil - Real* pseuil = readArray_real("seuil",&lengthOne,1); - Real seuil = *pseuil; + float* pseuil = readArray_real("seuil",&lengthOne,1); + float seuil = *pseuil; free(pseuil); // tau - Real* ptau = readArray_real("tau",&lengthOne,1); - Real tau = *ptau; + float* ptau = readArray_real("tau",&lengthOne,1); + float tau = *ptau; free(ptau); ///////////// @@ -74,19 +74,19 @@ mwSize main(mwSize argc, char** argv) ///////////// // A1 - const mwSize dimA[] = {p, m+1, L}; - Int* A1 = (Int*)malloc(dimA[0]*dimA[1]*dimA[2]*sizeof(Int)); + const int dimA[] = {p, m+1, L}; + int* A1 = (int*)malloc(dimA[0]*dimA[1]*dimA[2]*sizeof(int)); // A2 - Int* A2 = (Int*)malloc(dimA[0]*dimA[1]*dimA[2]*sizeof(Int)); + int* A2 = (int*)malloc(dimA[0]*dimA[1]*dimA[2]*sizeof(int)); // rho - const mwSize dimRho[] = {m, m, k, L}; - Real* Rho = (Real*)malloc(dimRho[0]*dimRho[1]*dimRho[2]*dimRho[3]*sizeof(Real)); + const int dimRho[] = {m, m, k, L}; + float* Rho = (float*)malloc(dimRho[0]*dimRho[1]*dimRho[2]*dimRho[3]*sizeof(float)); // pi - const mwSize dimPi[] = {k, L}; - Real* Pi = (Real*)malloc(dimPi[0]*dimPi[1]*sizeof(Real)); + const int dimPi[] = {k, L}; + float* Pi = (float*)malloc(dimPi[0]*dimPi[1]*sizeof(float)); ////////////////////////////////////////////// // Main call to constructionModelesLassoMLE // @@ -107,25 +107,25 @@ mwSize main(mwSize argc, char** argv) free(Y); // Compare to reference outputs - Int* ref_A1 = readArray_int("A1",dimA, 3); + int* ref_A1 = readArray_int("A1",dimA, 3); compareArray_int("A1", A1, ref_A1, dimA[0]*dimA[1]*dimA[2]); free(A1); free(ref_A1); // A2 - Int* ref_A2 = readArray_int("A2",dimA, 3); + int* ref_A2 = readArray_int("A2",dimA, 3); compareArray_int("A2", A2, ref_A2, dimA[0]*dimA[1]*dimA[2]); free(A2); free(ref_A2); // Rho - Real* ref_Rho = readArray_real("Rho",dimRho, 4); + float* ref_Rho = readArray_real("Rho",dimRho, 4); compareArray_real("Rho", Rho, ref_Rho, dimRho[0]*dimRho[1]*dimRho[2]*dimRho[3]); free(Rho); free(ref_Rho); // Pi - Real* ref_Pi = readArray_real("Pi",dimPi, 2); + float* ref_Pi = readArray_real("Pi",dimPi, 2); compareArray_real("Pi", Pi, ref_Pi, dimPi[0]*dimPi[1]); free(Pi); free(ref_Pi); diff --git a/src/test/utils.c b/src/test/utils.c index 7cdf740..8895cda 100644 --- a/src/test/utils.c +++ b/src/test/utils.c @@ -1,15 +1,15 @@ // Check if array == refArray void compareArray(const char* ID, const void* array, const void* refArray, int size, - int isInteger) + int isinteger) { - Real EPS = 1e-5; //precision + float EPS = 1e-5; //precision printf("Checking %s\n",ID); - Real maxError = 0.0; - for (mwSize i=0; i= maxError) maxError = error; } @@ -30,52 +30,77 @@ void compareArray_int(const char* ID, const void* array, const void* refArray, i } // Read array by columns (as in MATLAB) and return by-rows encoding -void* readArray(const char* fileName, int isInteger) +void* readArray(const char* fileName, int isinteger) { // need to prepend '../data/' (not really nice code...) - char* fullFileName = (char*)calloc(5+strlen(fileName)+1,sizeof(char)); + char* fullFileName = (char*)calloc(5+strlen(fileName)+1, sizeof(char)); strcat(fullFileName, "data/"); strcat(fullFileName, fileName); - FILE* file = fopen(fullFileName, "r"); - free(fullFileName); // first pass to know how many elements to allocate - // /////................... TODO + char* command = (char*)calloc(12+strlen(fullFileName)+8+1, sizeof(char)); + strcat(command, "grep -o ' ' "); + strcat(command, fullFileName); + strcat(command, " | wc -l"); + FILE *countSpaces = popen(command, "r"); + char* buffer = (char*)calloc(32, sizeof(char)); + fgets(buffer, sizeof(buffer), command); + int n = atoi(buffer) + 1; + free(buffer); + pclose(countSpaces); + + // open file for reading + FILE* file = fopen(fullFileName, "r"); + free(fullFileName); int d = 1; - for (int i=0; i