| 1 | function[] = testEMGLLF() |
| 2 | |
| 3 | testFolder = 'data/'; |
| 4 | delimiter = '\n'; |
| 5 | |
| 6 | %get dimensions |
| 7 | dimensions = dlmread(strcat(testFolder,'dimensions'), delimiter); |
| 8 | n = dimensions(1); |
| 9 | p = dimensions(2); |
| 10 | m = dimensions(3); |
| 11 | k = dimensions(4); |
| 12 | |
| 13 | %get all input arrays |
| 14 | phiInit = reshape(dlmread(strcat(testFolder,'phiInit'), delimiter), p, m, k); |
| 15 | rhoInit = reshape(dlmread(strcat(testFolder,'rhoInit'), delimiter), m, m, k); |
| 16 | piInit = transpose(dlmread(strcat(testFolder,'piInit'), delimiter)); |
| 17 | gamInit = reshape(dlmread(strcat(testFolder,'gamInit'), delimiter), n, k); |
| 18 | mini = int64(dlmread(strcat(testFolder,'mini'), delimiter)); |
| 19 | maxi = int64(dlmread(strcat(testFolder,'maxi'), delimiter)); |
| 20 | gamma = dlmread(strcat(testFolder,'gamma'), delimiter); |
| 21 | lambda = dlmread(strcat(testFolder,'lambda'), delimiter); |
| 22 | X = reshape(dlmread(strcat(testFolder,'X'), delimiter), n, p); |
| 23 | Y = reshape(dlmread(strcat(testFolder,'Y'), delimiter), n, m); |
| 24 | tau = dlmread(strcat(testFolder,'tau'), delimiter); |
| 25 | |
| 26 | %run EMGLLF.m |
| 27 | [phi,rho,pi,LLF,S] = EMGLLF(phiInit,rhoInit,piInit,gamInit,mini,maxi,gamma,lambda,X,Y,tau); |
| 28 | |
| 29 | %get all stored outputs |
| 30 | ref_phi = reshape(dlmread(strcat(testFolder,'phi'), delimiter), p, m, k); |
| 31 | ref_rho = reshape(dlmread(strcat(testFolder,'rho'), delimiter), m, m, k); |
| 32 | ref_pi = dlmread(strcat(testFolder,'pi'), delimiter); |
| 33 | ref_LLF = dlmread(strcat(testFolder,'LLF'), delimiter); |
| 34 | ref_S = reshape(dlmread(strcat(testFolder,'S'), delimiter), p, m, k); |
| 35 | |
| 36 | %check that output correspond to stored output |
| 37 | tol = 1e-5; |
| 38 | checkOutput('phi',phi,ref_phi,tol); |
| 39 | checkOutput('rho',rho,ref_rho,tol); |
| 40 | checkOutput('pi',pi,ref_pi,tol); |
| 41 | checkOutput('LLF',LLF,ref_LLF,tol); |
| 42 | checkOutput('S',S,ref_S,tol); |
| 43 | |
| 44 | end |