Mercurial > octave
changeset 27297:6ac42f6615bb
ismember.m: Add input validation for "stable"/"sorted" options
* ismember.m: Check input for "stable" or "sorted" which are disallowed
options. Change by_rows variable to look for "rows" string in varargin.
Add input validation BIST tests.
author | Rik <rik@octave.org> |
---|---|
date | Sun, 28 Jul 2019 21:51:26 -0700 |
parents | 538468f901dd |
children | 1805f8586179 |
files | scripts/set/ismember.m |
diffstat | 1 files changed, 13 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/scripts/set/ismember.m Sun Jul 28 17:56:28 2019 -0700 +++ b/scripts/set/ismember.m Sun Jul 28 21:51:26 2019 -0700 @@ -115,9 +115,14 @@ a = double (a); endif + if (any (strcmp ("stable", varargin)) || any (strcmp ("sorted", varargin))) + error ('ismember: "stable" or "sorted" are not valid options'); + endif [a, s] = validsetargs ("ismember", a, s, varargin{:}); - by_rows = nargin == 3; + by_rows = any (strcmp ("rows", varargin)); + ## FIXME: uncomment if bug #56692 is addressed. + ##optlegacy = any (strcmp ("legacy", varargin)); if (! by_rows) s = s(:); @@ -292,3 +297,10 @@ %! assert (tf, logical ([1 0 0])) %! [~, s_idx] = ismember ([5 4-3j 3+4j], 5); %! assert (s_idx, [1 0 0]) + +## Test input validation +%!error ismember () +%!error ismember (1) +%!error ismember (1,2,3,4) +%!error <"stable" or "sorted" are not valid options> ismember (1,2, "sorted") +%!error <"stable" or "sorted" are not valid options> ismember (1,2, "stable")