Mercurial > vim
comparison src/testdir/test_arabic.vim @ 11004:f91d4c95b696 v8.0.0391
patch 8.0.0391: arabic support is verbose and not well tested
commit https://github.com/vim/vim/commit/5f53dd3f747711be90879fa2f22a207970b86750
Author: Bram Moolenaar <Bram@vim.org>
Date: Wed Mar 1 14:02:30 2017 +0100
patch 8.0.0391: arabic support is verbose and not well tested
Problem: Arabic support is verbose and not well tested.
Solution: Simplify the code. Add more tests.
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Wed, 01 Mar 2017 14:15:04 +0100 |
parents | 307f9ae2a7fb |
children | 3fa27b97d263 |
comparison
equal
deleted
inserted
replaced
11003:bf484fd6443a | 11004:f91d4c95b696 |
---|---|
95 call assert_equal(['U+0633'], s:get_chars(1)) | 95 call assert_equal(['U+0633'], s:get_chars(1)) |
96 set arabic& | 96 set arabic& |
97 bwipe! | 97 bwipe! |
98 endfunc | 98 endfunc |
99 | 99 |
100 " Values from src/arabic.h (not all used yet) | |
101 let s:a_COMMA = "\u060C" | |
102 let s:a_SEMICOLON = "\u061B" | |
103 let s:a_QUESTION = "\u061F" | |
104 let s:a_HAMZA = "\u0621" | |
105 let s:a_ALEF_MADDA = "\u0622" | |
106 let s:a_ALEF_HAMZA_ABOVE = "\u0623" | |
107 let s:a_WAW_HAMZA = "\u0624" | |
108 let s:a_ALEF_HAMZA_BELOW = "\u0625" | |
100 let s:a_YEH_HAMZA = "\u0626" | 109 let s:a_YEH_HAMZA = "\u0626" |
110 let s:a_ALEF = "\u0627" | |
111 let s:a_BEH = "\u0628" | |
112 let s:a_TEH_MARBUTA = "\u0629" | |
113 let s:a_TEH = "\u062a" | |
114 let s:a_THEH = "\u062b" | |
115 let s:a_JEEM = "\u062c" | |
116 let s:a_HAH = "\u062d" | |
117 let s:a_KHAH = "\u062e" | |
118 let s:a_DAL = "\u062f" | |
119 let s:a_THAL = "\u0630" | |
120 let s:a_REH = "\u0631" | |
121 let s:a_ZAIN = "\u0632" | |
122 let s:a_SEEN = "\u0633" | |
123 let s:a_SHEEN = "\u0634" | |
124 let s:a_SAD = "\u0635" | |
125 let s:a_DAD = "\u0636" | |
126 let s:a_TAH = "\u0637" | |
127 let s:a_ZAH = "\u0638" | |
128 let s:a_AIN = "\u0639" | |
129 let s:a_GHAIN = "\u063a" | |
130 let s:a_TATWEEL = "\u0640" | |
131 let s:a_FEH = "\u0641" | |
132 let s:a_QAF = "\u0642" | |
133 let s:a_KAF = "\u0643" | |
134 let s:a_LAM = "\u0644" | |
135 let s:a_MEEM = "\u0645" | |
136 let s:a_NOON = "\u0646" | |
137 let s:a_HEH = "\u0647" | |
138 let s:a_WAW = "\u0648" | |
139 let s:a_ALEF_MAKSURA = "\u0649" | |
140 let s:a_YEH = "\u064a" | |
141 | |
142 let s:a_FATHATAN = "\u064b" | |
143 let s:a_DAMMATAN = "\u064c" | |
144 let s:a_KASRATAN = "\u064d" | |
145 let s:a_FATHA = "\u064e" | |
146 let s:a_DAMMA = "\u064f" | |
147 let s:a_KASRA = "\u0650" | |
148 let s:a_SHADDA = "\u0651" | |
149 let s:a_SUKUN = "\u0652" | |
150 | |
151 let s:a_MADDA_ABOVE = "\u0653" | |
152 let s:a_HAMZA_ABOVE = "\u0654" | |
153 let s:a_HAMZA_BELOW = "\u0655" | |
154 | |
155 let s:a_ZERO = "\u0660" | |
156 let s:a_ONE = "\u0661" | |
157 let s:a_TWO = "\u0662" | |
158 let s:a_THREE = "\u0663" | |
159 let s:a_FOUR = "\u0664" | |
160 let s:a_FIVE = "\u0665" | |
161 let s:a_SIX = "\u0666" | |
162 let s:a_SEVEN = "\u0667" | |
163 let s:a_EIGHT = "\u0668" | |
164 let s:a_NINE = "\u0669" | |
165 let s:a_PERCENT = "\u066a" | |
166 let s:a_DECIMAL = "\u066b" | |
167 let s:a_THOUSANDS = "\u066c" | |
168 let s:a_STAR = "\u066d" | |
169 let s:a_MINI_ALEF = "\u0670" | |
170 | |
171 let s:a_s_FATHATAN = "\ufe70" | |
172 let s:a_m_TATWEEL_FATHATAN = "\ufe71" | |
173 let s:a_s_DAMMATAN = "\ufe72" | |
174 | |
175 let s:a_s_KASRATAN = "\ufe74" | |
176 | |
177 let s:a_s_FATHA = "\ufe76" | |
178 let s:a_m_FATHA = "\ufe77" | |
179 let s:a_s_DAMMA = "\ufe78" | |
180 let s:a_m_DAMMA = "\ufe79" | |
181 let s:a_s_KASRA = "\ufe7a" | |
182 let s:a_m_KASRA = "\ufe7b" | |
183 let s:a_s_SHADDA = "\ufe7c" | |
184 let s:a_m_SHADDA = "\ufe7d" | |
185 let s:a_s_SUKUN = "\ufe7e" | |
186 let s:a_m_SUKUN = "\ufe7f" | |
187 | |
188 let s:a_s_HAMZA = "\ufe80" | |
189 let s:a_s_ALEF_MADDA = "\ufe81" | |
190 let s:a_f_ALEF_MADDA = "\ufe82" | |
191 let s:a_s_ALEF_HAMZA_ABOVE = "\ufe83" | |
192 let s:a_f_ALEF_HAMZA_ABOVE = "\ufe84" | |
193 let s:a_s_WAW_HAMZA = "\ufe85" | |
194 let s:a_f_WAW_HAMZA = "\ufe86" | |
195 let s:a_s_ALEF_HAMZA_BELOW = "\ufe87" | |
196 let s:a_f_ALEF_HAMZA_BELOW = "\ufe88" | |
197 let s:a_s_YEH_HAMZA = "\ufe89" | |
198 let s:a_f_YEH_HAMZA = "\ufe8a" | |
101 let s:a_i_YEH_HAMZA = "\ufe8b" | 199 let s:a_i_YEH_HAMZA = "\ufe8b" |
102 | 200 let s:a_m_YEH_HAMZA = "\ufe8c" |
103 let s:a_HAMZA = "\u0621" | 201 let s:a_s_ALEF = "\ufe8d" |
104 let s:a_s_HAMZA = "\ufe80" | 202 let s:a_f_ALEF = "\ufe8e" |
105 | 203 let s:a_s_BEH = "\ufe8f" |
106 let s:a_ALEF_MADDA = "\u0622" | 204 let s:a_f_BEH = "\ufe90" |
107 let s:a_s_ALEF_MADDA = "\ufe81" | 205 let s:a_i_BEH = "\ufe91" |
108 | 206 let s:a_m_BEH = "\ufe92" |
109 let s:a_ALEF_HAMZA_ABOVE = "\u0623" | 207 let s:a_s_TEH_MARBUTA = "\ufe93" |
110 let s:a_s_ALEF_HAMZA_ABOVE = "\ufe83" | 208 let s:a_f_TEH_MARBUTA = "\ufe94" |
111 | 209 let s:a_s_TEH = "\ufe95" |
112 let s:a_GHAIN = "\u063a" | 210 let s:a_f_TEH = "\ufe96" |
211 let s:a_i_TEH = "\ufe97" | |
212 let s:a_m_TEH = "\ufe98" | |
213 let s:a_s_THEH = "\ufe99" | |
214 let s:a_f_THEH = "\ufe9a" | |
215 let s:a_i_THEH = "\ufe9b" | |
216 let s:a_m_THEH = "\ufe9c" | |
217 let s:a_s_JEEM = "\ufe9d" | |
218 let s:a_f_JEEM = "\ufe9e" | |
219 let s:a_i_JEEM = "\ufe9f" | |
220 let s:a_m_JEEM = "\ufea0" | |
221 let s:a_s_HAH = "\ufea1" | |
222 let s:a_f_HAH = "\ufea2" | |
223 let s:a_i_HAH = "\ufea3" | |
224 let s:a_m_HAH = "\ufea4" | |
225 let s:a_s_KHAH = "\ufea5" | |
226 let s:a_f_KHAH = "\ufea6" | |
227 let s:a_i_KHAH = "\ufea7" | |
228 let s:a_m_KHAH = "\ufea8" | |
229 let s:a_s_DAL = "\ufea9" | |
230 let s:a_f_DAL = "\ufeaa" | |
231 let s:a_s_THAL = "\ufeab" | |
232 let s:a_f_THAL = "\ufeac" | |
233 let s:a_s_REH = "\ufead" | |
234 let s:a_f_REH = "\ufeae" | |
235 let s:a_s_ZAIN = "\ufeaf" | |
236 let s:a_f_ZAIN = "\ufeb0" | |
237 let s:a_s_SEEN = "\ufeb1" | |
238 let s:a_f_SEEN = "\ufeb2" | |
239 let s:a_i_SEEN = "\ufeb3" | |
240 let s:a_m_SEEN = "\ufeb4" | |
241 let s:a_s_SHEEN = "\ufeb5" | |
242 let s:a_f_SHEEN = "\ufeb6" | |
243 let s:a_i_SHEEN = "\ufeb7" | |
244 let s:a_m_SHEEN = "\ufeb8" | |
245 let s:a_s_SAD = "\ufeb9" | |
246 let s:a_f_SAD = "\ufeba" | |
247 let s:a_i_SAD = "\ufebb" | |
248 let s:a_m_SAD = "\ufebc" | |
249 let s:a_s_DAD = "\ufebd" | |
250 let s:a_f_DAD = "\ufebe" | |
251 let s:a_i_DAD = "\ufebf" | |
252 let s:a_m_DAD = "\ufec0" | |
253 let s:a_s_TAH = "\ufec1" | |
254 let s:a_f_TAH = "\ufec2" | |
255 let s:a_i_TAH = "\ufec3" | |
256 let s:a_m_TAH = "\ufec4" | |
257 let s:a_s_ZAH = "\ufec5" | |
258 let s:a_f_ZAH = "\ufec6" | |
259 let s:a_i_ZAH = "\ufec7" | |
260 let s:a_m_ZAH = "\ufec8" | |
261 let s:a_s_AIN = "\ufec9" | |
262 let s:a_f_AIN = "\ufeca" | |
263 let s:a_i_AIN = "\ufecb" | |
264 let s:a_m_AIN = "\ufecc" | |
265 let s:a_s_GHAIN = "\ufecd" | |
113 let s:a_f_GHAIN = "\ufece" | 266 let s:a_f_GHAIN = "\ufece" |
114 let s:a_s_GHAIN = "\ufecd" | 267 let s:a_i_GHAIN = "\ufecf" |
268 let s:a_m_GHAIN = "\ufed0" | |
269 let s:a_s_FEH = "\ufed1" | |
270 let s:a_f_FEH = "\ufed2" | |
271 let s:a_i_FEH = "\ufed3" | |
272 let s:a_m_FEH = "\ufed4" | |
273 let s:a_s_QAF = "\ufed5" | |
274 let s:a_f_QAF = "\ufed6" | |
275 let s:a_i_QAF = "\ufed7" | |
276 let s:a_m_QAF = "\ufed8" | |
277 let s:a_s_KAF = "\ufed9" | |
278 let s:a_f_KAF = "\ufeda" | |
279 let s:a_i_KAF = "\ufedb" | |
280 let s:a_m_KAF = "\ufedc" | |
281 let s:a_s_LAM = "\ufedd" | |
282 let s:a_f_LAM = "\ufede" | |
283 let s:a_i_LAM = "\ufedf" | |
284 let s:a_m_LAM = "\ufee0" | |
285 let s:a_s_MEEM = "\ufee1" | |
286 let s:a_f_MEEM = "\ufee2" | |
287 let s:a_i_MEEM = "\ufee3" | |
288 let s:a_m_MEEM = "\ufee4" | |
289 let s:a_s_NOON = "\ufee5" | |
290 let s:a_f_NOON = "\ufee6" | |
291 let s:a_i_NOON = "\ufee7" | |
292 let s:a_m_NOON = "\ufee8" | |
293 let s:a_s_HEH = "\ufee9" | |
294 let s:a_f_HEH = "\ufeea" | |
295 let s:a_i_HEH = "\ufeeb" | |
296 let s:a_m_HEH = "\ufeec" | |
297 let s:a_s_WAW = "\ufeed" | |
298 let s:a_f_WAW = "\ufeee" | |
299 let s:a_s_ALEF_MAKSURA = "\ufeef" | |
300 let s:a_f_ALEF_MAKSURA = "\ufef0" | |
301 let s:a_s_YEH = "\ufef1" | |
302 let s:a_f_YEH = "\ufef2" | |
303 let s:a_i_YEH = "\ufef3" | |
304 let s:a_m_YEH = "\ufef4" | |
305 let s:a_s_LAM_ALEF_MADDA_ABOVE = "\ufef5" | |
306 let s:a_f_LAM_ALEF_MADDA_ABOVE = "\ufef6" | |
307 let s:a_s_LAM_ALEF_HAMZA_ABOVE = "\ufef7" | |
308 let s:a_f_LAM_ALEF_HAMZA_ABOVE = "\ufef8" | |
309 let s:a_s_LAM_ALEF_HAMZA_BELOW = "\ufef9" | |
310 let s:a_f_LAM_ALEF_HAMZA_BELOW = "\ufefa" | |
311 let s:a_s_LAM_ALEF = "\ufefb" | |
312 let s:a_f_LAM_ALEF = "\ufefc" | |
313 | |
314 let s:a_BYTE_ORDER_MARK = "\ufeff" | |
115 | 315 |
116 func Test_shape_initial() | 316 func Test_shape_initial() |
117 new | 317 new |
118 set arabicshape | 318 set arabicshape |
119 | 319 |
120 " Shaping arabic {testchar} non-arabic Uses chg_c_a2i(). | 320 " Shaping arabic {testchar} non-arabic Tests chg_c_a2i(). |
121 " pair[0] = testchar, pair[1] = next-result, pair[2] = current-result | 321 " pair[0] = testchar, pair[1] = next-result, pair[2] = current-result |
122 for pair in [[s:a_YEH_HAMZA, s:a_f_GHAIN, s:a_i_YEH_HAMZA], | 322 for pair in [[s:a_YEH_HAMZA, s:a_f_GHAIN, s:a_i_YEH_HAMZA], |
123 \ [s:a_HAMZA, s:a_s_GHAIN, s:a_s_HAMZA], | 323 \ [s:a_HAMZA, s:a_s_GHAIN, s:a_s_HAMZA], |
124 \ [s:a_ALEF_MADDA, s:a_s_GHAIN, s:a_s_ALEF_MADDA], | 324 \ [s:a_ALEF_MADDA, s:a_s_GHAIN, s:a_s_ALEF_MADDA], |
125 \ [s:a_ALEF_HAMZA_ABOVE, s:a_s_GHAIN, s:a_s_ALEF_HAMZA_ABOVE], | 325 \ [s:a_ALEF_HAMZA_ABOVE, s:a_s_GHAIN, s:a_s_ALEF_HAMZA_ABOVE], |
326 \ [s:a_WAW_HAMZA, s:a_s_GHAIN, s:a_s_WAW_HAMZA], | |
327 \ [s:a_ALEF_HAMZA_BELOW, s:a_s_GHAIN, s:a_s_ALEF_HAMZA_BELOW], | |
328 \ [s:a_ALEF, s:a_s_GHAIN, s:a_s_ALEF], | |
329 \ [s:a_TEH_MARBUTA, s:a_s_GHAIN, s:a_s_TEH_MARBUTA], | |
330 \ [s:a_DAL, s:a_s_GHAIN, s:a_s_DAL], | |
331 \ [s:a_THAL, s:a_s_GHAIN, s:a_s_THAL], | |
332 \ [s:a_REH, s:a_s_GHAIN, s:a_s_REH], | |
333 \ [s:a_ZAIN, s:a_s_GHAIN, s:a_s_ZAIN], | |
334 \ [s:a_TATWEEL, s:a_f_GHAIN, s:a_TATWEEL], | |
335 \ [s:a_WAW, s:a_s_GHAIN, s:a_s_WAW], | |
336 \ [s:a_ALEF_MAKSURA, s:a_s_GHAIN, s:a_s_ALEF_MAKSURA], | |
337 \ [s:a_BEH, s:a_f_GHAIN, s:a_i_BEH], | |
338 \ [s:a_TEH, s:a_f_GHAIN, s:a_i_TEH], | |
339 \ [s:a_THEH, s:a_f_GHAIN, s:a_i_THEH], | |
340 \ [s:a_JEEM, s:a_f_GHAIN, s:a_i_JEEM], | |
341 \ [s:a_HAH, s:a_f_GHAIN, s:a_i_HAH], | |
342 \ [s:a_KHAH, s:a_f_GHAIN, s:a_i_KHAH], | |
343 \ [s:a_SEEN, s:a_f_GHAIN, s:a_i_SEEN], | |
344 \ [s:a_SHEEN, s:a_f_GHAIN, s:a_i_SHEEN], | |
345 \ [s:a_SAD, s:a_f_GHAIN, s:a_i_SAD], | |
346 \ [s:a_DAD, s:a_f_GHAIN, s:a_i_DAD], | |
347 \ [s:a_TAH, s:a_f_GHAIN, s:a_i_TAH], | |
348 \ [s:a_ZAH, s:a_f_GHAIN, s:a_i_ZAH], | |
349 \ [s:a_AIN, s:a_f_GHAIN, s:a_i_AIN], | |
350 \ [s:a_GHAIN, s:a_f_GHAIN, s:a_i_GHAIN], | |
351 \ [s:a_FEH, s:a_f_GHAIN, s:a_i_FEH], | |
352 \ [s:a_QAF, s:a_f_GHAIN, s:a_i_QAF], | |
353 \ [s:a_KAF, s:a_f_GHAIN, s:a_i_KAF], | |
354 \ [s:a_LAM, s:a_f_GHAIN, s:a_i_LAM], | |
355 \ [s:a_MEEM, s:a_f_GHAIN, s:a_i_MEEM], | |
356 \ [s:a_NOON, s:a_f_GHAIN, s:a_i_NOON], | |
357 \ [s:a_HEH, s:a_f_GHAIN, s:a_i_HEH], | |
358 \ [s:a_YEH, s:a_f_GHAIN, s:a_i_YEH], | |
126 \ ] | 359 \ ] |
127 call setline(1, s:a_GHAIN . pair[0] . ' ') | 360 call setline(1, s:a_GHAIN . pair[0] . ' ') |
128 call assert_equal([pair[1] . pair[2] . ' '], ScreenLines(1, 3)) | 361 call assert_equal([pair[1] . pair[2] . ' '], ScreenLines(1, 3)) |
129 endfor | 362 endfor |
130 | 363 |
131 set arabicshape& | 364 set arabicshape& |
132 bwipe! | 365 bwipe! |
133 endfunc | 366 endfunc |
367 | |
368 func Test_shape_isolated() | |
369 new | |
370 set arabicshape | |
371 | |
372 " Shaping non-arabic {testchar} non-arabic Tests chg_c_a2s(). | |
373 " pair[0] = testchar, pair[1] = current-result | |
374 for pair in [[s:a_HAMZA, s:a_s_HAMZA], | |
375 \ [s:a_ALEF_MADDA, s:a_s_ALEF_MADDA], | |
376 \ [s:a_ALEF_HAMZA_ABOVE, s:a_s_ALEF_HAMZA_ABOVE], | |
377 \ [s:a_WAW_HAMZA, s:a_s_WAW_HAMZA], | |
378 \ [s:a_ALEF_HAMZA_BELOW, s:a_s_ALEF_HAMZA_BELOW], | |
379 \ [s:a_YEH_HAMZA, s:a_s_YEH_HAMZA], | |
380 \ [s:a_ALEF, s:a_s_ALEF], | |
381 \ [s:a_TEH_MARBUTA, s:a_s_TEH_MARBUTA], | |
382 \ [s:a_DAL, s:a_s_DAL], | |
383 \ [s:a_THAL, s:a_s_THAL], | |
384 \ [s:a_REH, s:a_s_REH], | |
385 \ [s:a_ZAIN, s:a_s_ZAIN], | |
386 \ [s:a_TATWEEL, s:a_TATWEEL], | |
387 \ [s:a_WAW, s:a_s_WAW], | |
388 \ [s:a_ALEF_MAKSURA, s:a_s_ALEF_MAKSURA], | |
389 \ [s:a_BEH, s:a_s_BEH], | |
390 \ [s:a_TEH, s:a_s_TEH], | |
391 \ [s:a_THEH, s:a_s_THEH], | |
392 \ [s:a_JEEM, s:a_s_JEEM], | |
393 \ [s:a_HAH, s:a_s_HAH], | |
394 \ [s:a_KHAH, s:a_s_KHAH], | |
395 \ [s:a_SEEN, s:a_s_SEEN], | |
396 \ [s:a_SHEEN, s:a_s_SHEEN], | |
397 \ [s:a_SAD, s:a_s_SAD], | |
398 \ [s:a_DAD, s:a_s_DAD], | |
399 \ [s:a_TAH, s:a_s_TAH], | |
400 \ [s:a_ZAH, s:a_s_ZAH], | |
401 \ [s:a_AIN, s:a_s_AIN], | |
402 \ [s:a_GHAIN, s:a_s_GHAIN], | |
403 \ [s:a_FEH, s:a_s_FEH], | |
404 \ [s:a_QAF, s:a_s_QAF], | |
405 \ [s:a_KAF, s:a_s_KAF], | |
406 \ [s:a_LAM, s:a_s_LAM], | |
407 \ [s:a_MEEM, s:a_s_MEEM], | |
408 \ [s:a_NOON, s:a_s_NOON], | |
409 \ [s:a_HEH, s:a_s_HEH], | |
410 \ [s:a_YEH, s:a_s_YEH], | |
411 \ ] | |
412 call setline(1, ' ' . pair[0] . ' ') | |
413 call assert_equal([' ' . pair[1] . ' '], ScreenLines(1, 3)) | |
414 endfor | |
415 | |
416 set arabicshape& | |
417 bwipe! | |
418 endfunc | |
419 | |
420 func Test_shape_medial() | |
421 new | |
422 set arabicshape | |
423 | |
424 " Shaping arabic {testchar} arabic Tests chg_c_a2m(). | |
425 " pair[0] = testchar, pair[1] = next-result, pair[2] = current-result, | |
426 " pair[3] = previous-result | |
427 for pair in [[s:a_HAMZA, s:a_s_GHAIN, s:a_s_HAMZA, s:a_s_BEH], | |
428 \[s:a_ALEF_MADDA, s:a_s_GHAIN, s:a_f_ALEF_MADDA, s:a_i_BEH], | |
429 \[s:a_ALEF_HAMZA_ABOVE, s:a_s_GHAIN, s:a_f_ALEF_HAMZA_ABOVE, s:a_i_BEH], | |
430 \[s:a_WAW_HAMZA, s:a_s_GHAIN, s:a_f_WAW_HAMZA, s:a_i_BEH], | |
431 \[s:a_ALEF_HAMZA_BELOW, s:a_s_GHAIN, s:a_f_ALEF_HAMZA_BELOW, s:a_i_BEH], | |
432 \[s:a_YEH_HAMZA, s:a_f_GHAIN, s:a_m_YEH_HAMZA, s:a_i_BEH], | |
433 \[s:a_ALEF, s:a_s_GHAIN, s:a_f_ALEF, s:a_i_BEH], | |
434 \[s:a_BEH, s:a_f_GHAIN, s:a_m_BEH, s:a_i_BEH], | |
435 \[s:a_TEH_MARBUTA, s:a_s_GHAIN, s:a_f_TEH_MARBUTA, s:a_i_BEH], | |
436 \[s:a_TEH, s:a_f_GHAIN, s:a_m_TEH, s:a_i_BEH], | |
437 \[s:a_THEH, s:a_f_GHAIN, s:a_m_THEH, s:a_i_BEH], | |
438 \[s:a_JEEM, s:a_f_GHAIN, s:a_m_JEEM, s:a_i_BEH], | |
439 \[s:a_HAH, s:a_f_GHAIN, s:a_m_HAH, s:a_i_BEH], | |
440 \[s:a_KHAH, s:a_f_GHAIN, s:a_m_KHAH, s:a_i_BEH], | |
441 \[s:a_DAL, s:a_s_GHAIN, s:a_f_DAL, s:a_i_BEH], | |
442 \[s:a_THAL, s:a_s_GHAIN, s:a_f_THAL, s:a_i_BEH], | |
443 \[s:a_REH, s:a_s_GHAIN, s:a_f_REH, s:a_i_BEH], | |
444 \[s:a_ZAIN, s:a_s_GHAIN, s:a_f_ZAIN, s:a_i_BEH], | |
445 \[s:a_SEEN, s:a_f_GHAIN, s:a_m_SEEN, s:a_i_BEH], | |
446 \[s:a_SHEEN, s:a_f_GHAIN, s:a_m_SHEEN, s:a_i_BEH], | |
447 \[s:a_SAD, s:a_f_GHAIN, s:a_m_SAD, s:a_i_BEH], | |
448 \[s:a_DAD, s:a_f_GHAIN, s:a_m_DAD, s:a_i_BEH], | |
449 \[s:a_TAH, s:a_f_GHAIN, s:a_m_TAH, s:a_i_BEH], | |
450 \[s:a_ZAH, s:a_f_GHAIN, s:a_m_ZAH, s:a_i_BEH], | |
451 \[s:a_AIN, s:a_f_GHAIN, s:a_m_AIN, s:a_i_BEH], | |
452 \[s:a_GHAIN, s:a_f_GHAIN, s:a_m_GHAIN, s:a_i_BEH], | |
453 \[s:a_TATWEEL, s:a_f_GHAIN, s:a_TATWEEL, s:a_i_BEH], | |
454 \[s:a_FEH, s:a_f_GHAIN, s:a_m_FEH, s:a_i_BEH], | |
455 \[s:a_QAF, s:a_f_GHAIN, s:a_m_QAF, s:a_i_BEH], | |
456 \[s:a_KAF, s:a_f_GHAIN, s:a_m_KAF, s:a_i_BEH], | |
457 \[s:a_LAM, s:a_f_GHAIN, s:a_m_LAM, s:a_i_BEH], | |
458 \[s:a_MEEM, s:a_f_GHAIN, s:a_m_MEEM, s:a_i_BEH], | |
459 \[s:a_NOON, s:a_f_GHAIN, s:a_m_NOON, s:a_i_BEH], | |
460 \[s:a_HEH, s:a_f_GHAIN, s:a_m_HEH, s:a_i_BEH], | |
461 \[s:a_WAW, s:a_s_GHAIN, s:a_f_WAW, s:a_i_BEH], | |
462 \[s:a_ALEF_MAKSURA, s:a_s_GHAIN, s:a_f_ALEF_MAKSURA, s:a_i_BEH], | |
463 \[s:a_YEH, s:a_f_GHAIN, s:a_m_YEH, s:a_i_BEH], | |
464 \ ] | |
465 call setline(1, s:a_GHAIN . pair[0] . s:a_BEH) | |
466 call assert_equal([pair[1] . pair[2] . pair[3]], ScreenLines(1, 3)) | |
467 endfor | |
468 | |
469 set arabicshape& | |
470 bwipe! | |
471 endfunc | |
472 |