function varargout = relationalboundaryinfo(varargin)
%RELATIONALBOUNDARYINFO - Coverage information for a model object
%
% COVERAGE = RELATIONALBOUNDARYINFO(DATA, BLOCK) Find decisions
% defined by relational boundary metric for BLOCK within the cvdata coverage object DATA.
% COVERAGE is returned as a 2 element vector: [covered_outcomes total_outcomes].
% If information about BLOCK is not part of DATA then COVERAGE is empty.
%
% The BLOCK parameter that specifies the model object can take
% the following forms:
%
% BlockPath - Full path to a Simulink block or model
% BlockHandle - Simulink block or model handle
% SimulinkObj - Simulink object API handle.
% StateflowID - Stateflow ID (Should be from a singly
% instantiated chart.)
% StateflowObj - Stateflow object API handle. (Should be
% from a singly instantiated chart.)
% {BlockPath, sfID} - Cell array with the path to a Stateflow block
% and the ID of an object contained in that
% chart instance.
% {BlockPath, sfObj} - Path to a Stateflow block and a Stateflow
% object API handle contained in that chart.
% [BlockHandle sfID] - Array with a Stateflow block handle and the
% ID of an object contained in that chart
% instance.
%
% When specifying an S-function block, the BLOCK parameter can take the
% following forms:
%
% {BlockPath, fName} - Cell array with the path to an S-function
% block and the name of a source file.
% {BlockHandle, fName} - Cell array with an S-function block
% handle and the name of a source file.
% {BlockPath, fName, funName} - Cell array with the path to an S-function
% block, the name of a source file and
% a function name.
% {BlockHandle, fName, funName} - Cell array with an S-function block
% handle, the name of a source file and
% a function name.
%
% For coverage data collected during Software-in-the-Loop (SIL) or
% Processor-in-the-Loop (PIL) simulation mode, the BLOCK parameter can take
% the following forms:
%
% {fileName, funName} - Cell array with the name of a source file
% and a function name.
% {Model, fileName} - Cell array with a model name (or model handle)
% and the name of a source file.
% {Model, fileName, funName} - Cell array with a model name (or model handle),
% the name of a source file and a function name.
%
% COVERAGE = RELATIONALBOUNDARYINFO(DATA, BLOCK, IGNORE_DESCENDANTS)
% Find coverage information for BLOCK and ignore the coverage
% in descendant objects if IGNORE_DESCENDANTS is true.
%
% COVERAGE = RELATIONALBOUNDARYINFO(DATA, BLOCK, MODE) Find the coverage
% information for BLOCK and for the simulation mode MODE. The parameter
% MODE can take one of the following character vectors:
%
% 'Normal' - model in Normal simulation mode.
% 'SIL' (or 'PIL') - model in Software-in-the-Loop (SIL)
% (or Processor-in-the-Loop (PIL))
% simulation mode.
% 'ModelRefSIL' (or 'ModelRefPIL') - model reference in Software-in-the-Loop (SIL)
% (or Processor-in-the-Loop (PIL))
% simulation mode.
% 'ModelRefTopSIL' (or 'ModelRefTopPIL') - model reference in Software-in-the-Loop (SIL)
% (or Processor-in-the-Loop (PIL))
% simulation mode with the
% code interface set to 'Top model'.
%
% [COVERAGE, DESCRIPTION] = RELATIONALBOUNDARYINFO(DATA, BLOCK) Find the
% coverage and produce a structured description of the test objectives
% within BLOCK. DESCRIPTION is a structure
% containing textual descriptions of each decision and descriptions
% and execution counts for each outcome within BLOCK.
%
% see also COMPLEXITYINFO, CONDITIONINFO, GETCOVERAGEINFO, DECISIONINFO,
% EXECUTIONINFO, MCDCINFO, OVERFLOWSATURATIONINFO, SIGRANGEINFO,
% SIGSIZEINFO, TABLEINFO.

% Copyright 2013-2016 The MathWorks, Inc.

try
[varargout{1:nargout}] = SlCov.CoverageAPI.getRelationalBoundaryInfo(varargin{1:nargin});
catch Me
throwAsCaller(Me);
end