changeset 18621:5cf9a02732b6

Issue warning when '*' flag used with interp2,3,n.m (bug #41459). interp2.m, interp3.m, interpn.m: Check for '*' flag to method. Remove if found and issue a warning. Add %!warning test for behavior.
author Rik <rik@octave.org>
date Sat, 22 Mar 2014 14:31:22 -0700
parents 3985333e13fa
children 5032ac119d52
files scripts/general/interp2.m scripts/general/interp3.m scripts/general/interpn.m
diffstat 3 files changed, 23 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/scripts/general/interp2.m	Sat Mar 22 13:41:41 2014 -0700
+++ b/scripts/general/interp2.m	Sat Mar 22 14:31:22 2014 -0700
@@ -152,6 +152,11 @@
     error ("interp2: EXTRAPVAL must be a scalar");
   endif
 
+  if (method(1) == "*")
+    warning ("interp2: ignoring unsupported '*' flag to METHOD");
+    method(1) = [];
+  endif
+
   ## Define X, Y, XI, YI if needed
   [zr, zc] = size (Z);
   if (isempty (X))
@@ -630,3 +635,6 @@
 %!assert (interp2 (z, [2 3 1], [2 2 2], "cubic"), [5 7 3], 10 * tol)
 %!assert (interp2 (z, [2 3 1], [2 2 2], "spline"), [5 7 3], tol)
 
+%% Test input validation
+%!warning <ignoring unsupported '\*' flag> interp2 (rand (3,3), 1, "*linear");
+
--- a/scripts/general/interp3.m	Sat Mar 22 13:41:41 2014 -0700
+++ b/scripts/general/interp3.m	Sat Mar 22 14:31:22 2014 -0700
@@ -85,6 +85,11 @@
     nargs = nargs - 2;
   endif
 
+  if (method(1) == "*")
+    warning ("interp3: ignoring unsupported '*' flag to METHOD");
+    method(1) = [];
+  endif
+
   if (nargs < 3 || (nargs == 4 && ! isvector (varargin{1})
                     && nargs == (ndims (varargin{1}) + 1)))
     v = varargin{1};
@@ -199,3 +204,5 @@
 %!assert (interp3 (z, "linear"), zout, tol)
 %!assert (interp3 (z, "spline"), zout, tol)
 
+%% Test input validation
+%!warning <ignoring unsupported '\*' flag> interp3 (rand (3,3,3), 1, "*linear");
--- a/scripts/general/interpn.m	Sat Mar 22 13:41:41 2014 -0700
+++ b/scripts/general/interpn.m	Sat Mar 22 14:31:22 2014 -0700
@@ -86,6 +86,11 @@
     nargs -= 2;
   endif
 
+  if (method(1) == "*")
+    warning ("interpn: ignoring unsupported '*' flag to METHOD");
+    method(1) = [];
+  endif
+
   if (nargs < 3)
     v = varargin{1};
     m = 1;
@@ -318,3 +323,6 @@
 %! assert (interpn (z, "linear"), zout, tol);
 %! assert (interpn (z, "spline"), zout, tol);
 
+%% Test input validation
+%!warning <ignoring unsupported '\*' flag> interpn (rand (3,3), 1, "*linear");
+