changeset 3089:523d3a2ee1b7 octave-forge

Replaced all strcmp(class(*),'function handle') with isa(*,'function_handle') and added a lot of tests for this fundamental function.
author treichl
date Thu, 08 Feb 2007 21:07:28 +0000
parents 0e2343721ba3
children 27ac5cea9fe3
files main/odepkg/inst/odepkg_structure_check.m
diffstat 1 files changed, 91 insertions(+), 12 deletions(-) [+]
line wrap: on
line diff
--- a/main/odepkg/inst/odepkg_structure_check.m	Thu Feb 08 16:27:57 2007 +0000
+++ b/main/odepkg/inst/odepkg_structure_check.m	Thu Feb 08 21:07:28 2007 +0000
@@ -80,13 +80,6 @@
       case 'NonNegative'
         if (isempty (vret.(vint.fld{vcntarg})) == true || ...
             isvector (vret.(vint.fld{vcntarg})) == true)
-%#          for vcounter = 1:length (vret.(vint.fld{vcntarg}))
-%#            if (isbool (int8 (vret.(vint.fld{vcntarg})(vcounter))) == false)
-%#              vmsg = sprintf ('Unknown parameter "%s" or invalid parameter value "%s"', ...
-%#                vint.fld{vcntarg}, char (vret.(vint.fld{vcntarg})));
-%#              error (vmsg);
-%#            end
-%#          end
         else
           vmsg = sprintf ('Unknown parameter "%s" or invalid parameter value "%s"\n', ...
             vint.fld{vcntarg}, char (vret.(vint.fld{vcntarg})));
@@ -154,7 +147,6 @@
       case 'Events'
         if (isempty (vret.(vint.fld{vcntarg})) == true || ...
             isa (vret.(vint.fld{vcntarg}), 'function_handle') == true)
-          %# strcmp ('function handle', strrep (class (vret.(vint.fld{vcntarg})), '_', ' ')) == true)
         else
           vmsg = sprintf ('Unknown parameter "%s" or invalid parameter value "%s"\n', ...
             vint.fld{vcntarg}, char (vret.(vint.fld{vcntarg})));
@@ -164,7 +156,7 @@
       case 'Jacobian'
         if (isempty (vret.(vint.fld{vcntarg})) == true || ...
             ismatrix (vret.(vint.fld{vcntarg})) == true || ...
-            strcmp ('function handle', strrep (class (vret.(vint.fld{vcntarg})), '_', ' ')) == true)
+            isa (vret.(vint.fld{vcntarg}), 'function_handle') == true)
         else
           vmsg = sprintf ('Unknown parameter "%s" or invalid parameter value "%s"\n', ...
             vint.fld{vcntarg}, char (vret.(vint.fld{vcntarg})));
@@ -192,7 +184,8 @@
       case 'Mass'
         if (isempty (vret.(vint.fld{vcntarg})) == true || ...
             ismatrix (vret.(vint.fld{vcntarg})) == true || ...
-            strcmp ('function handle', strrep (class (vret.(vint.fld{vcntarg})), '_', ' ')) == true)
+            isa (vret.(vint.fld{vcntarg}), 'function_handle') == true)
+          %# strcmp ('function handle', strrep (class (vret.(vint.fld{vcntarg})), '_', ' ')) == true)
         else
           vmsg = sprintf ('Unknown parameter "%s" or invalid parameter value "%s"\n', ...
             vint.fld{vcntarg}, char (vret.(vint.fld{vcntarg})));
@@ -268,8 +261,94 @@
   %#   error (vmsg);
   %# end
 
