Mercurial > hg > octave-nkf
annotate scripts/general/validateattributes.m @ 19930:5f2c0ca0ef51
Ensure that numbers passed to integer *printf format codes are integers (bug #44245).
* num2str.m, validateattributes.m, inputname.m, stemleaf.m, print.m,
__ghostscript__.m, __gnuplot_print__.m, __go_draw_axes__.m,
__go_draw_figure__.m, bicg.m, qmr.m, mat2str.m, validatestring.m, assert.m:
Ensure that numbers passed to integer *printf format codes are integers.
author | Rik <rik@octave.org> |
---|---|
date | Mon, 16 Feb 2015 16:51:45 -0800 |
parents | 4197fc428c7d |
children | 9fc020886ae9 |
rev | line source |
---|---|
19898
4197fc428c7d
maint: Update copyright notices for 2015.
John W. Eaton <jwe@octave.org>
parents:
19261
diff
changeset
|
1 ## Copyright (C) 2013-2015 Carnë Draug |
18038
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
2 ## |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
3 ## This file is part of Octave. |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
4 ## |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
5 ## Octave is free software; you can redistribute it and/or modify it |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
6 ## under the terms of the GNU General Public License as published by |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
7 ## the Free Software Foundation; either version 3 of the License, or (at |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
8 ## your option) any later version. |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
9 ## |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
10 ## Octave is distributed in the hope that it will be useful, but |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
11 ## WITHOUT ANY WARRANTY; without even the implied warranty of |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
12 ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
13 ## General Public License for more details. |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
14 ## |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
15 ## You should have received a copy of the GNU General Public License |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
16 ## along with Octave; see the file COPYING. If not, see |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
17 ## <http://www.gnu.org/licenses/>. |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
18 |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
19 ## -*- texinfo -*- |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
20 ## @deftypefn {Function File} {} validateattributes (@var{A}, @var{classes}, @var{attributes}) |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
21 ## @deftypefnx {Function File} {} validateattributes (@var{A}, @var{classes}, @var{attributes}, @var{arg_idx}) |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
22 ## @deftypefnx {Function File} {} validateattributes (@var{A}, @var{classes}, @var{attributes}, @var{func_name}) |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
23 ## @deftypefnx {Function File} {} validateattributes (@var{A}, @var{classes}, @var{attributes}, @var{func_name}, @var{arg_name}) |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
24 ## @deftypefnx {Function File} {} validateattributes (@var{A}, @var{classes}, @var{attributes}, @var{func_name}, @var{arg_name}, @var{arg_idx}) |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
25 ## Check validity of input argument. |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
26 ## |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
27 ## Confirms that the argument @var{A} is valid by belonging to one of |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
28 ## @var{classes}, and holding all of the @var{attributes}. If it does not, |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
29 ## an error is thrown, with a message formatted accordingly. The error |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
30 ## message can be made further complete by the function name @var{fun_name}, |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
31 ## the argument name @var{arg_name}, and its position in the input |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
32 ## @var{arg_idx}. |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
33 ## |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
34 ## @var{classes} must be a cell array of strings (an empty cell array is |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
35 ## allowed) with the name of classes (remember that a class name is case |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
36 ## sensitive). In addition to the class name, the following categories |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
37 ## names are also valid: |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
38 ## |
18078
b06a9768b643
doc: Don't use @table @qcode to avoid problems with Texinfo 5.2.
Rik <rik@octave.org>
parents:
18038
diff
changeset
|
39 ## @table @asis |
b06a9768b643
doc: Don't use @table @qcode to avoid problems with Texinfo 5.2.
Rik <rik@octave.org>
parents:
18038
diff
changeset
|
40 ## @item @qcode{"float"} |
18038
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
41 ## Floating point value comprising classes @qcode{"double"} and |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
42 ## @qcode{"single"}. |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
43 ## |
18078
b06a9768b643
doc: Don't use @table @qcode to avoid problems with Texinfo 5.2.
Rik <rik@octave.org>
parents:
18038
diff
changeset
|
44 ## @item @qcode{"integer"} |
18038
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
45 ## Integer value comprising classes (u)int8, (u)int16, (u)int32, (u)int64. |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
46 ## |
18078
b06a9768b643
doc: Don't use @table @qcode to avoid problems with Texinfo 5.2.
Rik <rik@octave.org>
parents:
18038
diff
changeset
|
47 ## @item @qcode{"numeric"} |
18038
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
48 ## Numeric value comprising either a floating point or integer value. |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
49 ## |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
50 ## @end table |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
51 ## |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
52 ## @var{attributes} must be a cell array with names of checks for @var{A}. |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
53 ## Some of them require an additional value to be supplied right after the |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
54 ## name (see details for each below). |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
55 ## |
18078
b06a9768b643
doc: Don't use @table @qcode to avoid problems with Texinfo 5.2.
Rik <rik@octave.org>
parents:
18038
diff
changeset
|
56 ## @table @asis |
b06a9768b643
doc: Don't use @table @qcode to avoid problems with Texinfo 5.2.
Rik <rik@octave.org>
parents:
18038
diff
changeset
|
57 ## @item @qcode{"<="} |
18038
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
58 ## All values are less than or equal to the following value in @var{attributes}. |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
59 ## |
18078
b06a9768b643
doc: Don't use @table @qcode to avoid problems with Texinfo 5.2.
Rik <rik@octave.org>
parents:
18038
diff
changeset
|
60 ## @item @qcode{"<"} |
18038
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
61 ## All values are less than the following value in @var{attributes}. |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
62 ## |
18078
b06a9768b643
doc: Don't use @table @qcode to avoid problems with Texinfo 5.2.
Rik <rik@octave.org>
parents:
18038
diff
changeset
|
63 ## @item @qcode{">="} |
b06a9768b643
doc: Don't use @table @qcode to avoid problems with Texinfo 5.2.
Rik <rik@octave.org>
parents:
18038
diff
changeset
|
64 ## All values are greater than or equal to the following value in |
b06a9768b643
doc: Don't use @table @qcode to avoid problems with Texinfo 5.2.
Rik <rik@octave.org>
parents:
18038
diff
changeset
|
65 ## @var{attributes}. |
18038
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
66 ## |
18078
b06a9768b643
doc: Don't use @table @qcode to avoid problems with Texinfo 5.2.
Rik <rik@octave.org>
parents:
18038
diff
changeset
|
67 ## @item @qcode{">"} |
18038
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
68 ## All values are greater than the following value in @var{attributes}. |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
69 ## |
18078
b06a9768b643
doc: Don't use @table @qcode to avoid problems with Texinfo 5.2.
Rik <rik@octave.org>
parents:
18038
diff
changeset
|
70 ## @item @qcode{"2d"} |
b06a9768b643
doc: Don't use @table @qcode to avoid problems with Texinfo 5.2.
Rik <rik@octave.org>
parents:
18038
diff
changeset
|
71 ## A 2-dimensional matrix. Note that vectors and empty matrices have |
18038
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
72 ## 2 dimensions, one of them being of length 1, or both length 0. |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
73 ## |
18078
b06a9768b643
doc: Don't use @table @qcode to avoid problems with Texinfo 5.2.
Rik <rik@octave.org>
parents:
18038
diff
changeset
|
74 ## @item @qcode{"3d"} |
b06a9768b643
doc: Don't use @table @qcode to avoid problems with Texinfo 5.2.
Rik <rik@octave.org>
parents:
18038
diff
changeset
|
75 ## Has no more than 3 dimensions. A 2-dimensional matrix is a 3-D matrix |
18038
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
76 ## whose 3rd dimension is of length 1. |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
77 ## |
18078
b06a9768b643
doc: Don't use @table @qcode to avoid problems with Texinfo 5.2.
Rik <rik@octave.org>
parents:
18038
diff
changeset
|
78 ## @item @qcode{"binary"} |
18038
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
79 ## All values are either 1 or 0. |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
80 ## |
18078
b06a9768b643
doc: Don't use @table @qcode to avoid problems with Texinfo 5.2.
Rik <rik@octave.org>
parents:
18038
diff
changeset
|
81 ## @item @qcode{"column"} |
18038
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
82 ## Values are arranged in a single column. |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
83 ## |
18078
b06a9768b643
doc: Don't use @table @qcode to avoid problems with Texinfo 5.2.
Rik <rik@octave.org>
parents:
18038
diff
changeset
|
84 ## @item @qcode{"decreasing"} |
18038
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
85 ## No value is @var{NaN}, and each is less than the preceding one. |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
86 ## |
18078
b06a9768b643
doc: Don't use @table @qcode to avoid problems with Texinfo 5.2.
Rik <rik@octave.org>
parents:
18038
diff
changeset
|
87 ## @item @qcode{"even"} |
18038
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
88 ## All values are even numbers. |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
89 ## |
18078
b06a9768b643
doc: Don't use @table @qcode to avoid problems with Texinfo 5.2.
Rik <rik@octave.org>
parents:
18038
diff
changeset
|
90 ## @item @qcode{"finite"} |
18038
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
91 ## All values are finite. |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
92 ## |
18078
b06a9768b643
doc: Don't use @table @qcode to avoid problems with Texinfo 5.2.
Rik <rik@octave.org>
parents:
18038
diff
changeset
|
93 ## @item @qcode{"increasing"} |
18038
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
94 ## No value is @var{NaN}, and each is greater than the preceding one. |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
95 ## |
18078
b06a9768b643
doc: Don't use @table @qcode to avoid problems with Texinfo 5.2.
Rik <rik@octave.org>
parents:
18038
diff
changeset
|
96 ## @item @qcode{"integer"} |
18038
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
97 ## All values are integer. This is different than using @code{isinteger} |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
98 ## which only checks its an integer type. This checks that each value in |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
99 ## @var{A} is an integer value, i.e., it has no decimal part. |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
100 ## |
18078
b06a9768b643
doc: Don't use @table @qcode to avoid problems with Texinfo 5.2.
Rik <rik@octave.org>
parents:
18038
diff
changeset
|
101 ## @item @qcode{"ncols"} |
18038
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
102 ## Has exactly as many columns as the next value in @var{attributes}. |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
103 ## |
18078
b06a9768b643
doc: Don't use @table @qcode to avoid problems with Texinfo 5.2.
Rik <rik@octave.org>
parents:
18038
diff
changeset
|
104 ## @item @qcode{"ndims"} |
18038
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
105 ## Has exactly as many dimensions as the next value in @var{attributes}. |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
106 ## |
18078
b06a9768b643
doc: Don't use @table @qcode to avoid problems with Texinfo 5.2.
Rik <rik@octave.org>
parents:
18038
diff
changeset
|
107 ## @item @qcode{"nondecreasing"} |
b06a9768b643
doc: Don't use @table @qcode to avoid problems with Texinfo 5.2.
Rik <rik@octave.org>
parents:
18038
diff
changeset
|
108 ## No value is @var{NaN}, and each is greater than or equal to the preceding |
b06a9768b643
doc: Don't use @table @qcode to avoid problems with Texinfo 5.2.
Rik <rik@octave.org>
parents:
18038
diff
changeset
|
109 ## one. |
18038
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
110 ## |
18078
b06a9768b643
doc: Don't use @table @qcode to avoid problems with Texinfo 5.2.
Rik <rik@octave.org>
parents:
18038
diff
changeset
|
111 ## @item @qcode{"nonempty"} |
18038
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
112 ## It is not empty. |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
113 ## |
18078
b06a9768b643
doc: Don't use @table @qcode to avoid problems with Texinfo 5.2.
Rik <rik@octave.org>
parents:
18038
diff
changeset
|
114 ## @item @qcode{"nonincreasing"} |
18038
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
115 ## No value is @var{NaN}, and each is less than or equal to the preceding one. |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
116 ## |
18078
b06a9768b643
doc: Don't use @table @qcode to avoid problems with Texinfo 5.2.
Rik <rik@octave.org>
parents:
18038
diff
changeset
|
117 ## @item @qcode{"nonnan"} |
18038
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
118 ## No value is a @code{NaN}. |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
119 ## |
18078
b06a9768b643
doc: Don't use @table @qcode to avoid problems with Texinfo 5.2.
Rik <rik@octave.org>
parents:
18038
diff
changeset
|
120 ## @item @qcode{"non-negative"} |
18038
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
121 ## All values are non negative. |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
122 ## |
18078
b06a9768b643
doc: Don't use @table @qcode to avoid problems with Texinfo 5.2.
Rik <rik@octave.org>
parents:
18038
diff
changeset
|
123 ## @item @qcode{"nonsparse"} |
18038
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
124 ## It is not a sparse matrix. |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
125 ## |
18078
b06a9768b643
doc: Don't use @table @qcode to avoid problems with Texinfo 5.2.
Rik <rik@octave.org>
parents:
18038
diff
changeset
|
126 ## @item @qcode{"nonzero"} |
18038
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
127 ## No value is zero. |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
128 ## |
18078
b06a9768b643
doc: Don't use @table @qcode to avoid problems with Texinfo 5.2.
Rik <rik@octave.org>
parents:
18038
diff
changeset
|
129 ## @item @qcode{"nrows"} |
18038
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
130 ## Has exactly as many rows as the next value in @var{attributes}. |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
131 ## |
18078
b06a9768b643
doc: Don't use @table @qcode to avoid problems with Texinfo 5.2.
Rik <rik@octave.org>
parents:
18038
diff
changeset
|
132 ## @item @qcode{"numel"} |
18038
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
133 ## Has exactly as many elements as the next value in @var{attributes}. |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
134 ## |
18078
b06a9768b643
doc: Don't use @table @qcode to avoid problems with Texinfo 5.2.
Rik <rik@octave.org>
parents:
18038
diff
changeset
|
135 ## @item @qcode{"odd"} |
18038
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
136 ## All values are odd numbers. |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
137 ## |
18078
b06a9768b643
doc: Don't use @table @qcode to avoid problems with Texinfo 5.2.
Rik <rik@octave.org>
parents:
18038
diff
changeset
|
138 ## @item @qcode{"positive"} |
18038
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
139 ## All values are positive. |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
140 ## |
18078
b06a9768b643
doc: Don't use @table @qcode to avoid problems with Texinfo 5.2.
Rik <rik@octave.org>
parents:
18038
diff
changeset
|
141 ## @item @qcode{"real"} |
18038
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
142 ## It is a non-complex matrix. |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
143 ## |
18078
b06a9768b643
doc: Don't use @table @qcode to avoid problems with Texinfo 5.2.
Rik <rik@octave.org>
parents:
18038
diff
changeset
|
144 ## @item @qcode{"row"} |
18038
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
145 ## Values are arranged in a single row. |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
146 ## |
18078
b06a9768b643
doc: Don't use @table @qcode to avoid problems with Texinfo 5.2.
Rik <rik@octave.org>
parents:
18038
diff
changeset
|
147 ## @item @qcode{"scalar"} |
18038
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
148 ## It is a scalar. |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
149 ## |
18541
2b01c11197d6
Fix contraction of '--' to '-' in Info format of Line Styles (bug #41585)
Rik <rik@octave.org>
parents:
18078
diff
changeset
|
150 ## @item @qcode{"size"} |
18038
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
151 ## Its size has length equal to the values of the next in @var{attributes}. |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
152 ## The next value must is an array with the length for each dimension. To |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
153 ## ignore the check for a certain dimension, the value of @code{NaN} can be |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
154 ## used. |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
155 ## |
18078
b06a9768b643
doc: Don't use @table @qcode to avoid problems with Texinfo 5.2.
Rik <rik@octave.org>
parents:
18038
diff
changeset
|
156 ## @item @qcode{"square"} |
18038
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
157 ## Is a square matrix. |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
158 ## |
18078
b06a9768b643
doc: Don't use @table @qcode to avoid problems with Texinfo 5.2.
Rik <rik@octave.org>
parents:
18038
diff
changeset
|
159 ## @item @qcode{"vector"} |
18038
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
160 ## Values are arranged in a single vector (column or vector). |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
161 ## |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
162 ## @end table |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
163 ## |
19261
efd5cf93013b
doc: Move validatestrings into function chapter of manual.
Rik <rik@octave.org>
parents:
18541
diff
changeset
|
164 ## @seealso{isa, validatestring, inputParser} |
18038
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
165 ## @end deftypefn |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
166 |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
167 function validateattributes (A, cls, attr, varargin) |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
168 if (nargin < 3 || nargin > 6) |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
169 print_usage (); |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
170 elseif (! iscellstr (cls)) |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
171 error ("validateattributes: CLASSES must be a cell array of strings"); |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
172 elseif (! iscell (attr)) |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
173 error ("validateattributes: ATTRIBUTES must be a cell array"); |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
174 endif |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
175 |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
176 ## Built start of error message from the extra optional arguments |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
177 func_name = ""; |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
178 var_name = "input"; |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
179 if (nargin > 3) |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
180 fourth = varargin{1}; |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
181 if (ischar (fourth)) |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
182 func_name = [fourth ": "]; |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
183 elseif (nargin == 4 && valid_arg_idx (fourth)) |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
184 var_name = sprintf ("input %d", fourth); |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
185 else |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
186 error ("validateattributes: 4th input argument must be ARG_IDX or FUNC_NAME"); |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
187 endif |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
188 |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
189 if (nargin > 4) |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
190 var_name = varargin{2}; |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
191 if (! ischar (var_name)) |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
192 error ("validateattributes: VAR_NAME must be a string"); |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
193 endif |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
194 |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
195 if (nargin > 5) |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
196 arg_idx = varargin{3}; |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
197 if (! valid_arg_idx (arg_idx)) |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
198 error ("validateattributes: ARG_IDX must be a positive integer"); |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
199 endif |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
200 var_name = sprintf ("%s (argument #%i)", var_name, arg_idx); |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
201 endif |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
202 endif |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
203 endif |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
204 err_ini = [func_name var_name]; |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
205 |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
206 check_cl = isa (A, cls); |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
207 if (! isempty (check_cl) && ! any (check_cl)) |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
208 ## Allowing for an empty list of classes is Matlab incompatible but |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
209 ## that should count as a just a Matlab bug, not an incompatibility. |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
210 |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
211 ## Replace the category names with the classes that belong to it. |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
212 integer = { "int8" "int16" "int32" "int64" ... |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
213 "uint8" "uint16" "uint32" "uint64"}; |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
214 float = {"single" "double"}; |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
215 numeric = {integer{:} float{:}}; |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
216 cls = replace_cl_group (cls, "integer", integer); |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
217 cls = replace_cl_group (cls, "float", float ); |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
218 cls = replace_cl_group (cls, "numeric", numeric); |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
219 cls = unique (cls); |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
220 |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
221 classes = sprintf (" %s", cls{:}); |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
222 error ("%s must be of class:\n\n %s\n\nbut was of class %s", |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
223 err_ini, classes, class (A)); |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
224 endif |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
225 |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
226 ## We use a while loop because some attributes require the following value |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
227 ## in the cell array. Also, we can't just get the boolean value for the |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
228 ## test and check at the end the error message since some of the tests |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
229 ## require some more complex error message. |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
230 |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
231 ## It may look like that we don't perform enough input check in this |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
232 ## function (e.g., we don't check if there's a value after the size |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
233 ## attribute). The reasoning is that this will be a function mostly used |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
234 ## by developers with fairly static input so any problem would be caught |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
235 ## immediately during that functino development, it's no dependent on the |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
236 ## final user input. In addition, it can be called so many times at the |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
237 ## start of every function, we want it to run specially fast. |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
238 idx = 1; |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
239 problem = false; # becomes true when one of the tests fails |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
240 while (idx <= numel (attr)) |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
241 ## TODO: once we use this in Octave core, it might be worthy to find |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
242 ## which attributes are checked more often, and place them in that |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
243 ## order inside the switch block. |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
244 switch (tolower (attr{idx++})) |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
245 case "2d", problem = ndims (A) != 2; |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
246 case "3d", problem = ndims (A) > 3; |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
247 case "column", problem = ! iscolumn (A); |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
248 case "row", problem = ! isrow (A); |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
249 case "scalar", problem = ! isscalar (A); |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
250 case "vector", problem = ! isvector (A); |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
251 case "square", problem = ! issquare (A); |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
252 case "nonempty", problem = isempty (A); |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
253 case "nonsparse", problem = issparse (A); |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
254 case "binary", problem = ! islogical (A) && ... |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
255 any ((A(:) != 1) & (A(:) != 0)); |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
256 case "even", problem = any (rem (A(:), 2) != 0); |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
257 case "odd", problem = any (mod (A(:), 2) != 1); |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
258 case "integer", problem = ! isinteger (A) && ... |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
259 any (ceil (A(:)) != A(:)); |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
260 case "real", problem = ! isreal (A); |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
261 case "finite", problem = ! isinteger (A) && ... |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
262 ! all (isfinite (A(:))); |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
263 case "nonnan", problem = ! isinteger (A) && ... |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
264 any (isnan (A(:))); |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
265 case "nonnegative", problem = any (A(:) < 0); |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
266 case "nonzero", problem = any (A(:) == 0); |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
267 case "positive", problem = any (A(:) <= 0); |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
268 case "decreasing", problem = (any (isnan (A(:))) || |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
269 any (diff (A(:)) >= 0)); |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
270 case "increasing", problem = (any (isnan (A(:))) || |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
271 any (diff (A(:)) <= 0)); |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
272 case "nondecreasing", problem = (any (isnan (A(:))) || |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
273 any (diff (A(:)) < 0)); |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
274 case "nonincreasing", problem = (any (isnan (A(:))) || |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
275 any (diff (A(:)) > 0)); |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
276 case "size", |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
277 A_size = size (A); |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
278 w_size = attr{idx++}; |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
279 A_size(isnan (w_size)) = NaN; |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
280 if (! isequaln (A_size, w_size)) |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
281 A_size_str = sprintf ("%dx", size (A))(1:end-1); |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
282 w_size_str = sprintf ("%ix", w_size)(1:end-1); |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
283 w_size_str = strrep (w_size_str, "NaN", "N"); |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
284 error ("%s must be of size %s but was %s", err_ini, w_size_str, A_size_str); |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
285 endif |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
286 case "numel", |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
287 if (numel (A) != attr{idx++}) |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
288 error ("%s must have %d elements", err_ini, attr{idx-1}); |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
289 endif |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
290 case "ncols", |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
291 if (columns (A) != attr{idx++}) |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
292 error ("%s must have %d columns", err_ini, attr{idx-1}); |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
293 endif |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
294 case "nrows", |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
295 if (rows (A) != attr{idx++}) |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
296 error ("%s must have %d rows", err_ini, attr{idx-1}); |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
297 endif |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
298 case "ndims", |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
299 ## Note that a [4 5 1] matrix is not considered to have ndims == 3 |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
300 ## but is ok for "3d". This is not a bug. |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
301 if (ndims (A) != attr{idx++}) |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
302 error ("%s must have %d dimensions", err_ini, attr{idx-1}); |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
303 endif |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
304 case ">" |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
305 if (! all (A(:) > attr{idx++})) |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
306 error ("%s must be greater than %f", err_ini, attr{idx-1}); |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
307 endif |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
308 case ">=" |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
309 if (! all (A(:) >= attr{idx++})) |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
310 error ("%s must be greater than or equal to %f", err_ini, attr{idx-1}); |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
311 endif |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
312 case "<" |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
313 if (! all (A(:) < attr{idx++})) |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
314 error ("%s must be less than %f", err_ini, attr{idx-1}); |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
315 endif |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
316 case "<=" |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
317 if (! all (A(:) <= attr{idx++})) |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
318 error ("%s must be less than or equal to %f", err_ini, attr{idx-1}); |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
319 endif |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
320 otherwise |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
321 error ("validateattributes: unknown ATTRIBUTE %s", attr{idx-1}); |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
322 endswitch |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
323 if (problem) |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
324 error ("%s must be %s", err_ini, attr{idx-1}); |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
325 endif |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
326 endwhile |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
327 endfunction |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
328 |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
329 function retval = valid_arg_idx (arg) |
19930
5f2c0ca0ef51
Ensure that numbers passed to integer *printf format codes are integers (bug #44245).
Rik <rik@octave.org>
parents:
19898
diff
changeset
|
330 retval = isnumeric (arg) && isscalar (arg) && arg > 0 && arg == fix (arg); |
18038
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
331 endfunction |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
332 |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
333 function cls = replace_cl_group (cls, name, group) |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
334 num_pos = strcmpi (cls, name); |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
335 if (any (num_pos)) |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
336 cls(num_pos) = []; |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
337 cls(end+1:end+numel(group)) = group; |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
338 endif |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
339 endfunction |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
340 |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
341 %!error <double> validateattributes (rand (5), {"uint8"}, {}) |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
342 %!error <single> validateattributes (uint8 (rand (5)), {"float"}, {}) |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
343 %!error <2d> validateattributes (rand (5, 5, 5), {}, {"2d"}) |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
344 %!error <3d> validateattributes (rand (5, 5, 5, 7), {}, {"3d"}) |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
345 %!error <column> validateattributes (rand (5, 5), {}, {"column"}) |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
346 %!error <column> validateattributes (rand (1, 5), {}, {"column"}) |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
347 %!error <row> validateattributes (rand (5, 5), {}, {"row"}) |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
348 %!error <row> validateattributes (rand (5, 1), {}, {"row"}) |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
349 %!error <scalar> validateattributes (rand (1, 5), {}, {"scalar"}) |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
350 %!error <vector> validateattributes (rand (5), {}, {"vector"}) |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
351 %!error <square> validateattributes (rand (5, 6), {}, {"square"}) |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
352 %!error <nonempty> validateattributes ([], {}, {"nonempty"}) |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
353 %!error <nonsparse> validateattributes (sparse(rand(5)), {}, {"nonsparse"}) |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
354 %!error <binary> validateattributes ("text", {}, {"binary"}) |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
355 %!error <binary> validateattributes ([0 1 0 3 0], {}, {"binary"}) |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
356 %!error <even> validateattributes ([2 3 6 8], {}, {"even"}) |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
357 %!error <even> validateattributes ([2 NaN], {}, {"even"}) |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
358 %!error <odd> validateattributes ([3 4 7 5], {}, {"odd"}) |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
359 %!error <odd> validateattributes ([5 NaN], {}, {"odd"}) |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
360 %!error <integer> validateattributes ([5 5.2 5.7], {}, {"integer"}) |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
361 %!error <real> validateattributes ([5i 8 9], {}, {"real"}) |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
362 %!error <finite> validateattributes ([5i Inf 8], {}, {"finite"}) |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
363 %!error <nonnan> validateattributes ([NaN Inf 8], {}, {"nonnan"}) |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
364 %!error <nonnegative> validateattributes ([7 8 -9], {}, {"nonnegative"}) |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
365 %!error <nonzero> validateattributes ([7 8 0], {}, {"nonzero"}) |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
366 %!error <positive> validateattributes ([7 0 8], {}, {"positive"}) |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
367 %!error <decreasing> validateattributes ([7 8 4 3 -5], {}, {"decreasing"}) |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
368 %!error <decreasing> validateattributes ([7 NaN 4 3 -5], {}, {"decreasing"}) |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
369 %!error <increasing> validateattributes ([7 8 4 9 20], {}, {"increasing"}) |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
370 %!error <increasing> validateattributes ([7 8 NaN 9 20], {}, {"increasing"}) |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
371 %!error <nonincreasing> validateattributes ([7 8 4 9 20], {}, {"nonincreasing"}) |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
372 %!error <nonincreasing> validateattributes ([7 8 NaN 9 20], {}, {"nonincreasing"}) |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
373 %!error <nondecreasing> validateattributes ([7 8 4 3 -5], {}, {"nondecreasing"}) |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
374 %!error <nondecreasing> validateattributes ([7 NaN 4 3 -5], {}, {"nondecreasing"}) |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
375 %!error <size> validateattributes (ones (5, 3, 6), {}, {"size", [5 4 7]}) |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
376 %!error <size> validateattributes (ones (5, 3, 6), {}, {"size", [5 NaN 7]}) |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
377 %!error <size> validateattributes (ones (5, 3, 6), {}, {"size", [5 3 6 2]}) |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
378 %!error <elements> validateattributes (ones (6, 3), {}, {"numel", 12}) |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
379 %!error <columns> validateattributes (ones (6, 2), {}, {"ncols", 3}) |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
380 %!error <rows> validateattributes (ones (6, 2), {}, {"nrows", 3}) |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
381 %!error <dimensions> validateattributes (ones (6, 2, 6, 3), {}, {"ndims", 3}) |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
382 %!error <greater than> validateattributes ([6 7 8 5], {}, {">", 5}) |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
383 %!error <greater than> validateattributes ([6 7 8 5], {}, {">=", 6}) |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
384 %!error <less than> validateattributes ([6 7 8 5], {}, {"<", 8}) |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
385 %!error <less than> validateattributes ([6 7 8 5], {}, {"<=", 7}) |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
386 |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
387 %!test |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
388 %! validateattributes (rand (5), {"numeric"}, {}) |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
389 %! validateattributes (rand (5), {"float"}, {}) |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
390 %! validateattributes (rand (5), {"double"}, {}) |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
391 %! validateattributes ("text", {"char"}, {}) |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
392 %! validateattributes (rand (5), {}, {"2d"}) |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
393 %! validateattributes (rand (5), {}, {"3d"}) |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
394 %! validateattributes (rand (5, 5, 5), {}, {"3d"}) |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
395 %! validateattributes (rand (5, 1), {}, {"column"}) |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
396 %! validateattributes (rand (1, 5), {}, {"row"}) |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
397 %! validateattributes ("a", {}, {"scalar"}) |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
398 %! validateattributes (5, {}, {"scalar"}) |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
399 %! validateattributes (rand (1, 5), {}, {"vector"}) |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
400 %! validateattributes (rand (5, 1), {}, {"vector"}) |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
401 %! validateattributes (rand (5), {}, {"square"}) |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
402 %! validateattributes (rand (5), {}, {"nonempty"}) |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
403 %! validateattributes (rand (5), {}, {"nonsparse"}) |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
404 %! validateattributes ([0 1 0 1 0], {}, {"binary"}) |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
405 %! validateattributes (rand (5) > 0.5, {}, {"binary"}) |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
406 %! validateattributes ([8 4 0 6], {}, {"even"}) |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
407 %! validateattributes ([-1 3 5], {}, {"odd"}) |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
408 %! validateattributes ([8 4 0 6], {}, {"real"}) |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
409 %! validateattributes ([8 4i 0 6], {}, {"finite"}) |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
410 %! validateattributes (uint8 ([8 4]), {}, {"finite"}) |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
411 %! validateattributes ([8 Inf], {}, {"nonnan"}) |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
412 %! validateattributes ([0 7 4], {}, {"nonnegative"}) |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
413 %! validateattributes ([-8 7 4], {}, {"nonzero"}) |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
414 %! validateattributes ([8 7 4], {}, {"positive"}) |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
415 %! validateattributes ([8 7 4 -5], {}, {"decreasing"}) |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
416 %! validateattributes ([-8 -7 4 5], {}, {"increasing"}) |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
417 %! validateattributes ([8 4 4 -5], {}, {"nonincreasing"}) |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
418 %! validateattributes ([-8 -8 4 5], {}, {"nondecreasing"}) |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
419 %! validateattributes (rand (4, 6, 7, 2), {}, {"size", [4 6 7 2]}) |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
420 %! validateattributes (rand (4, 6, 7, 2), {}, {"size", [4 NaN 7 2]}) |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
421 %! validateattributes (rand (4, 6, 7, 2), {}, {"size", [4 6 NaN 2 NaN]}) |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
422 %! validateattributes (rand (6, 2), {}, {"numel", 12}) |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
423 %! validateattributes (rand (6, 2), {}, {"ncols", 2}) |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
424 %! validateattributes (rand (6, 2), {}, {"nrows", 6}) |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
425 %! validateattributes (rand (6, 2, 4, 5), {}, {"ndims", 4}) |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
426 %! validateattributes ([4 5 6 7], {}, {">", 3}) |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
427 %! validateattributes ([4 5 6 7], {}, {">=", 4}) |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
428 %! validateattributes ([4 5 6 7], {}, {"<", 8}) |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
429 %! validateattributes ([4 5 6 7], {}, {"<=", 7}) |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
430 |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
431 %!test |
c404cec84eb4
New function validaattributes to perform input checking for functions.
Carnë Draug <carandraug@octave.org>
parents:
diff
changeset
|
432 %! validateattributes ([0 1 0 1], {"double", "uint8"}, {"binary", "size", [NaN 4], "nonnan"}) |