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))