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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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);