Mercurial > octave
annotate scripts/strings/startsWith.m @ 31239:dd6b37f67db2
Accept negative inputs to -2^63 for dec2bin and dec2hex (bug #63089)
dec2bin.m: Accept negative inputs lower than -flintmax down to -2^63
Return 64-bit string in certain cases for Matlab compatibility
Activate BISTs commented out earlier
dec2hex.m: Remove repeated code and call dec2bin instead
Accept negative inputs lower than -flintmax down to -2^63
Update and activate BISTs commented out earlier
author | Arun Giridhar <arungiridhar@gmail.com> |
---|---|
date | Sun, 25 Sep 2022 06:22:25 -0400 |
parents | 796f54d4ddbf |
children | 597f3ee61a48 |
rev | line source |
---|---|
28212
d052c11d47c6
Add new functions startsWith and endsWith (bug #57041).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff
changeset
|
1 ######################################################################## |
d052c11d47c6
Add new functions startsWith and endsWith (bug #57041).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
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) 2020-2022 The Octave Project Developers |
28212
d052c11d47c6
Add new functions startsWith and endsWith (bug #57041).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff
changeset
|
4 ## |
d052c11d47c6
Add new functions startsWith and endsWith (bug #57041).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff
changeset
|
5 ## See the file COPYRIGHT.md in the top-level directory of this |
d052c11d47c6
Add new functions startsWith and endsWith (bug #57041).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff
changeset
|
6 ## distribution or <https://octave.org/copyright/>. |
d052c11d47c6
Add new functions startsWith and endsWith (bug #57041).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff
changeset
|
7 ## |
d052c11d47c6
Add new functions startsWith and endsWith (bug #57041).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff
changeset
|
8 ## This file is part of Octave. |
d052c11d47c6
Add new functions startsWith and endsWith (bug #57041).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff
changeset
|
9 ## |
d052c11d47c6
Add new functions startsWith and endsWith (bug #57041).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff
changeset
|
10 ## Octave is free software: you can redistribute it and/or modify it |
d052c11d47c6
Add new functions startsWith and endsWith (bug #57041).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff
changeset
|
11 ## under the terms of the GNU General Public License as published by |
d052c11d47c6
Add new functions startsWith and endsWith (bug #57041).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff
changeset
|
12 ## the Free Software Foundation, either version 3 of the License, or |
d052c11d47c6
Add new functions startsWith and endsWith (bug #57041).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff
changeset
|
13 ## (at your option) any later version. |
d052c11d47c6
Add new functions startsWith and endsWith (bug #57041).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff
changeset
|
14 ## |
d052c11d47c6
Add new functions startsWith and endsWith (bug #57041).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff
changeset
|
15 ## Octave is distributed in the hope that it will be useful, but |
d052c11d47c6
Add new functions startsWith and endsWith (bug #57041).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff
changeset
|
16 ## WITHOUT ANY WARRANTY; without even the implied warranty of |
d052c11d47c6
Add new functions startsWith and endsWith (bug #57041).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff
changeset
|
17 ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
d052c11d47c6
Add new functions startsWith and endsWith (bug #57041).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff
changeset
|
18 ## GNU General Public License for more details. |
d052c11d47c6
Add new functions startsWith and endsWith (bug #57041).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff
changeset
|
19 ## |
d052c11d47c6
Add new functions startsWith and endsWith (bug #57041).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff
changeset
|
20 ## You should have received a copy of the GNU General Public License |
d052c11d47c6
Add new functions startsWith and endsWith (bug #57041).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff
changeset
|
21 ## along with Octave; see the file COPYING. If not, see |
d052c11d47c6
Add new functions startsWith and endsWith (bug #57041).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff
changeset
|
22 ## <https://www.gnu.org/licenses/>. |
d052c11d47c6
Add new functions startsWith and endsWith (bug #57041).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff
changeset
|
23 ## |
d052c11d47c6
Add new functions startsWith and endsWith (bug #57041).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff
changeset
|
24 ######################################################################## |
d052c11d47c6
Add new functions startsWith and endsWith (bug #57041).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff
changeset
|
25 |
d052c11d47c6
Add new functions startsWith and endsWith (bug #57041).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff
changeset
|
26 ## -*- texinfo -*- |
d052c11d47c6
Add new functions startsWith and endsWith (bug #57041).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff
changeset
|
27 ## @deftypefn {} {@var{retval} =} startsWith (@var{str}, @var{pattern}) |
28231 | 28 ## @deftypefnx {} {@var{retval} =} startsWith (@var{str}, @var{pattern}, "IgnoreCase", @var{ignore_case}) |
29 ## Check whether string(s) start with pattern(s). | |
28212
d052c11d47c6
Add new functions startsWith and endsWith (bug #57041).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff
changeset
|
30 ## |
28231 | 31 ## Return an array of logical values that indicates which string(s) in the |
32 ## input @var{str} (a single string or cell array of strings) begin with | |
33 ## the input @var{pattern} (a single string or cell array of strings). | |
28212
d052c11d47c6
Add new functions startsWith and endsWith (bug #57041).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff
changeset
|
34 ## |
28231 | 35 ## If the value of the parameter @qcode{"IgnoreCase"} is true, then the |
36 ## function will ignore the letter case of @var{str} and @var{pattern}. By | |
37 ## default, the comparison is case sensitive. | |
28212
d052c11d47c6
Add new functions startsWith and endsWith (bug #57041).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff
changeset
|
38 ## |
d052c11d47c6
Add new functions startsWith and endsWith (bug #57041).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff
changeset
|
39 ## Examples: |
d052c11d47c6
Add new functions startsWith and endsWith (bug #57041).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff
changeset
|
40 ## |
d052c11d47c6
Add new functions startsWith and endsWith (bug #57041).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff
changeset
|
41 ## @example |
28231 | 42 ## @group |
28212
d052c11d47c6
Add new functions startsWith and endsWith (bug #57041).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff
changeset
|
43 ## ## one string and one pattern while considering case |
d052c11d47c6
Add new functions startsWith and endsWith (bug #57041).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff
changeset
|
44 ## startsWith ("hello", "he") |
d052c11d47c6
Add new functions startsWith and endsWith (bug #57041).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff
changeset
|
45 ## @result{} 1 |
28231 | 46 ## @end group |
28212
d052c11d47c6
Add new functions startsWith and endsWith (bug #57041).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff
changeset
|
47 ## |
28231 | 48 ## @group |
28212
d052c11d47c6
Add new functions startsWith and endsWith (bug #57041).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff
changeset
|
49 ## ## one string and one pattern while ignoring case |
d052c11d47c6
Add new functions startsWith and endsWith (bug #57041).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff
changeset
|
50 ## startsWith ("hello", "HE", "IgnoreCase", true) |
d052c11d47c6
Add new functions startsWith and endsWith (bug #57041).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff
changeset
|
51 ## @result{} 1 |
28231 | 52 ## @end group |
28212
d052c11d47c6
Add new functions startsWith and endsWith (bug #57041).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff
changeset
|
53 ## |
28231 | 54 ## @group |
28212
d052c11d47c6
Add new functions startsWith and endsWith (bug #57041).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff
changeset
|
55 ## ## multiple strings and multiple patterns while considering case |
d052c11d47c6
Add new functions startsWith and endsWith (bug #57041).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff
changeset
|
56 ## startsWith (@{"lab work.pptx", "data.txt", "foundations.ppt"@}, |
d052c11d47c6
Add new functions startsWith and endsWith (bug #57041).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff
changeset
|
57 ## @{"lab", "data"@}) |
d052c11d47c6
Add new functions startsWith and endsWith (bug #57041).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff
changeset
|
58 ## @result{} 1 1 0 |
28231 | 59 ## @end group |
28212
d052c11d47c6
Add new functions startsWith and endsWith (bug #57041).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff
changeset
|
60 ## |
28231 | 61 ## @group |
28212
d052c11d47c6
Add new functions startsWith and endsWith (bug #57041).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff
changeset
|
62 ## ## multiple strings and one pattern while considering case |
d052c11d47c6
Add new functions startsWith and endsWith (bug #57041).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff
changeset
|
63 ## startsWith (@{"DATASHEET.ods", "data.txt", "foundations.ppt"@}, |
d052c11d47c6
Add new functions startsWith and endsWith (bug #57041).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff
changeset
|
64 ## "data", "IgnoreCase", false) |
d052c11d47c6
Add new functions startsWith and endsWith (bug #57041).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff
changeset
|
65 ## @result{} 0 1 0 |
28231 | 66 ## @end group |
28212
d052c11d47c6
Add new functions startsWith and endsWith (bug #57041).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff
changeset
|
67 ## |
28231 | 68 ## @group |
28212
d052c11d47c6
Add new functions startsWith and endsWith (bug #57041).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff
changeset
|
69 ## ## multiple strings and one pattern while ignoring case |
d052c11d47c6
Add new functions startsWith and endsWith (bug #57041).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff
changeset
|
70 ## startsWith (@{"DATASHEET.ods", "data.txt", "foundations.ppt"@}, |
d052c11d47c6
Add new functions startsWith and endsWith (bug #57041).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff
changeset
|
71 ## "data", "IgnoreCase", true) |
d052c11d47c6
Add new functions startsWith and endsWith (bug #57041).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff
changeset
|
72 ## @result{} 1 1 0 |
28231 | 73 ## @end group |
28212
d052c11d47c6
Add new functions startsWith and endsWith (bug #57041).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff
changeset
|
74 ## @end example |
d052c11d47c6
Add new functions startsWith and endsWith (bug #57041).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff
changeset
|
75 ## |
28231 | 76 ## @seealso{endsWith, regexp, strncmp, strncmpi} |
28212
d052c11d47c6
Add new functions startsWith and endsWith (bug #57041).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff
changeset
|
77 ## @end deftypefn |
d052c11d47c6
Add new functions startsWith and endsWith (bug #57041).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff
changeset
|
78 |
28231 | 79 function retval = startsWith (str, pattern, IgnoreCase, ignore_case) |
80 | |
81 if (nargin != 2 && nargin != 4) | |
28212
d052c11d47c6
Add new functions startsWith and endsWith (bug #57041).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff
changeset
|
82 print_usage (); |
d052c11d47c6
Add new functions startsWith and endsWith (bug #57041).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff
changeset
|
83 endif |
d052c11d47c6
Add new functions startsWith and endsWith (bug #57041).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff
changeset
|
84 |
28231 | 85 ## Validate input str and pattern |
86 if (! (iscellstr (str) || ischar (str))) | |
87 error ("startsWith: STR must be a string or cell array of strings"); | |
88 endif | |
89 if (! (iscellstr (pattern) || ischar (pattern))) | |
90 error ("startsWith: PATTERN must be a string or cell array of strings"); | |
28212
d052c11d47c6
Add new functions startsWith and endsWith (bug #57041).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff
changeset
|
91 endif |
d052c11d47c6
Add new functions startsWith and endsWith (bug #57041).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff
changeset
|
92 |
28231 | 93 str = cellstr (str); |
94 pattern = cellstr (pattern); | |
28212
d052c11d47c6
Add new functions startsWith and endsWith (bug #57041).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff
changeset
|
95 |
d052c11d47c6
Add new functions startsWith and endsWith (bug #57041).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff
changeset
|
96 if (nargin == 2) |
28231 | 97 ignore_case = false; |
98 else | |
99 ## For Matlab compatibility accept any abbreviation of 3rd argument | |
100 if (! ischar (IgnoreCase) || isempty (IgnoreCase) | |
101 || ! strncmpi (IgnoreCase, "IgnoreCase", length (IgnoreCase))) | |
28212
d052c11d47c6
Add new functions startsWith and endsWith (bug #57041).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff
changeset
|
102 error ('startsWith: third input must be "IgnoreCase"'); |
d052c11d47c6
Add new functions startsWith and endsWith (bug #57041).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff
changeset
|
103 endif |
d052c11d47c6
Add new functions startsWith and endsWith (bug #57041).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff
changeset
|
104 |
28231 | 105 if (! isscalar (ignore_case) || ! isreal (ignore_case)) |
106 error ('startsWith: "IgnoreCase" value must be a logical scalar'); | |
28212
d052c11d47c6
Add new functions startsWith and endsWith (bug #57041).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff
changeset
|
107 endif |
28231 | 108 ignore_case = logical (ignore_case); |
28212
d052c11d47c6
Add new functions startsWith and endsWith (bug #57041).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff
changeset
|
109 endif |
d052c11d47c6
Add new functions startsWith and endsWith (bug #57041).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff
changeset
|
110 |
28231 | 111 retval = false (size (str)); |
112 if (ignore_case) | |
28212
d052c11d47c6
Add new functions startsWith and endsWith (bug #57041).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff
changeset
|
113 for j = 1:numel (pattern) |
d052c11d47c6
Add new functions startsWith and endsWith (bug #57041).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff
changeset
|
114 retval |= strncmpi (str, pattern{j}, length (pattern{j})); |
d052c11d47c6
Add new functions startsWith and endsWith (bug #57041).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff
changeset
|
115 endfor |
d052c11d47c6
Add new functions startsWith and endsWith (bug #57041).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff
changeset
|
116 else |
d052c11d47c6
Add new functions startsWith and endsWith (bug #57041).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff
changeset
|
117 for j = 1:numel (pattern) |
d052c11d47c6
Add new functions startsWith and endsWith (bug #57041).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff
changeset
|
118 retval |= strncmp (str, pattern{j}, length (pattern{j})); |
d052c11d47c6
Add new functions startsWith and endsWith (bug #57041).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff
changeset
|
119 endfor |
d052c11d47c6
Add new functions startsWith and endsWith (bug #57041).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff
changeset
|
120 endif |
d052c11d47c6
Add new functions startsWith and endsWith (bug #57041).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff
changeset
|
121 |
d052c11d47c6
Add new functions startsWith and endsWith (bug #57041).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff
changeset
|
122 endfunction |
d052c11d47c6
Add new functions startsWith and endsWith (bug #57041).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff
changeset
|
123 |
d052c11d47c6
Add new functions startsWith and endsWith (bug #57041).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff
changeset
|
124 |
d052c11d47c6
Add new functions startsWith and endsWith (bug #57041).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff
changeset
|
125 ## Test simple use with one string and one pattern |
d052c11d47c6
Add new functions startsWith and endsWith (bug #57041).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff
changeset
|
126 %!assert (startsWith ("hello", "he")) |
d052c11d47c6
Add new functions startsWith and endsWith (bug #57041).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff
changeset
|
127 %!assert (! startsWith ("hello", "HE")) |
28231 | 128 %!assert (startsWith ("hello", "HE", "i", 5)) |
28212
d052c11d47c6
Add new functions startsWith and endsWith (bug #57041).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff
changeset
|
129 %!assert (! startsWith ("hello", "no")) |
d052c11d47c6
Add new functions startsWith and endsWith (bug #57041).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff
changeset
|
130 |
d052c11d47c6
Add new functions startsWith and endsWith (bug #57041).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff
changeset
|
131 ## Test multiple strings with a single pattern |
d052c11d47c6
Add new functions startsWith and endsWith (bug #57041).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff
changeset
|
132 %!test |
28231 | 133 %! str = {"data science", "dataSheet.ods", "myFunc.m"; "foundations.ppt", ... |
134 %! "results.txt", "myFile.odt"}; | |
135 %! pattern = "data"; | |
136 %! expected = [true, true, false; false, false, false]; | |
137 %! assert (startsWith (str, pattern), expected); | |
28212
d052c11d47c6
Add new functions startsWith and endsWith (bug #57041).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff
changeset
|
138 |
d052c11d47c6
Add new functions startsWith and endsWith (bug #57041).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff
changeset
|
139 ## Test multiple strings with multiple patterns |
d052c11d47c6
Add new functions startsWith and endsWith (bug #57041).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff
changeset
|
140 %!test |
28231 | 141 %! str = {"lab work.pptx", "myFile.odt", "data.txt", "foundations.ppt"}; |
142 %! pattern = {"lab", "data"}; | |
143 %! expected = [true, false, true, false]; | |
144 %! assert (startsWith (str, pattern), expected); | |
28212
d052c11d47c6
Add new functions startsWith and endsWith (bug #57041).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff
changeset
|
145 |
d052c11d47c6
Add new functions startsWith and endsWith (bug #57041).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff
changeset
|
146 ## Test IgnoreCase |
d052c11d47c6
Add new functions startsWith and endsWith (bug #57041).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff
changeset
|
147 %!test |
28231 | 148 %! str = {"DATASHEET.ods", "myFile.odt", "data.txt", "foundations.ppt"}; |
149 %! pattern = "data"; | |
150 %! expected_ignore = [true, false, true, false]; | |
151 %! expected_wo_ignore = [false, false, true, false]; | |
152 %! assert (startsWith (str, pattern, "IgnoreCase", true), expected_ignore); | |
153 %! assert (startsWith (str, pattern, "IgnoreCase", false), expected_wo_ignore); | |
154 %! assert (startsWith (str, pattern, "I", 500), expected_ignore); | |
155 %! assert (startsWith (str, pattern, "iG", 0), expected_wo_ignore); | |
28212
d052c11d47c6
Add new functions startsWith and endsWith (bug #57041).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff
changeset
|
156 |
28231 | 157 ## Test input validation |
28886
d8318c12d903
test: remove unnecessary BIST tests in m-files checking for excessive number of inputs.
Rik <rik@octave.org>
parents:
28231
diff
changeset
|
158 %!error <Invalid call> startsWith () |
28231 | 159 %!error startsWith ("A") |
160 %!error startsWith ("A", "B", "C") | |
161 %!error startsWith ("A", "B", "C", "D", "E") | |
162 %!error <STR must be a string> startsWith (152, "hi") | |
163 %!error <STR must be a .* cell array of strings> startsWith ({152}, "hi") | |
164 %!error <PATTERN must be a string> startsWith ("hi", 152) | |
165 %!error <PATTERN must be a .* cell array of strings> startsWith ("hi", {152}) | |
166 %!error <third input must be "IgnoreCase"> startsWith ("hello", "he", 1, 1) | |
28212
d052c11d47c6
Add new functions startsWith and endsWith (bug #57041).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff
changeset
|
167 %!error <third input must be "IgnoreCase"> startsWith ("hello", "he", "", 1) |
28231 | 168 %!error <third input must be "IgnoreCase"> startsWith ("hello", "he", "foo", 1) |
169 %!error <"IgnoreCase" value must be a logical scalar> | |
170 %! startsWith ("hello", "hi", "i", "true"); | |
171 %!error <"IgnoreCase" value must be a logical scalar> | |
172 %! startsWith ("hello", "hi", "i", {true}); |