changeset 655:00589f9456d2

iscolormap: importing from core
author carandraug
date Mon, 15 Oct 2012 13:03:52 +0000
parents c4e8c359d0eb
children 9fe1487ddab7
files inst/iscolormap.m
diffstat 1 files changed, 32 insertions(+), 21 deletions(-) [+]
line wrap: on
line diff
--- a/inst/iscolormap.m
+++ b/inst/iscolormap.m
@@ -1,40 +1,51 @@
-## Copyright (C) 2012 Carnë Draug <carandraug+dev@gmail.com>
+## Copyright (C) 2012 Carnë Draug
+##
+## This file is part of Octave.
 ##
-## This program is free software; you can redistribute it and/or modify it under
-## the terms of the GNU General Public License as published by the Free Software
-## Foundation; either version 3 of the License, or (at your option) any later
-## version.
+## Octave is free software; you can redistribute it and/or modify it
+## under the terms of the GNU General Public License as published by
+## the Free Software Foundation; either version 3 of the License, or (at
+## your option) any later version.
 ##
-## This program is distributed in the hope that it will be useful, but WITHOUT
-## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
-## details.
+## Octave is distributed in the hope that it will be useful, but
+## WITHOUT ANY WARRANTY; without even the implied warranty of
+## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+## General Public License for more details.
 ##
-## You should have received a copy of the GNU General Public License along with
-## this program; if not, see <http://www.gnu.org/licenses/>.
+## You should have received a copy of the GNU General Public License
+## along with Octave; see the file COPYING.  If not, see
+## <http://www.gnu.org/licenses/>.
 
 ## -*- texinfo -*-
-## @deftypefn {Function File} {} iscolormap (@var{cm})
-## Return true if @var{cm} is a colormap.
+## @deftypefn {Function File} {} iscolormap (@var{cmap})
+## Return true if @var{cmap} is a colormap.
 ##
 ## A colormap is an @var{n} row by 3 column matrix.  The columns contain red,
-## green, and blue intensities respectively.  All entries should be between 0
+## green, and blue intensities respectively.  All entries must be between 0
 ## and 1 inclusive.
 ##
 ## @seealso{colormap, rgbplot}
 ## @end deftypefn
 
-function bool = iscolormap (cm)
+## Author: Carnë Draug <carandraug+dev@gmail.com>
+
+function retval = iscolormap (cmap)
 
   if (nargin != 1)
     print_usage;
   endif
 
-  bool = false;
-  if (ismatrix (cm) && isreal (cm) && isnumeric (cm) && columns(cm) == 3 &&
-      ndims (cm) == 2 && strcmp (class (cm), "double") &&
-      min (cm(:)) >= 0 && max (cm(:)) <= 1)
-    bool = true;
-  endif
+  retval = (isnumeric (cmap) && isreal (cmap) &&
+            columns (cmap) == 3 && ndims (cmap) == 2 && isa (cmap, "double") &&
+            min (cmap(:)) >= 0 && max (cmap(:)) <= 1);
 
 endfunction
+
+%!assert (iscolormap (jet (64)))
+%!assert (iscolormap ({0 1 0}), false)
+%!assert (iscolormap ([0 1i 0]), false)
+%!assert (iscolormap (ones (3,4)), false)
+%!assert (iscolormap (ones (3,3,3)), false)
+%!assert (iscolormap (single (jet (64))), false)
+%!assert (iscolormap ([0 0 -2]), false)
+%!assert (iscolormap ([0 0 2]), false)