Mercurial > hg > ltpda
diff m-toolbox/test/test_smodel_eval.m @ 0:f0afece42f48
Import.
author | Daniele Nicolodi <nicolodi@science.unitn.it> |
---|---|
date | Wed, 23 Nov 2011 19:22:13 +0100 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/m-toolbox/test/test_smodel_eval.m Wed Nov 23 19:22:13 2011 +0100 @@ -0,0 +1,89 @@ +% test_smodel_eval tests the eval method of the SMODEL class. +% +% M Hueller 05-05-2011 +% +% $Id: test_smodel_eval.m,v 1.1 2011/05/05 21:04:49 mauro Exp $ +% + +% Build the model +s1 = smodel(plist('expression', 'a + b1*x1 + b2*x2','xvar',{'x1','x2'})); +s1.setXvals({[1:100], [2:2:200]}); +s1.setYunits('N'); +s1.setXunits({'m', 'V'}); +s1.setParameters({'a','b1','b2'},{1,2,-3}); +s1.setName('test'); + +% Eval the model: output x is tsdata ao +a1 = ao(plist('xvals',[1:100],'yvals',[0.01:.01:1], 'type', 'tsdata', 'fs', 1)); +d1 = s1.eval(plist('output x', a1)); +assert(isequal(class(d1.data), class(a1.data))) +assert(isequal(d1.yunits, s1.yunits)) + +% Eval the model: output x is fsdata ao +a1 = ao(plist('xvals',[1:100],'yvals',[0.01:.01:1], 'type', 'fsdata')); +d1 = s1.eval(plist('output x', a1)); +assert(isequal(class(d1.data), class(a1.data))) +assert(isequal(d1.yunits, s1.yunits)) + +% Eval the model: output x is xydata ao +a1 = ao(plist('xvals',[1:100],'yvals',[0.01:.01:1], 'type', 'xydata')); +d1 = s1.eval(plist('output x', a1)); +assert(isequal(class(d1.data), class(a1.data))) +assert(isequal(d1.yunits, s1.yunits)) + +% Eval the model: output x is double array, no data type set +a1 = [2:2:200]; +d1 = s1.eval(plist('output x', a1)); +assert(isequal(class(d1.data), 'tsdata')) +assert(isequal(d1.yunits, s1.yunits)) + +% Eval the model: output x is double array, data type set to 'tsdata' +a1 = [2:2:200]; +d1 = s1.eval(plist('output x', a1, 'output type', 'tsdata')); +assert(isequal(class(d1.data), 'tsdata')) +assert(isequal(d1.yunits, s1.yunits)) + +% Eval the model: output x is double array, data type set to 'fsdata' +a1 = [2:2:200]; +d1 = s1.eval(plist('output x', a1, 'output type', 'fsdata')); +assert(isequal(class(d1.data), 'fsdata')) +assert(isequal(d1.yunits, s1.yunits)) + +% Eval the model: output x is double array, data type set to 'xydata' +a1 = [2:2:200]; +d1 = s1.eval(plist('output x', a1, 'output type', 'xydata')); +assert(isequal(class(d1.data), 'xydata')) +assert(isequal(d1.yunits, s1.yunits)) + +% Eval the model: output x is double array, no data type set, output xunits set +a1 = [2:2:200]; +d1 = s1.eval(plist('output x', a1, 'output xunits', 'ms')); +assert(isequal(class(d1.data), 'tsdata')) +assert(isequal(d1.yunits, s1.yunits)) +assert(isequal(d1.xunits, unit('ms'))) + +% Eval the model: output x is double array, data type set to 'tsdata', output xunits set +a1 = [2:2:200]; +d1 = s1.eval(plist('output x', a1, 'output type', 'tsdata', 'output xunits', 'ms')); +assert(isequal(class(d1.data), 'tsdata')) +assert(isequal(d1.yunits, s1.yunits)) +assert(isequal(d1.xunits, unit('ms'))) + +% Eval the model: output x is double array, data type set to 'fsdata', output xunits set +a1 = [2:2:200]; +d1 = s1.eval(plist('output x', a1, 'output type', 'fsdata', 'output xunits', 'ms')); +assert(isequal(class(d1.data), 'fsdata')) +assert(isequal(d1.yunits, s1.yunits)) +assert(isequal(d1.xunits, unit('ms'))) + +% Eval the model: output x is double array, data type set to 'xydata', output xunits set +a1 = [2:2:200]; +d1 = s1.eval(plist('output x', a1, 'output type', 'xydata', 'output xunits', 'ms')); +assert(isequal(class(d1.data), 'xydata')) +assert(isequal(d1.yunits, s1.yunits)) +assert(isequal(d1.xunits, unit('ms'))) + +% Eval the model: output x is left empty, data type should be ignored and always cdata +d1 = s1.eval(); +assert(isequal(class(d1.data), 'cdata')) +assert(isequal(d1.yunits, s1.yunits))