annotate scripts/miscellaneous/mustBeNumericOrLogical.m @ 32632:2e484f9f1f18 stable

maint: update Octave Project Developers copyright for the new year
author John W. Eaton <jwe@octave.org>
date Fri, 22 Dec 2023 12:08:17 -0500
parents 597f3ee61a48
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
27962
3b8d21ff0ca6 New validator functions implementation (bug #57627).
Andrew Janke <andrew@apjanke.net>
parents:
diff changeset
1 ########################################################################
3b8d21ff0ca6 New validator functions implementation (bug #57627).
Andrew Janke <andrew@apjanke.net>
parents:
diff changeset
2 ##
32632
2e484f9f1f18 maint: update Octave Project Developers copyright for the new year
John W. Eaton <jwe@octave.org>
parents: 31706
diff changeset
3 ## Copyright (C) 2019-2024 The Octave Project Developers
27962
3b8d21ff0ca6 New validator functions implementation (bug #57627).
Andrew Janke <andrew@apjanke.net>
parents:
diff changeset
4 ##
3b8d21ff0ca6 New validator functions implementation (bug #57627).
Andrew Janke <andrew@apjanke.net>
parents:
diff changeset
5 ## See the file COPYRIGHT.md in the top-level directory of this
3b8d21ff0ca6 New validator functions implementation (bug #57627).
Andrew Janke <andrew@apjanke.net>
parents:
diff changeset
6 ## distribution or <https://octave.org/copyright/>.
3b8d21ff0ca6 New validator functions implementation (bug #57627).
Andrew Janke <andrew@apjanke.net>
parents:
diff changeset
7 ##
3b8d21ff0ca6 New validator functions implementation (bug #57627).
Andrew Janke <andrew@apjanke.net>
parents:
diff changeset
8 ## This file is part of Octave.
3b8d21ff0ca6 New validator functions implementation (bug #57627).
Andrew Janke <andrew@apjanke.net>
parents:
diff changeset
9 ##
3b8d21ff0ca6 New validator functions implementation (bug #57627).
Andrew Janke <andrew@apjanke.net>
parents:
diff changeset
10 ## Octave is free software: you can redistribute it and/or modify it
3b8d21ff0ca6 New validator functions implementation (bug #57627).
Andrew Janke <andrew@apjanke.net>
parents:
diff changeset
11 ## under the terms of the GNU General Public License as published by
3b8d21ff0ca6 New validator functions implementation (bug #57627).
Andrew Janke <andrew@apjanke.net>
parents:
diff changeset
12 ## the Free Software Foundation, either version 3 of the License, or
3b8d21ff0ca6 New validator functions implementation (bug #57627).
Andrew Janke <andrew@apjanke.net>
parents:
diff changeset
13 ## (at your option) any later version.
3b8d21ff0ca6 New validator functions implementation (bug #57627).
Andrew Janke <andrew@apjanke.net>
parents:
diff changeset
14 ##
3b8d21ff0ca6 New validator functions implementation (bug #57627).
Andrew Janke <andrew@apjanke.net>
parents:
diff changeset
15 ## Octave is distributed in the hope that it will be useful, but
3b8d21ff0ca6 New validator functions implementation (bug #57627).
Andrew Janke <andrew@apjanke.net>
parents:
diff changeset
16 ## WITHOUT ANY WARRANTY; without even the implied warranty of
3b8d21ff0ca6 New validator functions implementation (bug #57627).
Andrew Janke <andrew@apjanke.net>
parents:
diff changeset
17 ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
3b8d21ff0ca6 New validator functions implementation (bug #57627).
Andrew Janke <andrew@apjanke.net>
parents:
diff changeset
18 ## GNU General Public License for more details.
3b8d21ff0ca6 New validator functions implementation (bug #57627).
Andrew Janke <andrew@apjanke.net>
parents:
diff changeset
19 ##
3b8d21ff0ca6 New validator functions implementation (bug #57627).
Andrew Janke <andrew@apjanke.net>
parents:
diff changeset
20 ## You should have received a copy of the GNU General Public License
3b8d21ff0ca6 New validator functions implementation (bug #57627).
Andrew Janke <andrew@apjanke.net>
parents:
diff changeset
21 ## along with Octave; see the file COPYING. If not, see
3b8d21ff0ca6 New validator functions implementation (bug #57627).
Andrew Janke <andrew@apjanke.net>
parents:
diff changeset
22 ## <https://www.gnu.org/licenses/>.
3b8d21ff0ca6 New validator functions implementation (bug #57627).
Andrew Janke <andrew@apjanke.net>
parents:
diff changeset
23 ##
3b8d21ff0ca6 New validator functions implementation (bug #57627).
Andrew Janke <andrew@apjanke.net>
parents:
diff changeset
24 ########################################################################
3b8d21ff0ca6 New validator functions implementation (bug #57627).
Andrew Janke <andrew@apjanke.net>
parents:
diff changeset
25
3b8d21ff0ca6 New validator functions implementation (bug #57627).
Andrew Janke <andrew@apjanke.net>
parents:
diff changeset
26 ## -*- texinfo -*-
27969
a9a8699a3749 Remove argouts from new validator functions (Bug #57627).
Andrew Janke <andrew@apjanke.net>
parents: 27968
diff changeset
27 ## @deftypefn {} {} mustBeNumericOrLogical (@var{x})
27962
3b8d21ff0ca6 New validator functions implementation (bug #57627).
Andrew Janke <andrew@apjanke.net>
parents:
diff changeset
28 ##
28722
a2177e663979 doc: Use standard verb phrasing in mustBe* functions and add @seealso links.
Rik <rik@octave.org>
parents: 27969
diff changeset
29 ## Require that input @var{x} is numeric or logical.
27962
3b8d21ff0ca6 New validator functions implementation (bug #57627).
Andrew Janke <andrew@apjanke.net>
parents:
diff changeset
30 ##
28722
a2177e663979 doc: Use standard verb phrasing in mustBe* functions and add @seealso links.
Rik <rik@octave.org>
parents: 27969
diff changeset
31 ## Raise an error if the input @var{x} is not numeric or logical, as
27962
3b8d21ff0ca6 New validator functions implementation (bug #57627).
Andrew Janke <andrew@apjanke.net>
parents:
diff changeset
32 ## determined by @code{isnumeric (@var{x}) || islogical (@var{x})}.
3b8d21ff0ca6 New validator functions implementation (bug #57627).
Andrew Janke <andrew@apjanke.net>
parents:
diff changeset
33 ##
28722
a2177e663979 doc: Use standard verb phrasing in mustBe* functions and add @seealso links.
Rik <rik@octave.org>
parents: 27969
diff changeset
34 ## @seealso{mustBeNumeric, isnumeric, islogical}
27962
3b8d21ff0ca6 New validator functions implementation (bug #57627).
Andrew Janke <andrew@apjanke.net>
parents:
diff changeset
35 ## @end deftypefn
3b8d21ff0ca6 New validator functions implementation (bug #57627).
Andrew Janke <andrew@apjanke.net>
parents:
diff changeset
36
27969
a9a8699a3749 Remove argouts from new validator functions (Bug #57627).
Andrew Janke <andrew@apjanke.net>
parents: 27968
diff changeset
37 function mustBeNumericOrLogical (x)
28723
dd9efd873596 maint: Use Octave coding conventions in mustBe* functions.
Rik <rik@octave.org>
parents: 28722
diff changeset
38
28891
de5f2f9a64ff maint: Use same coding style when checking for a minimum of 1 input.
Rik <rik@octave.org>
parents: 28723
diff changeset
39 if (nargin < 1)
28723
dd9efd873596 maint: Use Octave coding conventions in mustBe* functions.
Rik <rik@octave.org>
parents: 28722
diff changeset
40 print_usage ();
dd9efd873596 maint: Use Octave coding conventions in mustBe* functions.
Rik <rik@octave.org>
parents: 28722
diff changeset
41 endif
dd9efd873596 maint: Use Octave coding conventions in mustBe* functions.
Rik <rik@octave.org>
parents: 28722
diff changeset
42
dd9efd873596 maint: Use Octave coding conventions in mustBe* functions.
Rik <rik@octave.org>
parents: 28722
diff changeset
43 if (! (isnumeric (x) || islogical (x)))
27962
3b8d21ff0ca6 New validator functions implementation (bug #57627).
Andrew Janke <andrew@apjanke.net>
parents:
diff changeset
44 label = inputname (1);
28723
dd9efd873596 maint: Use Octave coding conventions in mustBe* functions.
Rik <rik@octave.org>
parents: 28722
diff changeset
45 if (isempty (label))
27962
3b8d21ff0ca6 New validator functions implementation (bug #57627).
Andrew Janke <andrew@apjanke.net>
parents:
diff changeset
46 label = "input";
3b8d21ff0ca6 New validator functions implementation (bug #57627).
Andrew Janke <andrew@apjanke.net>
parents:
diff changeset
47 endif
28723
dd9efd873596 maint: Use Octave coding conventions in mustBe* functions.
Rik <rik@octave.org>
parents: 28722
diff changeset
48 error ("%s must be numeric or logical; found a %s", label, class (x));
27962
3b8d21ff0ca6 New validator functions implementation (bug #57627).
Andrew Janke <andrew@apjanke.net>
parents:
diff changeset
49 endif
28723
dd9efd873596 maint: Use Octave coding conventions in mustBe* functions.
Rik <rik@octave.org>
parents: 28722
diff changeset
50
27962
3b8d21ff0ca6 New validator functions implementation (bug #57627).
Andrew Janke <andrew@apjanke.net>
parents:
diff changeset
51 endfunction
27968
c9dd91b438fd BISTs for new validator functions (Bug #57627).
Andrew Janke <andrew@apjanke.net>
parents: 27962
diff changeset
52
28723
dd9efd873596 maint: Use Octave coding conventions in mustBe* functions.
Rik <rik@octave.org>
parents: 28722
diff changeset
53
27968
c9dd91b438fd BISTs for new validator functions (Bug #57627).
Andrew Janke <andrew@apjanke.net>
parents: 27962
diff changeset
54 %!test
28723
dd9efd873596 maint: Use Octave coding conventions in mustBe* functions.
Rik <rik@octave.org>
parents: 28722
diff changeset
55 %! mustBeNumericOrLogical ([]);
dd9efd873596 maint: Use Octave coding conventions in mustBe* functions.
Rik <rik@octave.org>
parents: 28722
diff changeset
56 %! mustBeNumericOrLogical (true);
dd9efd873596 maint: Use Octave coding conventions in mustBe* functions.
Rik <rik@octave.org>
parents: 28722
diff changeset
57 %! mustBeNumericOrLogical (false);
dd9efd873596 maint: Use Octave coding conventions in mustBe* functions.
Rik <rik@octave.org>
parents: 28722
diff changeset
58 %! mustBeNumericOrLogical (42);
dd9efd873596 maint: Use Octave coding conventions in mustBe* functions.
Rik <rik@octave.org>
parents: 28722
diff changeset
59 %! mustBeNumericOrLogical (int32 (42));
27968
c9dd91b438fd BISTs for new validator functions (Bug #57627).
Andrew Janke <andrew@apjanke.net>
parents: 27962
diff changeset
60
28723
dd9efd873596 maint: Use Octave coding conventions in mustBe* functions.
Rik <rik@octave.org>
parents: 28722
diff changeset
61 %!error <Invalid call> mustBeNumericOrLogical ()
dd9efd873596 maint: Use Octave coding conventions in mustBe* functions.
Rik <rik@octave.org>
parents: 28722
diff changeset
62 %!error <found a char> mustBeNumericOrLogical ("foo")
dd9efd873596 maint: Use Octave coding conventions in mustBe* functions.
Rik <rik@octave.org>
parents: 28722
diff changeset
63 %!error <found a struct> mustBeNumericOrLogical (struct ())
dd9efd873596 maint: Use Octave coding conventions in mustBe* functions.
Rik <rik@octave.org>
parents: 28722
diff changeset
64 %!error <found a cell> mustBeNumericOrLogical (cell ())