# HG changeset patch # User Dildar Sk # Date 1521846225 14400 # Node ID 27e6b38571d3ff66da5452a64be711dc58e0a1a6 # Parent b02d5a4c7452aa1d44ea09d09ffc661af0fbc572 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. diff -r b02d5a4c7452 -r 27e6b38571d3 scripts/special-matrix/magic.m --- 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 magic (-5)