Mercurial > octave
annotate scripts/+matlab/+lang/makeValidName.m @ 30564:796f54d4ddbf stable
update Octave Project Developers copyright for the new year
In files that have the "Octave Project Developers" copyright notice,
update for 2021.
In all .txi and .texi files except gpl.txi and gpl.texi in the
doc/liboctave and doc/interpreter directories, change the copyright
to "Octave Project Developers", the same as used for other source
files. Update copyright notices for 2022 (not done since 2019). For
gpl.txi and gpl.texi, change the copyright notice to be "Free Software
Foundation, Inc." and leave the date at 2007 only because this file
only contains the text of the GPL, not anything created by the Octave
Project Developers.
Add Paul Thomas to contributors.in.
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Tue, 28 Dec 2021 18:22:40 -0500 |
parents | 7854d5752dd2 |
children | fd29c7a50a78 |
rev | line source |
---|---|
27923
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
1 ######################################################################## |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
2 ## |
30564
796f54d4ddbf
update Octave Project Developers copyright for the new year
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
3 ## Copyright (C) 2017-2022 The Octave Project Developers |
27918
b442ec6dda5c
use centralized file for copyright info for individual contributors
John W. Eaton <jwe@octave.org>
parents:
26376
diff
changeset
|
4 ## |
27923
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
5 ## See the file COPYRIGHT.md in the top-level directory of this |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
6 ## distribution or <https://octave.org/copyright/>. |
26201
750a6f9957ea
New functions makeUniqueStrings and makeValidName (bug #52596).
Guillaume Flandin <guillaume.offline@gmail.com>
parents:
diff
changeset
|
7 ## |
750a6f9957ea
New functions makeUniqueStrings and makeValidName (bug #52596).
Guillaume Flandin <guillaume.offline@gmail.com>
parents:
diff
changeset
|
8 ## This file is part of Octave. |
750a6f9957ea
New functions makeUniqueStrings and makeValidName (bug #52596).
Guillaume Flandin <guillaume.offline@gmail.com>
parents:
diff
changeset
|
9 ## |
26202
368dc1142072
makeValidName.m, makeUniqueStrings.m: Clean up functions to use Octave conventions.
Rik <rik@octave.org>
parents:
26201
diff
changeset
|
10 ## Octave is free software: you can redistribute it and/or modify it |
26201
750a6f9957ea
New functions makeUniqueStrings and makeValidName (bug #52596).
Guillaume Flandin <guillaume.offline@gmail.com>
parents:
diff
changeset
|
11 ## under the terms of the GNU General Public License as published by |
26202
368dc1142072
makeValidName.m, makeUniqueStrings.m: Clean up functions to use Octave conventions.
Rik <rik@octave.org>
parents:
26201
diff
changeset
|
12 ## the Free Software Foundation, either version 3 of the License, or |
26201
750a6f9957ea
New functions makeUniqueStrings and makeValidName (bug #52596).
Guillaume Flandin <guillaume.offline@gmail.com>
parents:
diff
changeset
|
13 ## (at your option) any later version. |
750a6f9957ea
New functions makeUniqueStrings and makeValidName (bug #52596).
Guillaume Flandin <guillaume.offline@gmail.com>
parents:
diff
changeset
|
14 ## |
750a6f9957ea
New functions makeUniqueStrings and makeValidName (bug #52596).
Guillaume Flandin <guillaume.offline@gmail.com>
parents:
diff
changeset
|
15 ## Octave is distributed in the hope that it will be useful, but |
750a6f9957ea
New functions makeUniqueStrings and makeValidName (bug #52596).
Guillaume Flandin <guillaume.offline@gmail.com>
parents:
diff
changeset
|
16 ## WITHOUT ANY WARRANTY; without even the implied warranty of |
750a6f9957ea
New functions makeUniqueStrings and makeValidName (bug #52596).
Guillaume Flandin <guillaume.offline@gmail.com>
parents:
diff
changeset
|
17 ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
750a6f9957ea
New functions makeUniqueStrings and makeValidName (bug #52596).
Guillaume Flandin <guillaume.offline@gmail.com>
parents:
diff
changeset
|
18 ## GNU General Public License for more details. |
750a6f9957ea
New functions makeUniqueStrings and makeValidName (bug #52596).
Guillaume Flandin <guillaume.offline@gmail.com>
parents:
diff
changeset
|
19 ## |
750a6f9957ea
New functions makeUniqueStrings and makeValidName (bug #52596).
Guillaume Flandin <guillaume.offline@gmail.com>
parents:
diff
changeset
|
20 ## You should have received a copy of the GNU General Public License |
750a6f9957ea
New functions makeUniqueStrings and makeValidName (bug #52596).
Guillaume Flandin <guillaume.offline@gmail.com>
parents:
diff
changeset
|
21 ## along with Octave; see the file COPYING. If not, see |
26202
368dc1142072
makeValidName.m, makeUniqueStrings.m: Clean up functions to use Octave conventions.
Rik <rik@octave.org>
parents:
26201
diff
changeset
|
22 ## <https://www.gnu.org/licenses/>. |
27923
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
23 ## |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
24 ######################################################################## |
26201
750a6f9957ea
New functions makeUniqueStrings and makeValidName (bug #52596).
Guillaume Flandin <guillaume.offline@gmail.com>
parents:
diff
changeset
|
25 |
750a6f9957ea
New functions makeUniqueStrings and makeValidName (bug #52596).
Guillaume Flandin <guillaume.offline@gmail.com>
parents:
diff
changeset
|
26 ## -*- texinfo -*- |
26202
368dc1142072
makeValidName.m, makeUniqueStrings.m: Clean up functions to use Octave conventions.
Rik <rik@octave.org>
parents:
26201
diff
changeset
|
27 ## @deftypefn {} {@var{varname} =} matlab.lang.makeValidName (@var{str}) |
368dc1142072
makeValidName.m, makeUniqueStrings.m: Clean up functions to use Octave conventions.
Rik <rik@octave.org>
parents:
26201
diff
changeset
|
28 ## @deftypefnx {} {@var{varname} =} matlab.lang.makeValidName (@dots{}, @qcode{"ReplacementStyle"}, @var{rs}) |
368dc1142072
makeValidName.m, makeUniqueStrings.m: Clean up functions to use Octave conventions.
Rik <rik@octave.org>
parents:
26201
diff
changeset
|
29 ## @deftypefnx {} {@var{varname} =} matlab.lang.makeValidName (@dots{}, @qcode{"Prefix"}, @var{pfx}) |
368dc1142072
makeValidName.m, makeUniqueStrings.m: Clean up functions to use Octave conventions.
Rik <rik@octave.org>
parents:
26201
diff
changeset
|
30 ## @deftypefnx {} {[@var{varname}, @var{ismodified}] =} matlab.lang.makeValidName (@dots{}) |
368dc1142072
makeValidName.m, makeUniqueStrings.m: Clean up functions to use Octave conventions.
Rik <rik@octave.org>
parents:
26201
diff
changeset
|
31 ## |
368dc1142072
makeValidName.m, makeUniqueStrings.m: Clean up functions to use Octave conventions.
Rik <rik@octave.org>
parents:
26201
diff
changeset
|
32 ## Create valid variable name @var{varname} from @var{str}. |
26201
750a6f9957ea
New functions makeUniqueStrings and makeValidName (bug #52596).
Guillaume Flandin <guillaume.offline@gmail.com>
parents:
diff
changeset
|
33 ## |
26202
368dc1142072
makeValidName.m, makeUniqueStrings.m: Clean up functions to use Octave conventions.
Rik <rik@octave.org>
parents:
26201
diff
changeset
|
34 ## The input @var{str} must be a string or a cell array of strings. |
368dc1142072
makeValidName.m, makeUniqueStrings.m: Clean up functions to use Octave conventions.
Rik <rik@octave.org>
parents:
26201
diff
changeset
|
35 ## The output @var{varname} will be of the same type. |
26201
750a6f9957ea
New functions makeUniqueStrings and makeValidName (bug #52596).
Guillaume Flandin <guillaume.offline@gmail.com>
parents:
diff
changeset
|
36 ## |
26202
368dc1142072
makeValidName.m, makeUniqueStrings.m: Clean up functions to use Octave conventions.
Rik <rik@octave.org>
parents:
26201
diff
changeset
|
37 ## A valid variable name is a sequence of letters, digits, and underscores that |
368dc1142072
makeValidName.m, makeUniqueStrings.m: Clean up functions to use Octave conventions.
Rik <rik@octave.org>
parents:
26201
diff
changeset
|
38 ## does not begin with a digit. |
26201
750a6f9957ea
New functions makeUniqueStrings and makeValidName (bug #52596).
Guillaume Flandin <guillaume.offline@gmail.com>
parents:
diff
changeset
|
39 ## |
26202
368dc1142072
makeValidName.m, makeUniqueStrings.m: Clean up functions to use Octave conventions.
Rik <rik@octave.org>
parents:
26201
diff
changeset
|
40 ## The @qcode{"ReplacementStyle"} option specifies how invalid characters |
368dc1142072
makeValidName.m, makeUniqueStrings.m: Clean up functions to use Octave conventions.
Rik <rik@octave.org>
parents:
26201
diff
changeset
|
41 ## are handled. Acceptable values are |
26201
750a6f9957ea
New functions makeUniqueStrings and makeValidName (bug #52596).
Guillaume Flandin <guillaume.offline@gmail.com>
parents:
diff
changeset
|
42 ## |
26202
368dc1142072
makeValidName.m, makeUniqueStrings.m: Clean up functions to use Octave conventions.
Rik <rik@octave.org>
parents:
26201
diff
changeset
|
43 ## @table @asis |
368dc1142072
makeValidName.m, makeUniqueStrings.m: Clean up functions to use Octave conventions.
Rik <rik@octave.org>
parents:
26201
diff
changeset
|
44 ## @item @qcode{"underscore"} (default) |
368dc1142072
makeValidName.m, makeUniqueStrings.m: Clean up functions to use Octave conventions.
Rik <rik@octave.org>
parents:
26201
diff
changeset
|
45 ## Replace all invalid characters with an underscore (@qcode{"_"}). |
368dc1142072
makeValidName.m, makeUniqueStrings.m: Clean up functions to use Octave conventions.
Rik <rik@octave.org>
parents:
26201
diff
changeset
|
46 ## |
368dc1142072
makeValidName.m, makeUniqueStrings.m: Clean up functions to use Octave conventions.
Rik <rik@octave.org>
parents:
26201
diff
changeset
|
47 ## @item @qcode{"delete"} |
368dc1142072
makeValidName.m, makeUniqueStrings.m: Clean up functions to use Octave conventions.
Rik <rik@octave.org>
parents:
26201
diff
changeset
|
48 ## Remove any invalid character. |
368dc1142072
makeValidName.m, makeUniqueStrings.m: Clean up functions to use Octave conventions.
Rik <rik@octave.org>
parents:
26201
diff
changeset
|
49 ## |
368dc1142072
makeValidName.m, makeUniqueStrings.m: Clean up functions to use Octave conventions.
Rik <rik@octave.org>
parents:
26201
diff
changeset
|
50 ## @item @qcode{"hex"} |
368dc1142072
makeValidName.m, makeUniqueStrings.m: Clean up functions to use Octave conventions.
Rik <rik@octave.org>
parents:
26201
diff
changeset
|
51 ## Replace all invalid characters with their hexadecimal representation. |
368dc1142072
makeValidName.m, makeUniqueStrings.m: Clean up functions to use Octave conventions.
Rik <rik@octave.org>
parents:
26201
diff
changeset
|
52 ## @end table |
26201
750a6f9957ea
New functions makeUniqueStrings and makeValidName (bug #52596).
Guillaume Flandin <guillaume.offline@gmail.com>
parents:
diff
changeset
|
53 ## |
26202
368dc1142072
makeValidName.m, makeUniqueStrings.m: Clean up functions to use Octave conventions.
Rik <rik@octave.org>
parents:
26201
diff
changeset
|
54 ## Whitespace characters are always removed @strong{prior} to the application |
368dc1142072
makeValidName.m, makeUniqueStrings.m: Clean up functions to use Octave conventions.
Rik <rik@octave.org>
parents:
26201
diff
changeset
|
55 ## of the @qcode{"ReplacementStyle"}. Lowercase letters following a whitespace |
368dc1142072
makeValidName.m, makeUniqueStrings.m: Clean up functions to use Octave conventions.
Rik <rik@octave.org>
parents:
26201
diff
changeset
|
56 ## will be changed to uppercase. |
26201
750a6f9957ea
New functions makeUniqueStrings and makeValidName (bug #52596).
Guillaume Flandin <guillaume.offline@gmail.com>
parents:
diff
changeset
|
57 ## |
26202
368dc1142072
makeValidName.m, makeUniqueStrings.m: Clean up functions to use Octave conventions.
Rik <rik@octave.org>
parents:
26201
diff
changeset
|
58 ## The @qcode{"Prefix"} option specifies the string @var{pfx} to add as a |
368dc1142072
makeValidName.m, makeUniqueStrings.m: Clean up functions to use Octave conventions.
Rik <rik@octave.org>
parents:
26201
diff
changeset
|
59 ## prefix to the input if it begins with a digit. @var{pfx} must be a valid |
368dc1142072
makeValidName.m, makeUniqueStrings.m: Clean up functions to use Octave conventions.
Rik <rik@octave.org>
parents:
26201
diff
changeset
|
60 ## variable name itself. The default prefix is @qcode{"x"}. |
368dc1142072
makeValidName.m, makeUniqueStrings.m: Clean up functions to use Octave conventions.
Rik <rik@octave.org>
parents:
26201
diff
changeset
|
61 ## |
368dc1142072
makeValidName.m, makeUniqueStrings.m: Clean up functions to use Octave conventions.
Rik <rik@octave.org>
parents:
26201
diff
changeset
|
62 ## The optional output @var{ismodified} is a logical array indicating whether |
368dc1142072
makeValidName.m, makeUniqueStrings.m: Clean up functions to use Octave conventions.
Rik <rik@octave.org>
parents:
26201
diff
changeset
|
63 ## the respective element in @var{str} was a valid name or not. |
26201
750a6f9957ea
New functions makeUniqueStrings and makeValidName (bug #52596).
Guillaume Flandin <guillaume.offline@gmail.com>
parents:
diff
changeset
|
64 ## |
750a6f9957ea
New functions makeUniqueStrings and makeValidName (bug #52596).
Guillaume Flandin <guillaume.offline@gmail.com>
parents:
diff
changeset
|
65 ## @seealso{iskeyword, isvarname, matlab.lang.makeUniqueStrings} |
750a6f9957ea
New functions makeUniqueStrings and makeValidName (bug #52596).
Guillaume Flandin <guillaume.offline@gmail.com>
parents:
diff
changeset
|
66 ## @end deftypefn |
750a6f9957ea
New functions makeUniqueStrings and makeValidName (bug #52596).
Guillaume Flandin <guillaume.offline@gmail.com>
parents:
diff
changeset
|
67 |
29091
b924b916dc91
matlab.lang.makeValidName: reimplement in C++ (patch #9998)
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents:
28886
diff
changeset
|
68 function [varname, ismodified] = makeValidName (varargin) |
26201
750a6f9957ea
New functions makeUniqueStrings and makeValidName (bug #52596).
Guillaume Flandin <guillaume.offline@gmail.com>
parents:
diff
changeset
|
69 |
29091
b924b916dc91
matlab.lang.makeValidName: reimplement in C++ (patch #9998)
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents:
28886
diff
changeset
|
70 [varname, ismodified] = __make_valid_name__ (varargin{:}); |
26201
750a6f9957ea
New functions makeUniqueStrings and makeValidName (bug #52596).
Guillaume Flandin <guillaume.offline@gmail.com>
parents:
diff
changeset
|
71 |
750a6f9957ea
New functions makeUniqueStrings and makeValidName (bug #52596).
Guillaume Flandin <guillaume.offline@gmail.com>
parents:
diff
changeset
|
72 endfunction |
750a6f9957ea
New functions makeUniqueStrings and makeValidName (bug #52596).
Guillaume Flandin <guillaume.offline@gmail.com>
parents:
diff
changeset
|
73 |
750a6f9957ea
New functions makeUniqueStrings and makeValidName (bug #52596).
Guillaume Flandin <guillaume.offline@gmail.com>
parents:
diff
changeset
|
74 |
750a6f9957ea
New functions makeUniqueStrings and makeValidName (bug #52596).
Guillaume Flandin <guillaume.offline@gmail.com>
parents:
diff
changeset
|
75 ## Test char vector input |
750a6f9957ea
New functions makeUniqueStrings and makeValidName (bug #52596).
Guillaume Flandin <guillaume.offline@gmail.com>
parents:
diff
changeset
|
76 %!test |
26202
368dc1142072
makeValidName.m, makeUniqueStrings.m: Clean up functions to use Octave conventions.
Rik <rik@octave.org>
parents:
26201
diff
changeset
|
77 %! varname = matlab.lang.makeValidName ("octave"); |
368dc1142072
makeValidName.m, makeUniqueStrings.m: Clean up functions to use Octave conventions.
Rik <rik@octave.org>
parents:
26201
diff
changeset
|
78 %! assert (varname, "octave"); |
26201
750a6f9957ea
New functions makeUniqueStrings and makeValidName (bug #52596).
Guillaume Flandin <guillaume.offline@gmail.com>
parents:
diff
changeset
|
79 |
750a6f9957ea
New functions makeUniqueStrings and makeValidName (bug #52596).
Guillaume Flandin <guillaume.offline@gmail.com>
parents:
diff
changeset
|
80 ## Test cellstr input |
750a6f9957ea
New functions makeUniqueStrings and makeValidName (bug #52596).
Guillaume Flandin <guillaume.offline@gmail.com>
parents:
diff
changeset
|
81 %!test |
26202
368dc1142072
makeValidName.m, makeUniqueStrings.m: Clean up functions to use Octave conventions.
Rik <rik@octave.org>
parents:
26201
diff
changeset
|
82 %! varname = matlab.lang.makeValidName ({"gnu", "octave"}); |
368dc1142072
makeValidName.m, makeUniqueStrings.m: Clean up functions to use Octave conventions.
Rik <rik@octave.org>
parents:
26201
diff
changeset
|
83 %! assert (varname, {"gnu", "octave"}); |
26201
750a6f9957ea
New functions makeUniqueStrings and makeValidName (bug #52596).
Guillaume Flandin <guillaume.offline@gmail.com>
parents:
diff
changeset
|
84 |
750a6f9957ea
New functions makeUniqueStrings and makeValidName (bug #52596).
Guillaume Flandin <guillaume.offline@gmail.com>
parents:
diff
changeset
|
85 ## Test default flags |
750a6f9957ea
New functions makeUniqueStrings and makeValidName (bug #52596).
Guillaume Flandin <guillaume.offline@gmail.com>
parents:
diff
changeset
|
86 %!test |
26202
368dc1142072
makeValidName.m, makeUniqueStrings.m: Clean up functions to use Octave conventions.
Rik <rik@octave.org>
parents:
26201
diff
changeset
|
87 %! str = {"Octave", "3d plot", "GNU/Octave", "laplace_*"}; |
368dc1142072
makeValidName.m, makeUniqueStrings.m: Clean up functions to use Octave conventions.
Rik <rik@octave.org>
parents:
26201
diff
changeset
|
88 %! varname = matlab.lang.makeValidName (str); |
368dc1142072
makeValidName.m, makeUniqueStrings.m: Clean up functions to use Octave conventions.
Rik <rik@octave.org>
parents:
26201
diff
changeset
|
89 %! assert (varname, {"Octave", "x3dPlot", "GNU_Octave", "laplace__"}); |
26201
750a6f9957ea
New functions makeUniqueStrings and makeValidName (bug #52596).
Guillaume Flandin <guillaume.offline@gmail.com>
parents:
diff
changeset
|
90 |
750a6f9957ea
New functions makeUniqueStrings and makeValidName (bug #52596).
Guillaume Flandin <guillaume.offline@gmail.com>
parents:
diff
changeset
|
91 ## Test ReplacementStyle flag |
750a6f9957ea
New functions makeUniqueStrings and makeValidName (bug #52596).
Guillaume Flandin <guillaume.offline@gmail.com>
parents:
diff
changeset
|
92 %!test |
26202
368dc1142072
makeValidName.m, makeUniqueStrings.m: Clean up functions to use Octave conventions.
Rik <rik@octave.org>
parents:
26201
diff
changeset
|
93 %! str = {"Octave", "3d plot", "GNU/Octave", "laplace_*"}; |
368dc1142072
makeValidName.m, makeUniqueStrings.m: Clean up functions to use Octave conventions.
Rik <rik@octave.org>
parents:
26201
diff
changeset
|
94 %! varname = matlab.lang.makeValidName (str, "ReplacementStyle", "underscore"); |
368dc1142072
makeValidName.m, makeUniqueStrings.m: Clean up functions to use Octave conventions.
Rik <rik@octave.org>
parents:
26201
diff
changeset
|
95 %! assert (varname, {"Octave", "x3dPlot", "GNU_Octave", "laplace__"}); |
368dc1142072
makeValidName.m, makeUniqueStrings.m: Clean up functions to use Octave conventions.
Rik <rik@octave.org>
parents:
26201
diff
changeset
|
96 %! varname = matlab.lang.makeValidName (str, "ReplacementStyle", "hex"); |
368dc1142072
makeValidName.m, makeUniqueStrings.m: Clean up functions to use Octave conventions.
Rik <rik@octave.org>
parents:
26201
diff
changeset
|
97 %! assert (varname, {"Octave", "x3dPlot", "GNU0x2FOctave", "laplace_0x2A"}); |
368dc1142072
makeValidName.m, makeUniqueStrings.m: Clean up functions to use Octave conventions.
Rik <rik@octave.org>
parents:
26201
diff
changeset
|
98 %! varname = matlab.lang.makeValidName (str, "ReplacementStyle", "delete"); |
368dc1142072
makeValidName.m, makeUniqueStrings.m: Clean up functions to use Octave conventions.
Rik <rik@octave.org>
parents:
26201
diff
changeset
|
99 %! assert (varname, {"Octave", "x3dPlot", "GNUOctave", "laplace_"}); |
26201
750a6f9957ea
New functions makeUniqueStrings and makeValidName (bug #52596).
Guillaume Flandin <guillaume.offline@gmail.com>
parents:
diff
changeset
|
100 |
750a6f9957ea
New functions makeUniqueStrings and makeValidName (bug #52596).
Guillaume Flandin <guillaume.offline@gmail.com>
parents:
diff
changeset
|
101 ## Test Prefix flag |
750a6f9957ea
New functions makeUniqueStrings and makeValidName (bug #52596).
Guillaume Flandin <guillaume.offline@gmail.com>
parents:
diff
changeset
|
102 %!test |
750a6f9957ea
New functions makeUniqueStrings and makeValidName (bug #52596).
Guillaume Flandin <guillaume.offline@gmail.com>
parents:
diff
changeset
|
103 %! assert (matlab.lang.makeValidName ({"", " "}), {"x", "x"}); |
26202
368dc1142072
makeValidName.m, makeUniqueStrings.m: Clean up functions to use Octave conventions.
Rik <rik@octave.org>
parents:
26201
diff
changeset
|
104 %! str = {"Octave", "3d plot", "GNU/Octave", "laplace_*"}; |
368dc1142072
makeValidName.m, makeUniqueStrings.m: Clean up functions to use Octave conventions.
Rik <rik@octave.org>
parents:
26201
diff
changeset
|
105 %! varname = matlab.lang.makeValidName (str, "prefix", "oct_"); |
368dc1142072
makeValidName.m, makeUniqueStrings.m: Clean up functions to use Octave conventions.
Rik <rik@octave.org>
parents:
26201
diff
changeset
|
106 %! assert (varname, {"Octave", "oct_3dPlot", "GNU_Octave", "laplace__"}); |
26201
750a6f9957ea
New functions makeUniqueStrings and makeValidName (bug #52596).
Guillaume Flandin <guillaume.offline@gmail.com>
parents:
diff
changeset
|
107 |
750a6f9957ea
New functions makeUniqueStrings and makeValidName (bug #52596).
Guillaume Flandin <guillaume.offline@gmail.com>
parents:
diff
changeset
|
108 ## Test second output |
750a6f9957ea
New functions makeUniqueStrings and makeValidName (bug #52596).
Guillaume Flandin <guillaume.offline@gmail.com>
parents:
diff
changeset
|
109 %!test |
26202
368dc1142072
makeValidName.m, makeUniqueStrings.m: Clean up functions to use Octave conventions.
Rik <rik@octave.org>
parents:
26201
diff
changeset
|
110 %! str = {"Octave", "3d plot", "GNU/Octave", "laplace_*"}; |
368dc1142072
makeValidName.m, makeUniqueStrings.m: Clean up functions to use Octave conventions.
Rik <rik@octave.org>
parents:
26201
diff
changeset
|
111 %! [varname, modified] = matlab.lang.makeValidName (str); |
26201
750a6f9957ea
New functions makeUniqueStrings and makeValidName (bug #52596).
Guillaume Flandin <guillaume.offline@gmail.com>
parents:
diff
changeset
|
112 %! assert (modified, [false, true, true, true]); |
750a6f9957ea
New functions makeUniqueStrings and makeValidName (bug #52596).
Guillaume Flandin <guillaume.offline@gmail.com>
parents:
diff
changeset
|
113 |
26202
368dc1142072
makeValidName.m, makeUniqueStrings.m: Clean up functions to use Octave conventions.
Rik <rik@octave.org>
parents:
26201
diff
changeset
|
114 ## Test whitespace followed by a lowercase letter |
26201
750a6f9957ea
New functions makeUniqueStrings and makeValidName (bug #52596).
Guillaume Flandin <guillaume.offline@gmail.com>
parents:
diff
changeset
|
115 %!test |
26202
368dc1142072
makeValidName.m, makeUniqueStrings.m: Clean up functions to use Octave conventions.
Rik <rik@octave.org>
parents:
26201
diff
changeset
|
116 %! varname = matlab.lang.makeValidName ("gnu octave"); |
368dc1142072
makeValidName.m, makeUniqueStrings.m: Clean up functions to use Octave conventions.
Rik <rik@octave.org>
parents:
26201
diff
changeset
|
117 %! assert (varname, "gnuOctave"); |
368dc1142072
makeValidName.m, makeUniqueStrings.m: Clean up functions to use Octave conventions.
Rik <rik@octave.org>
parents:
26201
diff
changeset
|
118 %! varname = matlab.lang.makeValidName (" octave "); |
368dc1142072
makeValidName.m, makeUniqueStrings.m: Clean up functions to use Octave conventions.
Rik <rik@octave.org>
parents:
26201
diff
changeset
|
119 %! assert (varname, "octave"); |
26201
750a6f9957ea
New functions makeUniqueStrings and makeValidName (bug #52596).
Guillaume Flandin <guillaume.offline@gmail.com>
parents:
diff
changeset
|
120 |
750a6f9957ea
New functions makeUniqueStrings and makeValidName (bug #52596).
Guillaume Flandin <guillaume.offline@gmail.com>
parents:
diff
changeset
|
121 ## Check for keywords |
750a6f9957ea
New functions makeUniqueStrings and makeValidName (bug #52596).
Guillaume Flandin <guillaume.offline@gmail.com>
parents:
diff
changeset
|
122 %!test |
750a6f9957ea
New functions makeUniqueStrings and makeValidName (bug #52596).
Guillaume Flandin <guillaume.offline@gmail.com>
parents:
diff
changeset
|
123 %! assert (matlab.lang.makeValidName ("for"), "xFor") |
750a6f9957ea
New functions makeUniqueStrings and makeValidName (bug #52596).
Guillaume Flandin <guillaume.offline@gmail.com>
parents:
diff
changeset
|
124 %! assert (matlab.lang.makeValidName ("For"), "For") |
750a6f9957ea
New functions makeUniqueStrings and makeValidName (bug #52596).
Guillaume Flandin <guillaume.offline@gmail.com>
parents:
diff
changeset
|
125 %!error matlab.lang.makeValidName ("for", "Prefix", "for") |
750a6f9957ea
New functions makeUniqueStrings and makeValidName (bug #52596).
Guillaume Flandin <guillaume.offline@gmail.com>
parents:
diff
changeset
|
126 |
750a6f9957ea
New functions makeUniqueStrings and makeValidName (bug #52596).
Guillaume Flandin <guillaume.offline@gmail.com>
parents:
diff
changeset
|
127 ## Test input validation |
28886
d8318c12d903
test: remove unnecessary BIST tests in m-files checking for excessive number of inputs.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
128 %!error <Invalid call> matlab.lang.makeValidName () |
26202
368dc1142072
makeValidName.m, makeUniqueStrings.m: Clean up functions to use Octave conventions.
Rik <rik@octave.org>
parents:
26201
diff
changeset
|
129 %!error <STR must be a string or cellstr> matlab.lang.makeValidName (42) |
368dc1142072
makeValidName.m, makeUniqueStrings.m: Clean up functions to use Octave conventions.
Rik <rik@octave.org>
parents:
26201
diff
changeset
|
130 %!error <options must occur in pairs> matlab.lang.makeValidName ("a", "opt1") |
368dc1142072
makeValidName.m, makeUniqueStrings.m: Clean up functions to use Octave conventions.
Rik <rik@octave.org>
parents:
26201
diff
changeset
|
131 %!error <option argument must be a string> |
368dc1142072
makeValidName.m, makeUniqueStrings.m: Clean up functions to use Octave conventions.
Rik <rik@octave.org>
parents:
26201
diff
changeset
|
132 %! matlab.lang.makeValidName ("a", 1, 2) |
29091
b924b916dc91
matlab.lang.makeValidName: reimplement in C++ (patch #9998)
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents:
28886
diff
changeset
|
133 %!error <'ReplacementStyle' value must be a string> |
26202
368dc1142072
makeValidName.m, makeUniqueStrings.m: Clean up functions to use Octave conventions.
Rik <rik@octave.org>
parents:
26201
diff
changeset
|
134 %! matlab.lang.makeValidName ("a", "ReplacementStyle", 1); |
29091
b924b916dc91
matlab.lang.makeValidName: reimplement in C++ (patch #9998)
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents:
28886
diff
changeset
|
135 %!error <invalid 'ReplacementStyle' value 'foobar'> |
26202
368dc1142072
makeValidName.m, makeUniqueStrings.m: Clean up functions to use Octave conventions.
Rik <rik@octave.org>
parents:
26201
diff
changeset
|
136 %! matlab.lang.makeValidName ("a", "ReplacementStyle", "foobar"); |
29091
b924b916dc91
matlab.lang.makeValidName: reimplement in C++ (patch #9998)
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents:
28886
diff
changeset
|
137 %!error <invalid 'Prefix' value '1_'> |
26202
368dc1142072
makeValidName.m, makeUniqueStrings.m: Clean up functions to use Octave conventions.
Rik <rik@octave.org>
parents:
26201
diff
changeset
|
138 %! matlab.lang.makeValidName ("a", "Prefix", "1_"); |
29091
b924b916dc91
matlab.lang.makeValidName: reimplement in C++ (patch #9998)
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents:
28886
diff
changeset
|
139 %!error <unknown property 'foobar'> |
26202
368dc1142072
makeValidName.m, makeUniqueStrings.m: Clean up functions to use Octave conventions.
Rik <rik@octave.org>
parents:
26201
diff
changeset
|
140 %! matlab.lang.makeValidName ("a", "foobar", 1); |