Mercurial > hg > ltpda
diff testing/utp_1.1/generic_utps/utp_generic_aop_negative_tests.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/generic_utps/utp_generic_aop_negative_tests.m Tue Dec 06 18:42:11 2011 +0100 @@ -0,0 +1,132 @@ + +% <TestDescription> +% +% Tests all arithmetic operations which are not allowed. +% +% </TestDescription> +function result = utp_generic_aop_negative_tests(fcn) + + % <SyntaxDescription> + % + % Tests all arithmetic operations which are not allowed. + % + % </SyntaxDescription> + + % Test AOs + % tsdata + n = 12; + fs = 12.1; + x = 0:(1/fs):(n/fs)-1/fs; + a_ts = ao(x,randn(n,1), fs); + a_ts.setDx(ones(n,1)*1.1); + a_ts.setDy((1:n)*2.2); + a_ts.setYunits('Hz^(-1/2) V^2'); + a_ts.setName(); + + b_ts = ao(x,randn(n,1), fs); + b_ts.setDx(7); + b_ts.setDy(9); + b_ts.setYunits('Hz^(-1/2) V^2'); + b_ts.setName(); + + % fsdata + a_fs = ao(plist('xvals', 1:n, 'yvals', abs(randn(n,1)), 'type', 'fsdata')); + a_fs.setDx(ones(n,1)*1.1); + a_fs.setDy((1:n)*2.2); + a_fs.setName(); + + b_fs = ao(plist('xvals', 1:n, 'yvals', abs(randn(n,1)), 'type', 'fsdata')); + b_fs.setDx(7); + b_fs.setDy(9); + b_fs.setName(); + + % xydata + a_xy = ao(plist('xvals', 1:n, 'yvals', abs(randn(n,1)), 'type', 'xydata')); + a_xy.setDx(ones(n,1)*1.1); + a_xy.setDy((1:n)*2.2); + a_xy.setYunits('Hz^(-1/2) V^2'); + a_xy.setName(); + + b_xy = ao(plist('xvals', 1:n, 'yvals', abs(randn(n,1)), 'type', 'xydata')); + b_xy.setDx(7); + b_xy.setDy(9); + b_xy.setName(); + + % cdata + a_c = ao(8); + a_c.setDy(2); + a_c.setName(); + + b_c = ao(111:122); + b_c.setDy((111:122)/100); + b_c.setName(); + + % Define check functions + + result = []; + + % <AlgoDescription> + % + % Here we test some negative cases. + % + % </AlgoDescription> + + + % <AlgoCode> + % tsdata <-> fsdata + result = [result utp_generic_aop_negative_core(fcn, 'negative test', 'fsdata and tsdata', a_fs, b_ts)]; + result = [result utp_generic_aop_negative_core(fcn, 'negative test', 'tsdata and fsdata', a_ts, b_fs)]; + + % AO with no data field + result = [result utp_generic_aop_negative_core(fcn, 'negative test', 'AO no data and tsdata', [a_ts, ao(), b_ts], b_ts)]; + result = [result utp_generic_aop_negative_core(fcn, 'negative test', 'tsdata and AO no data', b_ts, [a_ts, ao(), b_ts])]; + +% % fsdata wrong fs +% a = a_fs.setFs(8); +% b = b_fs.setFs(9); +% result = [result utp_generic_aop_negative_core(fcn, 'negative test', a, b)]; + + % tsdata wrong fs + a = a_ts.setFs(8); + b = b_ts.setFs(9); + result = [result utp_generic_aop_negative_core(fcn, 'negative test', 'different fs in tsdata', a, b)]; + + % plus, minus wrong x-units + if any(strcmpi(func2str(fcn), {'plus', 'minus'})) + a = a_ts.setXunits('m'); + b = b_ts.setXunits('Hz'); + result = [result utp_generic_aop_negative_core(fcn, 'negative test', 'different x units in tsdata', a, b)]; + end + + % fsdata wrong x-base + a = a_fs.setX(1:12); + b = b_fs.setX(2:13); + result = [result utp_generic_aop_negative_core(fcn, 'negative test', 'different x values in fsdata', a, b)]; + % </AlgoCode> + + % only one input + try + o = fcn(a_ts); + stest = false; + catch + stest = true; + end + dbs = dbstack; + dbs(1).name = sprintf('%s(negative test)', mfilename); + result = [result utp_prepare_result(stest, stest, dbs, mfilename)]; + + % modifier call + try + fcn(a_ts); + stest = false; + catch + stest = true; + end + dbs = dbstack; + dbs(1).name = sprintf('%s(negative test)', mfilename); + result = [result utp_prepare_result(stest, stest, dbs, mfilename)]; + +end % END UTP_negative_tests + + +