Mercurial > hg > ltpda
diff testing/utp_1.1/print_utp_results.m @ 44:409a22968d5e default
Add unit tests
author | Daniele Nicolodi <nicolodi@science.unitn.it> |
---|---|
date | Tue, 06 Dec 2011 18:42:11 +0100 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/testing/utp_1.1/print_utp_results.m Tue Dec 06 18:42:11 2011 +0100 @@ -0,0 +1,99 @@ +% PRINT_UTP_RESULTS prints the results structure to a string. +% +% M Hewitson 07-08-08 +% +% $Id: print_utp_results.m,v 1.5 2011/04/17 05:42:54 hewitson Exp $ +% + +function res = print_utp_results(results) + + DISP_ALL = false; + DISP_RUNTIME = true; + DISP_RUNTIME_NUM = 30; + + ntests = numel(results); + apassed = sum([results(:).a]); + spassed = sum([results(:).s]); + + res = ''; + + if DISP_ALL + res = [res sprintf('\n\n')]; + res = [res sprintf('-------------------------------------------------------\n')]; + res = [res sprintf('------------- SUMMARY -------------\n')]; + res = [res sprintf('-------------------------------------------------------\n')]; + res = [res sprintf('-------------------------------------------------------\n')]; + res = [res sprintf('UTP name | Syntax | Algorithm\n')]; + res = [res sprintf('-------------------------------------------------------\n')]; + for aa=1:ntests + str = dispRes(results(aa).fcn, results(aa).s, results(aa).a, results(aa).msg); + res = [res str]; + end + res = [res sprintf('\n\n')]; + end + + if DISP_RUNTIME + + runtime = [0 results(:).runtime]; + d = diff(runtime); + [sorted, idx] = sort(d); + + res = [res sprintf('-------------------------------------------------------\n')]; + res = [res sprintf('------------- RUNTIME -------------\n')]; + res = [res sprintf('-------------------------------------------------------\n')]; + res = [res sprintf('-------------------------------------------------------\n')]; + res = [res sprintf('UTP name | Runtime \n')]; + res = [res sprintf('-------------------------------------------------------\n')]; + for ll = 0:min(DISP_RUNTIME_NUM, length(idx)-1); + currentIdx = idx(end-ll); + str = dispRes(results(currentIdx).fcn, sorted(end-ll), '', ''); + res = [res str]; + end + res = [res sprintf('\n\n')]; + end + + res = [res sprintf('-------------------------------------------------------\n')]; + res = [res sprintf('------------- FAILURES ------------\n')]; + res = [res sprintf('-------------------------------------------------------\n')]; + res = [res sprintf('-------------------------------------------------------\n')]; + res = [res sprintf('UTP name | Syntax | Algorithm\n')]; + res = [res sprintf('-------------------------------------------------------\n')]; + for jj=1:ntests + if results(jj).a==0 || results(jj).s==0 + str = dispRes(results(jj).fcn, results(jj).s, results(jj).a, results(jj).msg); + res = [res str]; + end + end + res = [res sprintf('-------------------------------------------------------\n')]; + res = [res sprintf('\n\n')]; + + % Summary + res = [res sprintf('------------------------------------\n')]; + res = [res sprintf('Total # tests: %d\n', ntests)]; + res = [res sprintf('S tests failed: %d\n', ntests - spassed)]; + res = [res sprintf('A tests failed: %d\n', ntests - apassed)]; + res = [res sprintf('------------------------------------\n')]; +end + +function str = dispRes(fcn, s, a, msg) + if numel(fcn) > 35 + fcn = [fcn(1:31), ' ...']; + end + str = sprintf('%-36s%s %s %s\n', fcn, res2str(s), res2str(a), msg); +end + +function str = res2str(a) + if islogical(a) + if (a) + str = ' pass '; + else + str = '--fail--'; + end + elseif isnumeric(a) + str = sprintf('%8.2f seconds', a); + elseif ischar(a) + str = a; + else + str = ''; + end +end