changeset 12604:132c89bb44e3

maint: Refactor general/isXXX.m scripts to put input validation first. * general/isdir.m, general/isequal.m, general/isequalwithequalnans.m, general/isscalar.m, general/issquare.m, general/isvector.m: Refactor code to put input validation first. * general/iscolumn.m, general/isrow.m : Remove useless initialization of output variable. * general/isa.m: Add additional tests for various classes.
author Rik <octave@nomad.inbox5.com>
date Wed, 13 Apr 2011 09:32:10 -0700
parents 114ccc6da959
children 3047363c376d
files scripts/ChangeLog scripts/general/isa.m scripts/general/iscolumn.m scripts/general/isdir.m scripts/general/isequal.m scripts/general/isequalwithequalnans.m scripts/general/isrow.m scripts/general/isscalar.m scripts/general/issquare.m scripts/general/isvector.m
diffstat 10 files changed, 64 insertions(+), 46 deletions(-) [+]
line wrap: on
line diff
--- a/scripts/ChangeLog	Wed Apr 13 09:22:38 2011 -0700
+++ b/scripts/ChangeLog	Wed Apr 13 09:32:10 2011 -0700
@@ -1,3 +1,14 @@
+2011-04-13  Rik  <octave@nomad.inbox5.com>
+
+	* general/isdir.m, general/isequal.m, general/isequalwithequalnans.m,
+	general/isscalar.m, general/issquare.m, general/isvector.m: Refactor
+	code to put input validation first.
+
+	* general/iscolumn.m, general/isrow.m : Remove useless initialization
+	of output variable.
+
+	* general/isa.m: Add additional tests for various classes.
+
 2011-04-13  Rik  <octave@nomad.inbox5.com>
 
 	* ChangeLog: Remove results of bad merge in ChangeLog.
--- a/scripts/general/isa.m	Wed Apr 13 09:22:38 2011 -0700
+++ b/scripts/general/isa.m	Wed Apr 13 09:32:10 2011 -0700
@@ -75,3 +75,22 @@
 %!assert (isa (uint16 (13), "numeric"), true)
 %!assert (isa (uint32 (13), "numeric"), true)
 %!assert (isa (uint64 (13), "numeric"), true)
+
+%!assert (isa (double (13), "double"));
+%!assert (isa (single (13), "single"));
+%!assert (isa (int8 (13), "int8"));
+%!assert (isa (int16 (13), "int16"));
+%!assert (isa (int32 (13), "int32"));
+%!assert (isa (int64 (13), "int64"));
+%!assert (isa (uint8 (13), "uint8"));
+%!assert (isa (uint16 (13), "uint16"));
+%!assert (isa (uint32 (13), "uint32"));
+%!assert (isa (uint64 (13), "uint64"));
+%!assert (isa ("string", "char"));
+%!assert (isa (true, "logical"));
+%!assert (isa (false, "logical"));
+%!assert (isa ({1, 2}, "cell"));
+%!test
+%! a.b = 1;
+%! assert (isa (a, "struct"));
+
--- a/scripts/general/iscolumn.m	Wed Apr 13 09:22:38 2011 -0700
+++ b/scripts/general/iscolumn.m	Wed Apr 13 09:32:10 2011 -0700
@@ -26,8 +26,6 @@
 
 function retval = iscolumn (x)
 
-  retval = false;
-
   if (nargin != 1)
     print_usage ();
   endif
--- a/scripts/general/isdir.m	Wed Apr 13 09:22:38 2011 -0700
+++ b/scripts/general/isdir.m	Wed Apr 13 09:32:10 2011 -0700
@@ -23,10 +23,11 @@
 ## @end deftypefn
 
 function retval = isdir (f)
-  if (nargin == 1)
-    ## Exist returns an integer but isdir should return a logical.
-    retval = (exist (f, "dir") == 7);
-  else
+  if (nargin != 1)
     print_usage ("isdir");
   endif
+
+  ## Exist returns an integer but isdir should return a logical.
+  retval = (exist (f, "dir") == 7);
+
 endfunction
--- a/scripts/general/isequal.m	Wed Apr 13 09:22:38 2011 -0700
+++ b/scripts/general/isequal.m	Wed Apr 13 09:32:10 2011 -0700
@@ -24,12 +24,12 @@
 
 function retval = isequal (x1, varargin)
 