-%!test odepkg_structure_check (odeset);
-%!test A = odeset (); odepkg_structure_check (A);
+%!test  A = odeset ('RelTol', 1e-4);         %# odeset calls odepkg_structure_check
+%!test  A = odeset ('RelTol', [1e-4, 1e-3]); %# after the options have been set
+%!error A = odeset ('RelTol', []);
+%!error A = odeset ('RelTol', '1e-4');
+%!test  A = odeset ('AbsTol', 1e-4);
+%!test  A = odeset ('AbsTol', [1e-4, 1e-3]);
+%!error A = odeset ('AbsTol', []);
+%!error A = odeset ('AbsTol', '1e-4');
+%!test  A = odeset ('NormControl', 'on');
+%!test  A = odeset ('NormControl', 'off');
+%!error A = odeset ('NormControl', []);
+%!error A = odeset ('NormControl', '12');
+%!test  A = odeset ('NonNegative', 1);
+%!test  A = odeset ('NonNegative', [1, 2, 3]);
+%!error A = odeset ('NonNegative', []);
+%!error A = odeset ('NonNegative', '12');
+%!test  A = odeset ('OutputFcn', @odeprint);
+%!test  A = odeset ('OutputFcn', @odeplot);
+%!error A = odeset ('OutputFcn', []);
+%!error A = odeset ('OutputFcn', 'odeprint');
+%!test  A = odeset ('OutputSel', 1);
+%!test  A = odeset ('OutputSel', [1, 2, 3]);
+%!error A = odeset ('OutputSel', []);
+%!error A = odeset ('OutputSel', '12');
+%!test  A = odeset ('Refine', 3);
+%!error A = odeset ('Refine', [1, 2, 3]);
+%!error A = odeset ('Refine', []);
+%!error A = odeset ('Refine', 6);
+%!test  A = odeset ('Stats', 'on');
+%!test  A = odeset ('Stats', 'off');
+%!error A = odeset ('Stats', []);
+%!error A = odeset ('Stats', '12');
+%!test  A = odeset ('InitialStep', 3);
+%!error A = odeset ('InitialStep', [1, 2, 3]);
+%!error A = odeset ('InitialStep', []);
+%!error A = odeset ('InitialStep', 6);
+%!test  A = odeset ('MaxStep', 3);
+%!error A = odeset ('MaxStep', [1, 2, 3]);
+%!error A = odeset ('MaxStep', []);
+%!error A = odeset ('MaxStep', 6);
+%!test  A = odeset ('Events', @demo);
+%!error A = odeset ('Events', 'off');
+%!error A = odeset ('Events', []);
+%!error A = odeset ('Events', '12');
+%!test  A = odeset ('Jacobian', @demo);
+%!test  A = odeset ('Jacobian', [1, 2; 3, 4]);
+%!error A = odeset ('Jacobian', []);
+%!error A = odeset ('Jacobian', '12');
+%#!test  A = odeset ('JPattern', );
+%#!test  A = odeset ('JPattern', );
+%#!error A = odeset ('JPattern', );
+%#!error A = odeset ('JPattern', );
+%!test  A = odeset ('Vectorized', 'on');
+%!test  A = odeset ('Vectorized', 'off');
+%!error A = odeset ('Vectorized', []);
+%!error A = odeset ('Vectorized', '12');
+%!test  A = odeset ('Mass', @demo);
+%!test  A = odeset ('Mass', [1, 2; 3, 4]);
+%!error A = odeset ('Mass', []);
+%!error A = odeset ('Mass', '12');
+%!test  A = odeset ('MStateDependence', 'none');
+%!test  A = odeset ('MStateDependence', 'weak');
+%!test  A = odeset ('MStateDependence', 'strong');
+%!error A = odeset ('MStateDependence', [1, 2; 3, 4]);
+%!error A = odeset ('MStateDependence', []);
+%!error A = odeset ('MStateDependence', '12');
+%#!test  A = odeset ('JPattern', );
+%#!test  A = odeset ('JPattern', );
+%#!error A = odeset ('JPattern', );
+%#!error A = odeset ('JPattern', );
+%!test  A = odeset ('MassSingular', 'yes');
+%!test  A = odeset ('MassSingular', 'no');
+%!test  A = odeset ('MassSingular', 'maybe');
+%!error A = odeset ('MassSingular', [1, 2; 3, 4]);
+%!error A = odeset ('MassSingular', []);
+%!error A = odeset ('MassSingular', '12');
+%!test  A = odeset ('InitialSlope', [1, 2, 3]);
+%!error A = odeset ('InitialSlope', 1);
+%!error A = odeset ('InitialSlope', []);
+%!error A = odeset ('InitialSlope', '12');
+%!test  A = odeset ('MaxOrder', 3);
+%!error A = odeset ('MaxOrder', 3.5);
+%!error A = odeset ('MaxOrder', [1, 2; 3, 4]);
+%!error A = odeset ('MaxOrder', []);
+%!test  A = odeset ('BDF', 'on');
+%!test  A = odeset ('BDF', 'off');
+%!error A = odeset ('BDF', [1, 2; 3, 4]);
+%!error A = odeset ('BDF', []);
 
 %!demo
 %!