% UTP_SSM_ADDPARAMETERS a set of UTPs for the ssm/addParameters method
%
% M Hewitson 06-08-08
%
% $Id: utp_ssm_addParameters.m,v 1.1 2009/08/06 16:56:25 hewitson Exp $
%

% <MethodDescription>
%
% The addParameters method of the ssm class adds the given parameters to
% the model.
%
% </MethodDescription>

function results = utp_ssm_addParameters(varargin)

  % Check the inputs
  if nargin == 0

    % Some keywords
    class   = 'ssm';
    mthd    = 'addParameters';

    results = [];
    disp('******************************************************');
    disp(['****  Running UTPs for ' class '/' mthd]);
    disp('******************************************************');

    % Test miir objects
    [sys1, sys2] = get_test_objects_ssm;

    % Exception list for the UTPs:
    [ple1,ple2,ple3,ple4,ple5,ple6] = get_test_ples();

    % Run the tests
    results = [results utp_02(mthd, [sys1 sys2], @algo_test_plist, plist('prop', 2), ple2)]; 
    results = [results utp_03(mthd, [sys1 sys2 sys1; sys2 sys2 sys1], @algo_test_plist, plist('prop', 2), ple2)]; 
    results = [results utp_04(mthd, sys1, sys2, sys1, @algo_test_plist, plist('prop', 2), ple2)]; 
    results = [results utp_04(mthd, sys1, sys2, sys1, @algo_test_param, param('prop', 2), ple2)]; 
    results = [results utp_05(mthd, sys1, [sys1 sys2 sys1; sys2 sys2 sys1], [sys2 sys1], @algo_test_plist, plist('prop', 2), ple2)]; 
    results = [results utp_06(mthd, sys1, plist('prop', 2), ple2)]; 

    disp('Done.');
    disp('******************************************************');

  elseif nargin == 1 % Check for UTP functions
    if strcmp(varargin{1}, 'isutp')
      results = 1;
    else
      results = 0;
    end
  else
    error('### Incorrect inputs')
  end
  
end

function atest = algo_test_plist(in, out, pli)
  
  atest = true;
  if ~eq(out.params.find(pli.params(1).key), pli.params(1).getVal), atest = false; end

end


function atest = algo_test_param(in, out, pli)
  
  atest = true;
  if ~eq(out.params.find(pli(1).key), pli(1).getVal), atest = false; end

end
