changeset 25235:27e6b38571d3

magic.m: Issue an error if input N is negative (bug #53441). * magic.m: Check for negative N and call error() if found. Add BIST test to check new code.
author Dildar Sk <dildarsk101010@gmail.com>
date Fri, 23 Mar 2018 19:03:45 -0400
parents b02d5a4c7452
children 69b21b8a0e9f
files scripts/special-matrix/magic.m
diffstat 1 files changed, 5 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/scripts/special-matrix/magic.m	Thu Apr 12 13:46:00 2018 -0700
+++ b/scripts/special-matrix/magic.m	Fri Mar 23 19:03:45 2018 -0400
@@ -36,10 +36,10 @@
   endif
 
   n = fix (n);
-  if (n < 1)
-
+  if (n < 0)
+    error ("magic: N must be non-negative");
+  elseif (n < 1)
     A = [];
-
   elseif (mod (n, 2) == 1)
 
     shift = floor ((0:n*n-1)/n);
@@ -91,10 +91,8 @@
 %!test <*46672>
 %! m = magic (2);
 %! assert (size (m), [2 2]);
-%! assert (unique (m), [1; 2; 3; 4]);
+%! assert (m, [4 3; 1 2]);
 
-%!assert (magic (2), [4 3; 1 2])
-%!assert (isempty (magic (-1)))
 %!assert (isempty (magic (0)))
 %!assert (magic (1), 1)
 %!assert (magic (1.5), 1)
@@ -102,3 +100,4 @@
 ## Test input validation
 %!error magic ()
 %!error magic (1, 2)
+%!error <N must be non-negative> magic (-5)