X-Git-Url: https://git.auder.net/?p=valse.git;a=blobdiff_plain;f=src%2Ftest%2Ftest.constructionModelesLassoRank.c;h=f60ffea546244e8b2521e9dac17a0ffe42ecc8d1;hp=2232e9e9b2b54e104d1bd49bb03c7438cf33db7f;hb=31ef8a5c9bbaefcf40d2c2bad43b27d469c28c34;hpb=7b2720733e9aebe177c211119a9ec160c7e7117b diff --git a/src/test/test.constructionModelesLassoRank.c b/src/test/test.constructionModelesLassoRank.c index 2232e9e..f60ffea 100644 --- a/src/test/test.constructionModelesLassoRank.c +++ b/src/test/test.constructionModelesLassoRank.c @@ -1,107 +1,63 @@ #include "constructionModelesLassoRank.h" -#include "ioutils.h" +#include "test_utils.h" +#include +#include 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]; + int* dimensions = readArray_int("dimensions"); + 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; //////////// // INPUTS // + Real* pi = readArray_real("pi"); + Real* rho = readArray_real("rho"); + int mini = read_int("mini"); + int maxi = read_int("maxi"); + Real* X = readArray_real("X"); + Real* Y = readArray_real("Y"); + Real tau = read_real("tau"); + int* A1 = readArray_int("A1"); + int rangmin = read_int("rangmin"); + int rangmax = read_int("rangmax"); //////////// - // piInit - const mwSize dimPi[] = {k, L}; - Real* Pi = readArray_real("Pi",dimPi,2); - - // rhoInit - const mwSize dimRho[] = {m, m, k, L}; - Real* Rho = readArray_real("Rho",dimRho,4); - - // min number of iterations - 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; - free(pmaxi); - - // X - const mwSize dimX[] = {n, p}; - Real* X = readArray_real("X",dimX,2); - - // Y - const mwSize dimY[] = {n, m}; - Real* Y = readArray_real("Y",dimY,2); - - // tau - Real* ptau = readArray_real("tau",&lengthOne,1); - Real tau = *ptau; - free(ptau); - - // A1 - const mwSize dimA[] = {p, L}; - Int* A1 = readArray_int("A1",dimA,2); - - // rangmin - Int* prangmin = readArray_int("rangmin",&lengthOne,1); - Int rangmin = *prangmin; - free(prangmin); - - // rangmax - Int* prangmax = readArray_int("rangmax",&lengthOne,1); - Int rangmax = *prangmax; - free(prangmax); - ///////////// // OUTPUTS // + int Size = (int)pow(rangmax-rangmin+1, k); + Real* phi = (Real*)malloc(p*m*k*L*Size*sizeof(Real)); + Real* llh = (Real*)malloc(L*Size*2*sizeof(Real)); ///////////// - // 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)); - - // lvraisemblance - const mwSize dimLvraisemblance[] = {L*Size, 2}; - Real* lvraisemblance = (Real*)malloc(dimLvraisemblance[0]*dimLvraisemblance[1]*sizeof(Real)); - - ////////////////////////////////////////////// - // Main call to constructionModelesLassoMLE // - ////////////////////////////////////////////// - - constructionModelesLassoRank( - Pi,Rho,mini,maxi,X,Y,tau,A1,rangmin,rangmax, - phi,lvraisemblance, + ///////////////////////////////////////// + // Call to constructionModelesLassoMLE // + constructionModelesLassoRank_core( + pi,rho,mini,maxi,X,Y,tau,A1,rangmin,rangmax, + phi,llh, n,p,m,k,L); - - free(Rho); - free(Pi); + ///////////////////////////////////////// + + free(rho); + free(pi); free(X); free(Y); free(A1); - + // Compare to reference outputs - Real* ref_phi = readArray_real("phi",dimPhi, 4); - compareArray_real("phi", phi, ref_phi, dimPhi[0]*dimPhi[1]*dimPhi[2]*dimPhi[3]); + Real* ref_phi = readArray_real("phi"); + compareArray_real("phi", phi, ref_phi, p*m*k*L*Size); free(phi); free(ref_phi); - - // lvraisemblance - Real* ref_lvraisemblance = readArray_real("lvraisemblance",dimLvraisemblance,2); - compareArray_real("lvraisemblance", lvraisemblance, ref_lvraisemblance, dimLvraisemblance[0]*dimLvraisemblance[1]); - free(lvraisemblance); - free(ref_lvraisemblance); - + + Real* ref_llh = readArray_real("llh"); + compareArray_real("llh", llh, ref_llh, L*Size*2); + free(llh); + free(ref_llh); + return 0; }