Mercurial > octave
changeset 25267:308a272bbe3c
Emit an error if binary operator functions (or, plus, etc.) are called with 1 arg (bug 53450).
* data.cc (binary_assoc_op_defun_body): Verify at least two args given or
* data.cc (Fplus): Add BIST tests for function. Add input validation tests
for all functions which call binary_assoc_op_defun_body().
author | Rik <rik@octave.org> |
---|---|
date | Mon, 16 Apr 2018 14:39:33 -0700 |
parents | 6f9d51536643 |
children | 592a4258b237 |
files | libinterp/corefcn/data.cc |
diffstat | 1 files changed, 13 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/libinterp/corefcn/data.cc Mon Apr 16 00:14:23 2018 -0700 +++ b/libinterp/corefcn/data.cc Mon Apr 16 14:39:33 2018 -0700 @@ -5906,14 +5906,12 @@ { int nargin = args.length (); - if (nargin == 0) + if (nargin < 2) print_usage (); octave_value retval; - if (nargin == 1) - retval = args(0); - else if (nargin == 2) + if (nargin == 2) retval = do_binary_op (op, args(0), args(1)); else { @@ -5947,6 +5945,17 @@ octave_value::op_add_eq, args); } +/* +%!assert (plus (1,1), 2) +%!assert (plus (1:3, 1), 2:4) +%!assert (plus (1:3, 1, 3), 5:7) +%!assert (plus (1,2,3,4,5,6,7,8,9), sum (1:9)) + +## Test input validation for all functions which use binary_assoc_op_defun_body +%!error plus () +%!error plus (1) +*/ + DEFUN (minus, args, , doc: /* -*- texinfo -*- @deftypefn {} {} minus (@var{x}, @var{y})