-  if (nargin > 1)
-    retval = __isequal__ (false, x1, varargin{:});
-  else
+  if (nargin < 2)
     print_usage ();
   endif
 
+  retval = __isequal__ (false, x1, varargin{:});
+
 endfunction
 
 ## test size and shape
--- a/scripts/general/isequalwithequalnans.m	Wed Apr 13 09:22:38 2011 -0700
+++ b/scripts/general/isequalwithequalnans.m	Wed Apr 13 09:32:10 2011 -0700
@@ -25,12 +25,12 @@
 
 function retval = isequalwithequalnans (x1, varargin)
 
-  if (nargin > 1)
-    retval = __isequal__ (true, x1, varargin{:});
-  else
+  if (nargin < 2)
     print_usage ();
   endif
 
+  retval = __isequal__ (true, x1, varargin{:});
+
 endfunction
 
 ## test for equality
--- a/scripts/general/isrow.m	Wed Apr 13 09:22:38 2011 -0700
+++ b/scripts/general/isrow.m	Wed Apr 13 09:32:10 2011 -0700
@@ -26,8 +26,6 @@
 
 function retval = isrow (x)
 
-  retval = false;
-
   if (nargin != 1)
     print_usage ();
   endif
--- a/scripts/general/isscalar.m	Wed Apr 13 09:22:38 2011 -0700
+++ b/scripts/general/isscalar.m	Wed Apr 13 09:32:10 2011 -0700
@@ -26,12 +26,12 @@
 
 function retval = isscalar (x)
 
-  if (nargin == 1)
-    retval = numel (x) == 1;
-  else
+  if (nargin != 1)
     print_usage ();
   endif
 
+  retval = numel (x) == 1;
+
 endfunction
 
 %!assert(isscalar (1));
--- a/scripts/general/issquare.m	Wed Apr 13 09:22:38 2011 -0700
+++ b/scripts/general/issquare.m	Wed Apr 13 09:32:10 2011 -0700
@@ -28,42 +28,35 @@
 
 function retval = issquare (x)
 
-  if (nargin == 1)
-    if (ndims (x) == 2)
-      [r, c] = size (x);
-      retval = r == c;
-    else
-      retval = false;
-    endif
+  if (nargin != 1)
+    print_usage ();
+  endif
+
+  if (ndims (x) == 2)
+    [r, c] = size (x);
+    retval = r == c;
   else
-    print_usage ();
+    retval = false;
   endif
 
 endfunction
 
+%!assert(issquare ([]));
 %!assert(issquare (1));
-
 %!assert(!(issquare ([1, 2])));
-
-%!assert(issquare ([]));
-
 %!assert(issquare ([1, 2; 3, 4]));
-
-%!test
-%! assert(issquare ("t"));
-
+%!assert(!(issquare ([1, 2; 3, 4; 5, 6])));
+%!assert(!(issquare (ones (3,3,3))));
+%!assert(issquare ("t"));
 %!assert(!(issquare ("test")));
-
-%!test
-%! assert(issquare (["test"; "ing"; "1"; "2"]));
-
+%!assert(issquare (["test"; "ing"; "1"; "2"]));
 %!test
 %! s.a = 1;
 %! assert(issquare (s));
-
-%!assert(!(issquare ([1, 2; 3, 4; 5, 6])));
+%!assert(issquare ({1, 2; 3, 4}));
+%!assert(sparse (([1, 2; 3, 4])));
 
+%% Test input validation
 %!error issquare ();
-
 %!error issquare ([1, 2; 3, 4], 2);
 
--- a/scripts/general/isvector.m	Wed Apr 13 09:22:38 2011 -0700
+++ b/scripts/general/isvector.m	Wed Apr 13 09:32:10 2011 -0700
@@ -28,15 +28,13 @@
 
 function retval = isvector (x)
 
-  retval = 0;
-
-  if (nargin == 1)
-    sz = size (x);
-    retval = (ndims (x) == 2 && (sz(1) == 1 || sz(2) == 1));
-  else
+  if (nargin != 1)
     print_usage ();
   endif
 
+  sz = size (x);
+  retval = (ndims (x) == 2 && (sz(1) == 1 || sz(2) == 1));
+
 endfunction
 
 %!assert(isvector (1));