1; 2; under GNU GPL v3 3; Alain Coulais, 17 july 2017 4; 5; we are not ready for LA_SVD :( 6; 7; ----------------------------------------------------------------- 8; 9pro TEST_NORM_VECTORS, cumul_errors, verbose=verbose, test=test 10; 11nb_errors=0 12; 13; to be extend to other types ? (float, complex ?) 14; 15vector=INDGEN(10) 16norms=FINDGEN(6)/2 17expected=[9.0, 372.72165, 45.0, 23.103502, 16.881943, 14.141151] 18; 19results=FLTARR(N_ELEMENTS(norms)) 20; 21for ii=0, N_ELEMENTS(norms)-1 do begin 22 results[ii]=NORM(vector, lnorm=norms[ii]) 23endfor 24; 25if TOTAL(ABS(expected-results)) GT 1.e-6 then nb_errors++ 26; 27BANNER_FOR_TESTSUITE, 'TEST_NORM_VECTORS', nb_errors, /short, verb=verbose 28; 29ERRORS_CUMUL, cumul_errors, nb_errors 30; 31if KEYWORD_SET(test) then STOP 32; 33end 34; ----------------------------------------------------------------- 35; 36pro TEST_NORM_MATRIX, cumul_errors, verbose=verbose, test=test, type=type 37; 38nb_errors=0 39; 40matrix=DIST(4) 41if KEYWORD_SET(type) then matrix=FIX(matrix, type=type) 42; 43norms=[0,1,2] 44expected=[9.3005631, 9.3005631, 6.84515559] 45; 46results=FLTARR(N_ELEMENTS(norms)) 47; 48for ii=0, N_ELEMENTS(norms)-1 do begin 49 results[ii]=NORM(matrix, lnorm=norms[ii]) 50endfor 51; 52if TOTAL(ABS(expected-results)) GT 1.e-6 then nb_errors++ 53; 54BANNER_FOR_TESTSUITE, 'TEST_NORM_MATRIX', nb_errors, /short, verb=verbose 55; 56ERRORS_CUMUL, cumul_errors, nb_errors 57; 58if KEYWORD_SET(test) then STOP 59; 60end 61; 62; ----------------------------------------------------------------- 63; 64pro TEST_NORM, help=help, verbose=verbose, no_exit=no_exit, test=test 65; 66if KEYWORD_SET(help) then begin 67 print, 'pro TEST_NORM, help=help, verbose=verbose, $' 68 print, ' no_exit=no_exit, test=test' 69 return 70endif 71; 72; do we need to add tests for other types in "vectors" ? 73; e.g. : a=dist(4) & print, norm(a^25L, lnorm=1,/dou) 74; 75TEST_NORM_VECTORS, nb_errors 76; 77; same question ! 78TEST_NORM_MATRIX, nb_errors 79TEST_NORM_MATRIX, nb_errors, type=5 80a=EXECUTE("TEST_NORM_MATRIX, nb_errors, type=6") 81; 82; ----------------- final message ---------- 83; 84BANNER_FOR_TESTSUITE, 'TEST_NORM', nb_errors 85; 86if (nb_errors GT 0) AND ~KEYWORD_SET(no_exit) then EXIT, status=1 87; 88if KEYWORD_SET(test) then STOP 89; 90end 91