📄 unit_test.m
字号:
function result = unit_test(title, expect_pass, testcode)% UNIT_TEST Test whether a code executes as expected%% unit_test('eq', 1, '1==1') results in a pass% unit_test('eq', 0, '0==1') results in an expected failure% unit_test('eq', 1, '0==1') results in an unexpected failure% unit_test('eq', 0, '1==1') results in an unexpected pass% Inspired by Paul Kienzle's and Stefan van der Walt's octave unit tests% $Id: unit_test.m 31 2004-07-28 10:46:46Z mairas $global unitres;%% Sanity check input parametersif nargin < 3 | nargin > 4 error('Function unit_test expects 3 or 4 parameters.');endif ~isstr(title) error('Expecting title (arg 1) to be a string.');endif ~isstr(testcode) error('Expecting testcode (arg 3) to be a string.');endif (expect_pass ~= 0 & expect_pass ~= 1) error('Expecting expect_pass (arg 2) to be 0 or 1.');endunitres.total = unitres.total + 1;pass=0;try foo=evalin('caller',[testcode ';']); pass=(all(all(foo))==1);catch disp(lasterr); pass=0;endif expect_pass & pass unitres.pass = unitres.pass + 1; disp([title ' ok']);elseif expect_pass & ~pass unitres.fail = unitres.fail + 1; disp([title ' FAIL']);elseif ~expect_pass & pass unitres.upass = unitres.upass + 1;elseif ~expect_pass & ~pass disp([title ' UPASS']); unitres.efail = unitres.efail + 1; disp([title ' ok']);end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -