Code covered by the BSD License

MATLAB xUnit Test Framework

Steve Eddins (view profile)

31 Jan 2009 (Updated )

MATLAB xUnit is a unit test framework for MATLAB code.

Editor's Notes:

This file was selected as MATLAB Central Pick of the Week

xunit.utils.parseFloatAssertInputs(varargin)
```function params = parseFloatAssertInputs(varargin)
%parseFloatAssertInputs Parse inputs for floating-point assertion functions.
%   params = parseFloatAssertInputs(varargin) parses the input arguments for
%   assertElementsAlmostEqual, assertVectorsAlmostEqual, and compareFcn. It
%   returns a parameter struct containing the fields:
%
%       A    B    Message    ToleranceType    Tolerance    FloorTolerance

%   Steven L. Eddins
%   Copyright 2008-2009 The MathWorks, Inc.

error(nargchk(2, 6, nargin, 'struct'));

params = struct('A', {[]}, 'B', {[]}, 'ToleranceType', {[]}, ...
'Tolerance', {[]}, 'FloorTolerance', {[]}, 'Message', {''});

% The first two input arguments are always A and B.
params.A = varargin{1};
params.B = varargin{2};
varargin(1:2) = [];

% If the last argument is a message string, process it and remove it from the list.
if (numel(varargin) >= 1) && ischar(varargin{end}) && ...
~any(strcmp(varargin{end}, {'relative', 'absolute'}))
params.Message = varargin{end};
varargin(end) = [];
else
params.Message = '';
end

try
epsilon = max(eps(class(params.A)), eps(class(params.B)));
catch
epsilon = eps;
end

if numel(varargin) < 3
% floor_tol not specified; set default.
params.FloorTolerance = sqrt(epsilon);
else
params.FloorTolerance = varargin{3};
end

if numel(varargin) < 2
% tol not specified; set default.
params.Tolerance = sqrt(epsilon);
else
params.Tolerance = varargin{2};
end

if numel(varargin) < 1
% tol_type not specified; set default.
params.ToleranceType = 'relative';
else
params.ToleranceType = varargin{1};
end
```

Contact us