comparison src/testdir/test_regex_char_classes.vim @ 13146:d9a94be389b5 v8.0.1447

patch 8.0.1447: still too many old style tests commit https://github.com/vim/vim/commit/cada78975eebc47f9b12de1a471639b5afd9ad2f Author: Bram Moolenaar <Bram@vim.org> Date: Wed Jan 31 19:30:24 2018 +0100 patch 8.0.1447: still too many old style tests Problem: Still too many old style tests. Solution: Turn a few tests into new style. (Yegappan Lakshmanan, closes #2509)
author Christian Brabandt <cb@256bit.org>
date Wed, 31 Jan 2018 19:45:05 +0100
parents 140d51d5b5c3
children 2dcaa860e3fc
comparison
equal deleted inserted replaced
13145:e85e221ef3ce 13146:d9a94be389b5
1 " Tests for regexp with backslash and other special characters inside [] 1 " Tests for regexp with backslash and other special characters inside []
2 " Also test backslash for hex/octal numbered character. 2 " Also test backslash for hex/octal numbered character.
3 "
4 if !has('multi_byte')
5 finish
6 endif
7
8 scriptencoding utf-8
3 9
4 function RunSTest(value, calls, expected) 10 function RunSTest(value, calls, expected)
5 new 11 new
6 call feedkeys("i" . a:value, "mx") 12 call feedkeys("i" . a:value, "mx")
7 exec a:calls 13 exec a:calls
54 call RunSTest("hh= 77;", "s/^\\(\\h\\w*\\%(->\\|\\.\\)\\=\\)\\+=/YY/", "YY 77;") 60 call RunSTest("hh= 77;", "s/^\\(\\h\\w*\\%(->\\|\\.\\)\\=\\)\\+=/YY/", "YY 77;")
55 call RunSTest(" aaa ", "s/aaa/xyz/", " xyz ") 61 call RunSTest(" aaa ", "s/aaa/xyz/", " xyz ")
56 call RunSTest(" xyz", "s/~/bcd/", " bcd") 62 call RunSTest(" xyz", "s/~/bcd/", " bcd")
57 call RunSTest(" bcdbcdbcd", "s/~\\+/BB/", " BB") 63 call RunSTest(" bcdbcdbcd", "s/~\\+/BB/", " BB")
58 endfunction 64 endfunction
65
66 " Test character classes in regexp using regexpengine 0, 1, 2.
67 func Test_regex_char_classes()
68 new
69 let save_enc = &encoding
70 set encoding=utf-8
71
72 let input = "\t\<C-L>\<C-M> !\"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~\<C-?>\u0080\u0082\u0090\u009bΡ记娱"
73
74 " Format is [cmd_to_run, expected_output]
75 let tests = [
76 \ [':s/\%#=0\d//g',
77 \ "\t\<C-L>\<C-M> !\"#$%&'()#+'-./:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~\<C-?>\u0080\u0082\u0090\u009bΡ记娱"],
78 \ [':s/\%#=1\d//g',
79 \ "\t\<C-L>\<C-M> !\"#$%&'()#+'-./:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~\<C-?>\u0080\u0082\u0090\u009bΡ记娱"],
80 \ [':s/\%#=2\d//g',
81 \ "\t\<C-L>\<C-M> !\"#$%&'()#+'-./:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~\<C-?>\u0080\u0082\u0090\u009bΡ记娱"],
82 \ [':s/\%#=0[0-9]//g',
83 \ "\t\<C-L>\<C-M> !\"#$%&'()#+'-./:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~\<C-?>\u0080\u0082\u0090\u009bΡ记娱"],
84 \ [':s/\%#=1[0-9]//g',
85 \ "\t\<C-L>\<C-M> !\"#$%&'()#+'-./:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~\<C-?>\u0080\u0082\u0090\u009bΡ记娱"],
86 \ [':s/\%#=2[0-9]//g',
87 \ "\t\<C-L>\<C-M> !\"#$%&'()#+'-./:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~\<C-?>\u0080\u0082\u0090\u009bΡ记娱"],
88 \ [':s/\%#=0\D//g',
89 \ "0123456789"],
90 \ [':s/\%#=1\D//g',
91 \ "0123456789"],
92 \ [':s/\%#=2\D//g',
93 \ "0123456789"],
94 \ [':s/\%#=0[^0-9]//g',
95 \ "0123456789"],
96 \ [':s/\%#=1[^0-9]//g',
97 \ "0123456789"],
98 \ [':s/\%#=2[^0-9]//g',
99 \ "0123456789"],
100 \ [':s/\%#=0\o//g',
101 \ "\t\<C-L>\<C-M> !\"#$%&'()#+'-./89:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~\<C-?>\u0080\u0082\u0090\u009bΡ记娱"],
102 \ [':s/\%#=1\o//g',
103 \ "\t\<C-L>\<C-M> !\"#$%&'()#+'-./89:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~\<C-?>\u0080\u0082\u0090\u009bΡ记娱"],
104 \ [':s/\%#=2\o//g',
105 \ "\t\<C-L>\<C-M> !\"#$%&'()#+'-./89:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~\<C-?>\u0080\u0082\u0090\u009bΡ记娱"],
106 \ [':s/\%#=0[0-7]//g',
107 \ "\t\<C-L>\<C-M> !\"#$%&'()#+'-./89:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~\<C-?>\u0080\u0082\u0090\u009bΡ记娱"],
108 \ [':s/\%#=1[0-7]//g',
109 \ "\t\<C-L>\<C-M> !\"#$%&'()#+'-./89:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~\<C-?>\u0080\u0082\u0090\u009bΡ记娱"],
110 \ [':s/\%#=2[0-7]//g',
111 \ "\t\<C-L>\<C-M> !\"#$%&'()#+'-./89:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~\<C-?>\u0080\u0082\u0090\u009bΡ记娱"],
112 \ [':s/\%#=0\O//g',
113 \ "01234567"],
114 \ [':s/\%#=1\O//g',
115 \ "01234567"],
116 \ [':s/\%#=2\O//g',
117 \ "01234567"],
118 \ [':s/\%#=0[^0-7]//g',
119 \ "01234567"],
120 \ [':s/\%#=1[^0-7]//g',
121 \ "01234567"],
122 \ [':s/\%#=2[^0-7]//g',
123 \ "01234567"],
124 \ [':s/\%#=0\x//g',
125 \ "\t\<C-L>\<C-M> !\"#$%&'()#+'-./:;<=>?@GHIXYZ[\]^_`ghiwxyz{|}~\<C-?>\u0080\u0082\u0090\u009bΡ记娱"],
126 \ [':s/\%#=1\x//g',
127 \ "\t\<C-L>\<C-M> !\"#$%&'()#+'-./:;<=>?@GHIXYZ[\]^_`ghiwxyz{|}~\<C-?>\u0080\u0082\u0090\u009bΡ记娱"],
128 \ [':s/\%#=2\x//g',
129 \ "\t\<C-L>\<C-M> !\"#$%&'()#+'-./:;<=>?@GHIXYZ[\]^_`ghiwxyz{|}~\<C-?>\u0080\u0082\u0090\u009bΡ记娱"],
130 \ [':s/\%#=0[0-9A-Fa-f]//g',
131 \ "\t\<C-L>\<C-M> !\"#$%&'()#+'-./:;<=>?@GHIXYZ[\]^_`ghiwxyz{|}~\<C-?>\u0080\u0082\u0090\u009bΡ记娱"],
132 \ [':s/\%#=1[0-9A-Fa-f]//g',
133 \ "\t\<C-L>\<C-M> !\"#$%&'()#+'-./:;<=>?@GHIXYZ[\]^_`ghiwxyz{|}~\<C-?>\u0080\u0082\u0090\u009bΡ记娱"],
134 \ [':s/\%#=2[0-9A-Fa-f]//g',
135 \ "\t\<C-L>\<C-M> !\"#$%&'()#+'-./:;<=>?@GHIXYZ[\]^_`ghiwxyz{|}~\<C-?>\u0080\u0082\u0090\u009bΡ记娱"],
136 \ [':s/\%#=0\X//g',
137 \ "0123456789ABCDEFabcdef"],
138 \ [':s/\%#=1\X//g',
139 \ "0123456789ABCDEFabcdef"],
140 \ [':s/\%#=2\X//g',
141 \ "0123456789ABCDEFabcdef"],
142 \ [':s/\%#=0[^0-9A-Fa-f]//g',
143 \ "0123456789ABCDEFabcdef"],
144 \ [':s/\%#=1[^0-9A-Fa-f]//g',
145 \ "0123456789ABCDEFabcdef"],
146 \ [':s/\%#=2[^0-9A-Fa-f]//g',
147 \ "0123456789ABCDEFabcdef"],
148 \ [':s/\%#=0\w//g',
149 \ "\t\<C-L>\<C-M> !\"#$%&'()#+'-./:;<=>?@[\]^`{|}~\<C-?>\u0080\u0082\u0090\u009bΡ记娱"],
150 \ [':s/\%#=1\w//g',
151 \ "\t\<C-L>\<C-M> !\"#$%&'()#+'-./:;<=>?@[\]^`{|}~\<C-?>\u0080\u0082\u0090\u009bΡ记娱"],
152 \ [':s/\%#=2\w//g',
153 \ "\t\<C-L>\<C-M> !\"#$%&'()#+'-./:;<=>?@[\]^`{|}~\<C-?>\u0080\u0082\u0090\u009bΡ记娱"],
154 \ [':s/\%#=0[0-9A-Za-z_]//g',
155 \ "\t\<C-L>\<C-M> !\"#$%&'()#+'-./:;<=>?@[\]^`{|}~\<C-?>\u0080\u0082\u0090\u009bΡ记娱"],
156 \ [':s/\%#=1[0-9A-Za-z_]//g',
157 \ "\t\<C-L>\<C-M> !\"#$%&'()#+'-./:;<=>?@[\]^`{|}~\<C-?>\u0080\u0082\u0090\u009bΡ记娱"],
158 \ [':s/\%#=2[0-9A-Za-z_]//g',
159 \ "\t\<C-L>\<C-M> !\"#$%&'()#+'-./:;<=>?@[\]^`{|}~\<C-?>\u0080\u0082\u0090\u009bΡ记娱"],
160 \ [':s/\%#=0\W//g',
161 \ "0123456789ABCDEFGHIXYZ_abcdefghiwxyz"],
162 \ [':s/\%#=1\W//g',
163 \ "0123456789ABCDEFGHIXYZ_abcdefghiwxyz"],
164 \ [':s/\%#=2\W//g',
165 \ "0123456789ABCDEFGHIXYZ_abcdefghiwxyz"],
166 \ [':s/\%#=0[^0-9A-Za-z_]//g',
167 \ "0123456789ABCDEFGHIXYZ_abcdefghiwxyz"],
168 \ [':s/\%#=1[^0-9A-Za-z_]//g',
169 \ "0123456789ABCDEFGHIXYZ_abcdefghiwxyz"],
170 \ [':s/\%#=2[^0-9A-Za-z_]//g',
171 \ "0123456789ABCDEFGHIXYZ_abcdefghiwxyz"],
172 \ [':s/\%#=0\h//g',
173 \ "\t\<C-L>\<C-M> !\"#$%&'()#+'-./0123456789:;<=>?@[\]^`{|}~\<C-?>\u0080\u0082\u0090\u009bΡ记娱"],
174 \ [':s/\%#=1\h//g',
175 \ "\t\<C-L>\<C-M> !\"#$%&'()#+'-./0123456789:;<=>?@[\]^`{|}~\<C-?>\u0080\u0082\u0090\u009bΡ记娱"],
176 \ [':s/\%#=2\h//g',
177 \ "\t\<C-L>\<C-M> !\"#$%&'()#+'-./0123456789:;<=>?@[\]^`{|}~\<C-?>\u0080\u0082\u0090\u009bΡ记娱"],
178 \ [':s/\%#=0[A-Za-z_]//g',
179 \ "\t\<C-L>\<C-M> !\"#$%&'()#+'-./0123456789:;<=>?@[\]^`{|}~\<C-?>\u0080\u0082\u0090\u009bΡ记娱"],
180 \ [':s/\%#=1[A-Za-z_]//g',
181 \ "\t\<C-L>\<C-M> !\"#$%&'()#+'-./0123456789:;<=>?@[\]^`{|}~\<C-?>\u0080\u0082\u0090\u009bΡ记娱"],
182 \ [':s/\%#=2[A-Za-z_]//g',
183 \ "\t\<C-L>\<C-M> !\"#$%&'()#+'-./0123456789:;<=>?@[\]^`{|}~\<C-?>\u0080\u0082\u0090\u009bΡ记娱"],
184 \ [':s/\%#=0\H//g',
185 \ "ABCDEFGHIXYZ_abcdefghiwxyz"],
186 \ [':s/\%#=1\H//g',
187 \ "ABCDEFGHIXYZ_abcdefghiwxyz"],
188 \ [':s/\%#=2\H//g',
189 \ "ABCDEFGHIXYZ_abcdefghiwxyz"],
190 \ [':s/\%#=0[^A-Za-z_]//g',
191 \ "ABCDEFGHIXYZ_abcdefghiwxyz"],
192 \ [':s/\%#=1[^A-Za-z_]//g',
193 \ "ABCDEFGHIXYZ_abcdefghiwxyz"],
194 \ [':s/\%#=2[^A-Za-z_]//g',
195 \ "ABCDEFGHIXYZ_abcdefghiwxyz"],
196 \ [':s/\%#=0\a//g',
197 \ "\t\<C-L>\<C-M> !\"#$%&'()#+'-./0123456789:;<=>?@[\]^_`{|}~\<C-?>\u0080\u0082\u0090\u009bΡ记娱"],
198 \ [':s/\%#=1\a//g',
199 \ "\t\<C-L>\<C-M> !\"#$%&'()#+'-./0123456789:;<=>?@[\]^_`{|}~\<C-?>\u0080\u0082\u0090\u009bΡ记娱"],
200 \ [':s/\%#=2\a//g',
201 \ "\t\<C-L>\<C-M> !\"#$%&'()#+'-./0123456789:;<=>?@[\]^_`{|}~\<C-?>\u0080\u0082\u0090\u009bΡ记娱"],
202 \ [':s/\%#=0[A-Za-z]//g',
203 \ "\t\<C-L>\<C-M> !\"#$%&'()#+'-./0123456789:;<=>?@[\]^_`{|}~\<C-?>\u0080\u0082\u0090\u009bΡ记娱"],
204 \ [':s/\%#=1[A-Za-z]//g',
205 \ "\t\<C-L>\<C-M> !\"#$%&'()#+'-./0123456789:;<=>?@[\]^_`{|}~\<C-?>\u0080\u0082\u0090\u009bΡ记娱"],
206 \ [':s/\%#=2[A-Za-z]//g',
207 \ "\t\<C-L>\<C-M> !\"#$%&'()#+'-./0123456789:;<=>?@[\]^_`{|}~\<C-?>\u0080\u0082\u0090\u009bΡ记娱"],
208 \ [':s/\%#=0\A//g',
209 \ "ABCDEFGHIXYZabcdefghiwxyz"],
210 \ [':s/\%#=1\A//g',
211 \ "ABCDEFGHIXYZabcdefghiwxyz"],
212 \ [':s/\%#=2\A//g',
213 \ "ABCDEFGHIXYZabcdefghiwxyz"],
214 \ [':s/\%#=0[^A-Za-z]//g',
215 \ "ABCDEFGHIXYZabcdefghiwxyz"],
216 \ [':s/\%#=1[^A-Za-z]//g',
217 \ "ABCDEFGHIXYZabcdefghiwxyz"],
218 \ [':s/\%#=2[^A-Za-z]//g',
219 \ "ABCDEFGHIXYZabcdefghiwxyz"],
220 \ [':s/\%#=0\l//g',
221 \ "\t\<C-L>\<C-M> !\"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`{|}~\<C-?>\u0080\u0082\u0090\u009bΡ记娱"],
222 \ [':s/\%#=1\l//g',
223 \ "\t\<C-L>\<C-M> !\"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`{|}~\<C-?>\u0080\u0082\u0090\u009bΡ记娱"],
224 \ [':s/\%#=2\l//g',
225 \ "\t\<C-L>\<C-M> !\"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`{|}~\<C-?>\u0080\u0082\u0090\u009bΡ记娱"],
226 \ [':s/\%#=0[a-z]//g',
227 \ "\t\<C-L>\<C-M> !\"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`{|}~\<C-?>\u0080\u0082\u0090\u009bΡ记娱"],
228 \ [':s/\%#=1[a-z]//g',
229 \ "\t\<C-L>\<C-M> !\"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`{|}~\<C-?>\u0080\u0082\u0090\u009bΡ记娱"],
230 \ [':s/\%#=2[a-z]//g',
231 \ "\t\<C-L>\<C-M> !\"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`{|}~\<C-?>\u0080\u0082\u0090\u009bΡ记娱"],
232 \ [':s/\%#=0\L//g',
233 \ "abcdefghiwxyz"],
234 \ [':s/\%#=1\L//g',
235 \ "abcdefghiwxyz"],
236 \ [':s/\%#=2\L//g',
237 \ "abcdefghiwxyz"],
238 \ [':s/\%#=0[^a-z]//g',
239 \ "abcdefghiwxyz"],
240 \ [':s/\%#=1[^a-z]//g',
241 \ "abcdefghiwxyz"],
242 \ [':s/\%#=2[^a-z]//g',
243 \ "abcdefghiwxyz"],
244 \ [':s/\%#=0\u//g',
245 \ "\t\<C-L>\<C-M> !\"#$%&'()#+'-./0123456789:;<=>?@[\]^_`abcdefghiwxyz{|}~\<C-?>\u0080\u0082\u0090\u009bΡ记娱"],
246 \ [':s/\%#=1\u//g',
247 \ "\t\<C-L>\<C-M> !\"#$%&'()#+'-./0123456789:;<=>?@[\]^_`abcdefghiwxyz{|}~\<C-?>\u0080\u0082\u0090\u009bΡ记娱"],
248 \ [':s/\%#=2\u//g',
249 \ "\t\<C-L>\<C-M> !\"#$%&'()#+'-./0123456789:;<=>?@[\]^_`abcdefghiwxyz{|}~\<C-?>\u0080\u0082\u0090\u009bΡ记娱"],
250 \ [':s/\%#=0[A-Z]//g',
251 \ "\t\<C-L>\<C-M> !\"#$%&'()#+'-./0123456789:;<=>?@[\]^_`abcdefghiwxyz{|}~\<C-?>\u0080\u0082\u0090\u009bΡ记娱"],
252 \ [':s/\%#=1[A-Z]//g',
253 \ "\t\<C-L>\<C-M> !\"#$%&'()#+'-./0123456789:;<=>?@[\]^_`abcdefghiwxyz{|}~\<C-?>\u0080\u0082\u0090\u009bΡ记娱"],
254 \ [':s/\%#=2[A-Z]//g',
255 \ "\t\<C-L>\<C-M> !\"#$%&'()#+'-./0123456789:;<=>?@[\]^_`abcdefghiwxyz{|}~\<C-?>\u0080\u0082\u0090\u009bΡ记娱"],
256 \ [':s/\%#=0\U//g',
257 \ "ABCDEFGHIXYZ"],
258 \ [':s/\%#=1\U//g',
259 \ "ABCDEFGHIXYZ"],
260 \ [':s/\%#=2\U//g',
261 \ "ABCDEFGHIXYZ"],
262 \ [':s/\%#=0[^A-Z]//g',
263 \ "ABCDEFGHIXYZ"],
264 \ [':s/\%#=1[^A-Z]//g',
265 \ "ABCDEFGHIXYZ"],
266 \ [':s/\%#=2[^A-Z]//g',
267 \ "ABCDEFGHIXYZ"],
268 \ [':s/\%#=0\%' . line('.') . 'l^\t...//g',
269 \ "!\"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~\<C-?>\u0080\u0082\u0090\u009bΡ记娱"],
270 \ [':s/\%#=1\%' . line('.') . 'l^\t...//g',
271 \ "!\"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~\<C-?>\u0080\u0082\u0090\u009bΡ记娱"],
272 \ [':s/\%#=2\%' . line('.') . 'l^\t...//g',
273 \ "!\"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~\<C-?>\u0080\u0082\u0090\u009bΡ记娱"],
274 \ [':s/\%#=0[0-z]//g',
275 \ "\t\<C-L>\<C-M> !\"#$%&'()#+'-./{|}~\<C-?>\u0080\u0082\u0090\u009bΡ记娱"],
276 \ [':s/\%#=1[0-z]//g',
277 \ "\t\<C-L>\<C-M> !\"#$%&'()#+'-./{|}~\<C-?>\u0080\u0082\u0090\u009bΡ记娱"],
278 \ [':s/\%#=2[0-z]//g',
279 \ "\t\<C-L>\<C-M> !\"#$%&'()#+'-./{|}~\<C-?>\u0080\u0082\u0090\u009bΡ记娱"],
280 \ [':s/\%#=0[^0-z]//g',
281 \ "0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz"],
282 \ [':s/\%#=1[^0-z]//g',
283 \ "0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz"],
284 \ [':s/\%#=2[^0-z]//g',
285 \ "0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz"]
286 \]
287
288 for [cmd, expected] in tests
289 call append(0, input)
290 call cursor(1, 1)
291 exe cmd
292 call assert_equal(expected, getline(1), cmd)
293 endfor
294
295 let &encoding = save_enc
296 enew!
297 close
298 endfunc