No BSD License
Highlights from
MATUnit
from
MATUnit
by Timothy Wall
xUnit unit test framework for MATLAB
|
| assertEquals(desc, expected, actual, optTol) |
function assertEquals(desc, expected, actual, optTol)
% Assert two values are equal, raising an error if they are not
% assertEquals(desc, v1, v2) : strict equality
% assertEquals(desc, v1, v2, tol) : specify tolerance
% desc - description of the failure
% expected - expected result
% actual - actual result
% optTol - optional tolerance
tol = 0;
if nargin == 4, tol = optTol; end
lastwarn('');
pass = 0;
if isempty(expected)
pass = isempty(actual);
elseif isempty(actual)
pass = 0;
elseif length(class(expected)) ~= length(class(actual)) ...
| class(expected) ~= class(actual)
pass = 0;
elseif length(expected) ~= length(actual)
pass = 0;
elseif length(size(expected)) ~= length(size(actual)) ...
| size(expected) ~= size(actual)
pass = 0;
else
try
result = abs(expected-actual) > tol;
pass = sum(result(:)) == 0;
catch
lasterr('');
if iscellstr(expected)
pass = strcmp(toString(expected), toString(actual));
elseif ischar(expected)
v1 = char(expected);
v2 = char(actual);
compare = strcmp(v1, v2);
pass = sum(compare(:)) == length(compare);
else
error(sprintf('Compare type "%s" not handled', class(expected)));
end
end
end
if ~pass
msg = sprintf('%s expected:<%s> but was:<%s>', ...
desc, toString(expected), toString(actual));
fail(msg, printstack);
end
function str = toString(obj)
% Format an object for dislpay
str = '';
if isnumeric(obj) | islogical(obj)
str = num2str(obj);
elseif iscellstr(obj)
spc = '';
sz = size(obj);
if sz(1) == length(obj), tr=';'; else tr=''; end
for i = 1:length(obj)
str = [ str spc '''' obj{i} '''' ];
spc = [tr ' '];
end
else
str = char(obj);
end
|
|
Contact us at files@mathworks.com