Mercurial > vim
comparison src/testdir/test_sort.vim @ 12523:881564b89f9b v8.0.1140
patch 8.0.1140: still old style tests
commit https://github.com/vim/vim/commit/bb3e6416f157f68799ccb6070fa2f91df6780e79
Author: Bram Moolenaar <Bram@vim.org>
Date: Sat Sep 23 19:24:46 2017 +0200
patch 8.0.1140: still old style tests
Problem: Still old style tests.
Solution: Convert two tests to new style. (Yegappan Lakshmanan)
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Sat, 23 Sep 2017 19:30:04 +0200 |
parents | 2c40b40c3220 |
children | f2ab259ef88a |
comparison
equal
deleted
inserted
replaced
12522:c9f1b01ee83d | 12523:881564b89f9b |
---|---|
42 call assert_equal(['2', 'A', 'AA', 'a', 1, 3.3], sort([3.3, 1, "2", "A", "a", "AA"], '')) | 42 call assert_equal(['2', 'A', 'AA', 'a', 1, 3.3], sort([3.3, 1, "2", "A", "a", "AA"], '')) |
43 call assert_equal(['2', 'A', 'AA', 'a', 1, 3.3], sort([3.3, 1, "2", "A", "a", "AA"], 0)) | 43 call assert_equal(['2', 'A', 'AA', 'a', 1, 3.3], sort([3.3, 1, "2", "A", "a", "AA"], 0)) |
44 call assert_equal(['2', 'A', 'a', 'AA', 1, 3.3], sort([3.3, 1, "2", "A", "a", "AA"], 1)) | 44 call assert_equal(['2', 'A', 'a', 'AA', 1, 3.3], sort([3.3, 1, "2", "A", "a", "AA"], 1)) |
45 call assert_fails('call sort([3.3, 1, "2"], 3)', "E474") | 45 call assert_fails('call sort([3.3, 1, "2"], 3)', "E474") |
46 endfunc | 46 endfunc |
47 | |
48 " Tests for the :sort command | |
49 func Test_sort_cmd() | |
50 let tests = [ | |
51 \ { | |
52 \ 'name' : 'Alphabetical sort', | |
53 \ 'cmd' : '%sort', | |
54 \ 'input' : [ | |
55 \ 'abc', | |
56 \ 'ab', | |
57 \ 'a', | |
58 \ 'a321', | |
59 \ 'a123', | |
60 \ 'a122', | |
61 \ 'b321', | |
62 \ 'b123', | |
63 \ 'c123d', | |
64 \ ' 123b', | |
65 \ 'c321d', | |
66 \ 'b322b', | |
67 \ 'b321', | |
68 \ 'b321b' | |
69 \ ], | |
70 \ 'expected' : [ | |
71 \ ' 123b', | |
72 \ 'a', | |
73 \ 'a122', | |
74 \ 'a123', | |
75 \ 'a321', | |
76 \ 'ab', | |
77 \ 'abc', | |
78 \ 'b123', | |
79 \ 'b321', | |
80 \ 'b321', | |
81 \ 'b321b', | |
82 \ 'b322b', | |
83 \ 'c123d', | |
84 \ 'c321d' | |
85 \ ] | |
86 \ }, | |
87 \ { | |
88 \ 'name' : 'Numeric sort', | |
89 \ 'cmd' : '%sort n', | |
90 \ 'input' : [ | |
91 \ 'abc', | |
92 \ 'ab', | |
93 \ 'a321', | |
94 \ 'a123', | |
95 \ 'a122', | |
96 \ 'a', | |
97 \ 'x-22', | |
98 \ 'b321', | |
99 \ 'b123', | |
100 \ '', | |
101 \ 'c123d', | |
102 \ '-24', | |
103 \ ' 123b', | |
104 \ 'c321d', | |
105 \ '0', | |
106 \ 'b322b', | |
107 \ 'b321', | |
108 \ 'b321b' | |
109 \ ], | |
110 \ 'expected' : [ | |
111 \ 'abc', | |
112 \ 'ab', | |
113 \ 'a', | |
114 \ '', | |
115 \ '-24', | |
116 \ 'x-22', | |
117 \ '0', | |
118 \ 'a122', | |
119 \ 'a123', | |
120 \ 'b123', | |
121 \ 'c123d', | |
122 \ ' 123b', | |
123 \ 'a321', | |
124 \ 'b321', | |
125 \ 'c321d', | |
126 \ 'b321', | |
127 \ 'b321b', | |
128 \ 'b322b' | |
129 \ ] | |
130 \ }, | |
131 \ { | |
132 \ 'name' : 'Hexadecimal sort', | |
133 \ 'cmd' : '%sort x', | |
134 \ 'input' : [ | |
135 \ 'abc', | |
136 \ 'ab', | |
137 \ 'a', | |
138 \ 'a321', | |
139 \ 'a123', | |
140 \ 'a122', | |
141 \ 'b321', | |
142 \ 'b123', | |
143 \ 'c123d', | |
144 \ ' 123b', | |
145 \ 'c321d', | |
146 \ 'b322b', | |
147 \ 'b321', | |
148 \ 'b321b' | |
149 \ ], | |
150 \ 'expected' : [ | |
151 \ 'a', | |
152 \ 'ab', | |
153 \ 'abc', | |
154 \ ' 123b', | |
155 \ 'a122', | |
156 \ 'a123', | |
157 \ 'a321', | |
158 \ 'b123', | |
159 \ 'b321', | |
160 \ 'b321', | |
161 \ 'b321b', | |
162 \ 'b322b', | |
163 \ 'c123d', | |
164 \ 'c321d' | |
165 \ ] | |
166 \ }, | |
167 \ { | |
168 \ 'name' : 'Alphabetical unique sort', | |
169 \ 'cmd' : '%sort u', | |
170 \ 'input' : [ | |
171 \ 'abc', | |
172 \ 'ab', | |
173 \ 'a', | |
174 \ 'a321', | |
175 \ 'a123', | |
176 \ 'a122', | |
177 \ 'b321', | |
178 \ 'b123', | |
179 \ 'c123d', | |
180 \ ' 123b', | |
181 \ 'c321d', | |
182 \ 'b322b', | |
183 \ 'b321', | |
184 \ 'b321b' | |
185 \ ], | |
186 \ 'expected' : [ | |
187 \ ' 123b', | |
188 \ 'a', | |
189 \ 'a122', | |
190 \ 'a123', | |
191 \ 'a321', | |
192 \ 'ab', | |
193 \ 'abc', | |
194 \ 'b123', | |
195 \ 'b321', | |
196 \ 'b321b', | |
197 \ 'b322b', | |
198 \ 'c123d', | |
199 \ 'c321d' | |
200 \ ] | |
201 \ }, | |
202 \ { | |
203 \ 'name' : 'Alphabetical reverse sort', | |
204 \ 'cmd' : '%sort!', | |
205 \ 'input' : [ | |
206 \ 'abc', | |
207 \ 'ab', | |
208 \ 'a', | |
209 \ 'a321', | |
210 \ 'a123', | |
211 \ 'a122', | |
212 \ 'b321', | |
213 \ 'b123', | |
214 \ 'c123d', | |
215 \ ' 123b', | |
216 \ 'c321d', | |
217 \ 'b322b', | |
218 \ 'b321', | |
219 \ 'b321b' | |
220 \ ], | |
221 \ 'expected' : [ | |
222 \ 'c321d', | |
223 \ 'c123d', | |
224 \ 'b322b', | |
225 \ 'b321b', | |
226 \ 'b321', | |
227 \ 'b321', | |
228 \ 'b123', | |
229 \ 'abc', | |
230 \ 'ab', | |
231 \ 'a321', | |
232 \ 'a123', | |
233 \ 'a122', | |
234 \ 'a', | |
235 \ ' 123b', | |
236 \ ] | |
237 \ }, | |
238 \ { | |
239 \ 'name' : 'Numeric reverse sort', | |
240 \ 'cmd' : '%sort! n', | |
241 \ 'input' : [ | |
242 \ 'abc', | |
243 \ 'ab', | |
244 \ 'a', | |
245 \ 'a321', | |
246 \ 'a123', | |
247 \ 'a122', | |
248 \ 'b321', | |
249 \ 'b123', | |
250 \ 'c123d', | |
251 \ ' 123b', | |
252 \ 'c321d', | |
253 \ 'b322b', | |
254 \ 'b321', | |
255 \ 'b321b' | |
256 \ ], | |
257 \ 'expected' : [ | |
258 \ 'b322b', | |
259 \ 'b321b', | |
260 \ 'b321', | |
261 \ 'c321d', | |
262 \ 'b321', | |
263 \ 'a321', | |
264 \ ' 123b', | |
265 \ 'c123d', | |
266 \ 'b123', | |
267 \ 'a123', | |
268 \ 'a122', | |
269 \ 'a', | |
270 \ 'ab', | |
271 \ 'abc' | |
272 \ ] | |
273 \ }, | |
274 \ { | |
275 \ 'name' : 'Unique reverse sort', | |
276 \ 'cmd' : 'sort! u', | |
277 \ 'input' : [ | |
278 \ 'abc', | |
279 \ 'ab', | |
280 \ 'a', | |
281 \ 'a321', | |
282 \ 'a123', | |
283 \ 'a122', | |
284 \ 'b321', | |
285 \ 'b123', | |
286 \ 'c123d', | |
287 \ ' 123b', | |
288 \ 'c321d', | |
289 \ 'b322b', | |
290 \ 'b321', | |
291 \ 'b321b' | |
292 \ ], | |
293 \ 'expected' : [ | |
294 \ 'c321d', | |
295 \ 'c123d', | |
296 \ 'b322b', | |
297 \ 'b321b', | |
298 \ 'b321', | |
299 \ 'b123', | |
300 \ 'abc', | |
301 \ 'ab', | |
302 \ 'a321', | |
303 \ 'a123', | |
304 \ 'a122', | |
305 \ 'a', | |
306 \ ' 123b', | |
307 \ ] | |
308 \ }, | |
309 \ { | |
310 \ 'name' : 'Octal sort', | |
311 \ 'cmd' : 'sort o', | |
312 \ 'input' : [ | |
313 \ 'abc', | |
314 \ 'ab', | |
315 \ 'a', | |
316 \ 'a321', | |
317 \ 'a123', | |
318 \ 'a122', | |
319 \ 'b321', | |
320 \ 'b123', | |
321 \ 'c123d', | |
322 \ ' 123b', | |
323 \ 'c321d', | |
324 \ 'b322b', | |
325 \ 'b321', | |
326 \ 'b321b', | |
327 \ '', | |
328 \ '' | |
329 \ ], | |
330 \ 'expected' : [ | |
331 \ 'abc', | |
332 \ 'ab', | |
333 \ 'a', | |
334 \ '', | |
335 \ '', | |
336 \ 'a122', | |
337 \ 'a123', | |
338 \ 'b123', | |
339 \ 'c123d', | |
340 \ ' 123b', | |
341 \ 'a321', | |
342 \ 'b321', | |
343 \ 'c321d', | |
344 \ 'b321', | |
345 \ 'b321b', | |
346 \ 'b322b' | |
347 \ ] | |
348 \ }, | |
349 \ { | |
350 \ 'name' : 'Reverse hexadecimal sort', | |
351 \ 'cmd' : 'sort! x', | |
352 \ 'input' : [ | |
353 \ 'abc', | |
354 \ 'ab', | |
355 \ 'a', | |
356 \ 'a321', | |
357 \ 'a123', | |
358 \ 'a122', | |
359 \ 'b321', | |
360 \ 'b123', | |
361 \ 'c123d', | |
362 \ ' 123b', | |
363 \ 'c321d', | |
364 \ 'b322b', | |
365 \ 'b321', | |
366 \ 'b321b', | |
367 \ '', | |
368 \ '' | |
369 \ ], | |
370 \ 'expected' : [ | |
371 \ 'c321d', | |
372 \ 'c123d', | |
373 \ 'b322b', | |
374 \ 'b321b', | |
375 \ 'b321', | |
376 \ 'b321', | |
377 \ 'b123', | |
378 \ 'a321', | |
379 \ 'a123', | |
380 \ 'a122', | |
381 \ ' 123b', | |
382 \ 'abc', | |
383 \ 'ab', | |
384 \ 'a', | |
385 \ '', | |
386 \ '' | |
387 \ ] | |
388 \ }, | |
389 \ { | |
390 \ 'name' : 'Alpha (skip first character) sort', | |
391 \ 'cmd' : 'sort/./', | |
392 \ 'input' : [ | |
393 \ 'abc', | |
394 \ 'ab', | |
395 \ 'a', | |
396 \ 'a321', | |
397 \ 'a123', | |
398 \ 'a122', | |
399 \ 'b321', | |
400 \ 'b123', | |
401 \ 'c123d', | |
402 \ ' 123b', | |
403 \ 'c321d', | |
404 \ 'b322b', | |
405 \ 'b321', | |
406 \ 'b321b', | |
407 \ '', | |
408 \ '' | |
409 \ ], | |
410 \ 'expected' : [ | |
411 \ 'a', | |
412 \ '', | |
413 \ '', | |
414 \ 'a122', | |
415 \ 'a123', | |
416 \ 'b123', | |
417 \ ' 123b', | |
418 \ 'c123d', | |
419 \ 'a321', | |
420 \ 'b321', | |
421 \ 'b321', | |
422 \ 'b321b', | |
423 \ 'c321d', | |
424 \ 'b322b', | |
425 \ 'ab', | |
426 \ 'abc' | |
427 \ ] | |
428 \ }, | |
429 \ { | |
430 \ 'name' : 'Alpha (skip first 2 characters) sort', | |
431 \ 'cmd' : 'sort/../', | |
432 \ 'input' : [ | |
433 \ 'abc', | |
434 \ 'ab', | |
435 \ 'a', | |
436 \ 'a321', | |
437 \ 'a123', | |
438 \ 'a122', | |
439 \ 'b321', | |
440 \ 'b123', | |
441 \ 'c123d', | |
442 \ ' 123b', | |
443 \ 'c321d', | |
444 \ 'b322b', | |
445 \ 'b321', | |
446 \ 'b321b', | |
447 \ '', | |
448 \ '' | |
449 \ ], | |
450 \ 'expected' : [ | |
451 \ 'ab', | |
452 \ 'a', | |
453 \ '', | |
454 \ '', | |
455 \ 'a321', | |
456 \ 'b321', | |
457 \ 'b321', | |
458 \ 'b321b', | |
459 \ 'c321d', | |
460 \ 'a122', | |
461 \ 'b322b', | |
462 \ 'a123', | |
463 \ 'b123', | |
464 \ ' 123b', | |
465 \ 'c123d', | |
466 \ 'abc' | |
467 \ ] | |
468 \ }, | |
469 \ { | |
470 \ 'name' : 'alpha, unique, skip first 2 characters', | |
471 \ 'cmd' : 'sort/../u', | |
472 \ 'input' : [ | |
473 \ 'abc', | |
474 \ 'ab', | |
475 \ 'a', | |
476 \ 'a321', | |
477 \ 'a123', | |
478 \ 'a122', | |
479 \ 'b321', | |
480 \ 'b123', | |
481 \ 'c123d', | |
482 \ ' 123b', | |
483 \ 'c321d', | |
484 \ 'b322b', | |
485 \ 'b321', | |
486 \ 'b321b', | |
487 \ '', | |
488 \ '' | |
489 \ ], | |
490 \ 'expected' : [ | |
491 \ 'ab', | |
492 \ 'a', | |
493 \ '', | |
494 \ 'a321', | |
495 \ 'b321', | |
496 \ 'b321b', | |
497 \ 'c321d', | |
498 \ 'a122', | |
499 \ 'b322b', | |
500 \ 'a123', | |
501 \ 'b123', | |
502 \ ' 123b', | |
503 \ 'c123d', | |
504 \ 'abc' | |
505 \ ] | |
506 \ }, | |
507 \ { | |
508 \ 'name' : 'numeric, skip first character', | |
509 \ 'cmd' : 'sort/./n', | |
510 \ 'input' : [ | |
511 \ 'abc', | |
512 \ 'ab', | |
513 \ 'a', | |
514 \ 'a321', | |
515 \ 'a123', | |
516 \ 'a122', | |
517 \ 'b321', | |
518 \ 'b123', | |
519 \ 'c123d', | |
520 \ ' 123b', | |
521 \ 'c321d', | |
522 \ 'b322b', | |
523 \ 'b321', | |
524 \ 'b321b', | |
525 \ '', | |
526 \ '' | |
527 \ ], | |
528 \ 'expected' : [ | |
529 \ 'abc', | |
530 \ 'ab', | |
531 \ 'a', | |
532 \ '', | |
533 \ '', | |
534 \ 'a122', | |
535 \ 'a123', | |
536 \ 'b123', | |
537 \ 'c123d', | |
538 \ ' 123b', | |
539 \ 'a321', | |
540 \ 'b321', | |
541 \ 'c321d', | |
542 \ 'b321', | |
543 \ 'b321b', | |
544 \ 'b322b' | |
545 \ ] | |
546 \ }, | |
547 \ { | |
548 \ 'name' : 'alpha, sort on first character', | |
549 \ 'cmd' : 'sort/./r', | |
550 \ 'input' : [ | |
551 \ 'abc', | |
552 \ 'ab', | |
553 \ 'a', | |
554 \ 'a321', | |
555 \ 'a123', | |
556 \ 'a122', | |
557 \ 'b321', | |
558 \ 'b123', | |
559 \ 'c123d', | |
560 \ ' 123b', | |
561 \ 'c321d', | |
562 \ 'b322b', | |
563 \ 'b321', | |
564 \ 'b321b', | |
565 \ '', | |
566 \ '' | |
567 \ ], | |
568 \ 'expected' : [ | |
569 \ '', | |
570 \ '', | |
571 \ ' 123b', | |
572 \ 'abc', | |
573 \ 'ab', | |
574 \ 'a', | |
575 \ 'a321', | |
576 \ 'a123', | |
577 \ 'a122', | |
578 \ 'b321', | |
579 \ 'b123', | |
580 \ 'b322b', | |
581 \ 'b321', | |
582 \ 'b321b', | |
583 \ 'c123d', | |
584 \ 'c321d' | |
585 \ ] | |
586 \ }, | |
587 \ { | |
588 \ 'name' : 'alpha, sort on first 2 characters', | |
589 \ 'cmd' : 'sort/../r', | |
590 \ 'input' : [ | |
591 \ 'abc', | |
592 \ 'ab', | |
593 \ 'a', | |
594 \ 'a321', | |
595 \ 'a123', | |
596 \ 'a122', | |
597 \ 'b321', | |
598 \ 'b123', | |
599 \ 'c123d', | |
600 \ ' 123b', | |
601 \ 'c321d', | |
602 \ 'b322b', | |
603 \ 'b321', | |
604 \ 'b321b', | |
605 \ '', | |
606 \ '' | |
607 \ ], | |
608 \ 'expected' : [ | |
609 \ 'a', | |
610 \ '', | |
611 \ '', | |
612 \ ' 123b', | |
613 \ 'a123', | |
614 \ 'a122', | |
615 \ 'a321', | |
616 \ 'abc', | |
617 \ 'ab', | |
618 \ 'b123', | |
619 \ 'b321', | |
620 \ 'b322b', | |
621 \ 'b321', | |
622 \ 'b321b', | |
623 \ 'c123d', | |
624 \ 'c321d' | |
625 \ ] | |
626 \ }, | |
627 \ { | |
628 \ 'name' : 'numeric, sort on first character', | |
629 \ 'cmd' : 'sort/./rn', | |
630 \ 'input' : [ | |
631 \ 'abc', | |
632 \ 'ab', | |
633 \ 'a', | |
634 \ 'a321', | |
635 \ 'a123', | |
636 \ 'a122', | |
637 \ 'b321', | |
638 \ 'b123', | |
639 \ 'c123d', | |
640 \ ' 123b', | |
641 \ 'c321d', | |
642 \ 'b322b', | |
643 \ 'b321', | |
644 \ 'b321b', | |
645 \ '', | |
646 \ '' | |
647 \ ], | |
648 \ 'expected' : [ | |
649 \ 'abc', | |
650 \ 'ab', | |
651 \ 'a', | |
652 \ 'a321', | |
653 \ 'a123', | |
654 \ 'a122', | |
655 \ 'b321', | |
656 \ 'b123', | |
657 \ 'c123d', | |
658 \ ' 123b', | |
659 \ 'c321d', | |
660 \ 'b322b', | |
661 \ 'b321', | |
662 \ 'b321b', | |
663 \ '', | |
664 \ '' | |
665 \ ] | |
666 \ }, | |
667 \ { | |
668 \ 'name' : 'alpha, skip past first digit', | |
669 \ 'cmd' : 'sort/\d/', | |
670 \ 'input' : [ | |
671 \ 'abc', | |
672 \ 'ab', | |
673 \ 'a', | |
674 \ 'a321', | |
675 \ 'a123', | |
676 \ 'a122', | |
677 \ 'b321', | |
678 \ 'b123', | |
679 \ 'c123d', | |
680 \ ' 123b', | |
681 \ 'c321d', | |
682 \ 'b322b', | |
683 \ 'b321', | |
684 \ 'b321b', | |
685 \ '', | |
686 \ '' | |
687 \ ], | |
688 \ 'expected' : [ | |
689 \ 'abc', | |
690 \ 'ab', | |
691 \ 'a', | |
692 \ '', | |
693 \ '', | |
694 \ 'a321', | |
695 \ 'b321', | |
696 \ 'b321', | |
697 \ 'b321b', | |
698 \ 'c321d', | |
699 \ 'a122', | |
700 \ 'b322b', | |
701 \ 'a123', | |
702 \ 'b123', | |
703 \ ' 123b', | |
704 \ 'c123d' | |
705 \ ] | |
706 \ }, | |
707 \ { | |
708 \ 'name' : 'alpha, sort on first digit', | |
709 \ 'cmd' : 'sort/\d/r', | |
710 \ 'input' : [ | |
711 \ 'abc', | |
712 \ 'ab', | |
713 \ 'a', | |
714 \ 'a321', | |
715 \ 'a123', | |
716 \ 'a122', | |
717 \ 'b321', | |
718 \ 'b123', | |
719 \ 'c123d', | |
720 \ ' 123b', | |
721 \ 'c321d', | |
722 \ 'b322b', | |
723 \ 'b321', | |
724 \ 'b321b', | |
725 \ '', | |
726 \ '' | |
727 \ ], | |
728 \ 'expected' : [ | |
729 \ 'abc', | |
730 \ 'ab', | |
731 \ 'a', | |
732 \ '', | |
733 \ '', | |
734 \ 'a123', | |
735 \ 'a122', | |
736 \ 'b123', | |
737 \ 'c123d', | |
738 \ ' 123b', | |
739 \ 'a321', | |
740 \ 'b321', | |
741 \ 'c321d', | |
742 \ 'b322b', | |
743 \ 'b321', | |
744 \ 'b321b' | |
745 \ ] | |
746 \ }, | |
747 \ { | |
748 \ 'name' : 'numeric, skip past first digit', | |
749 \ 'cmd' : 'sort/\d/n', | |
750 \ 'input' : [ | |
751 \ 'abc', | |
752 \ 'ab', | |
753 \ 'a', | |
754 \ 'a321', | |
755 \ 'a123', | |
756 \ 'a122', | |
757 \ 'b321', | |
758 \ 'b123', | |
759 \ 'c123d', | |
760 \ ' 123b', | |
761 \ 'c321d', | |
762 \ 'b322b', | |
763 \ 'b321', | |
764 \ 'b321b', | |
765 \ '', | |
766 \ '' | |
767 \ ], | |
768 \ 'expected' : [ | |
769 \ 'abc', | |
770 \ 'ab', | |
771 \ 'a', | |
772 \ '', | |
773 \ '', | |
774 \ 'a321', | |
775 \ 'b321', | |
776 \ 'c321d', | |
777 \ 'b321', | |
778 \ 'b321b', | |
779 \ 'a122', | |
780 \ 'b322b', | |
781 \ 'a123', | |
782 \ 'b123', | |
783 \ 'c123d', | |
784 \ ' 123b' | |
785 \ ] | |
786 \ }, | |
787 \ { | |
788 \ 'name' : 'numeric, sort on first digit', | |
789 \ 'cmd' : 'sort/\d/rn', | |
790 \ 'input' : [ | |
791 \ 'abc', | |
792 \ 'ab', | |
793 \ 'a', | |
794 \ 'a321', | |
795 \ 'a123', | |
796 \ 'a122', | |
797 \ 'b321', | |
798 \ 'b123', | |
799 \ 'c123d', | |
800 \ ' 123b', | |
801 \ 'c321d', | |
802 \ 'b322b', | |
803 \ 'b321', | |
804 \ 'b321b', | |
805 \ '', | |
806 \ '' | |
807 \ ], | |
808 \ 'expected' : [ | |
809 \ 'abc', | |
810 \ 'ab', | |
811 \ 'a', | |
812 \ '', | |
813 \ '', | |
814 \ 'a123', | |
815 \ 'a122', | |
816 \ 'b123', | |
817 \ 'c123d', | |
818 \ ' 123b', | |
819 \ 'a321', | |
820 \ 'b321', | |
821 \ 'c321d', | |
822 \ 'b322b', | |
823 \ 'b321', | |
824 \ 'b321b' | |
825 \ ] | |
826 \ }, | |
827 \ { | |
828 \ 'name' : 'alpha, skip past first 2 digits', | |
829 \ 'cmd' : 'sort/\d\d/', | |
830 \ 'input' : [ | |
831 \ 'abc', | |
832 \ 'ab', | |
833 \ 'a', | |
834 \ 'a321', | |
835 \ 'a123', | |
836 \ 'a122', | |
837 \ 'b321', | |
838 \ 'b123', | |
839 \ 'c123d', | |
840 \ ' 123b', | |
841 \ 'c321d', | |
842 \ 'b322b', | |
843 \ 'b321', | |
844 \ 'b321b', | |
845 \ '', | |
846 \ '' | |
847 \ ], | |
848 \ 'expected' : [ | |
849 \ 'abc', | |
850 \ 'ab', | |
851 \ 'a', | |
852 \ '', | |
853 \ '', | |
854 \ 'a321', | |
855 \ 'b321', | |
856 \ 'b321', | |
857 \ 'b321b', | |
858 \ 'c321d', | |
859 \ 'a122', | |
860 \ 'b322b', | |
861 \ 'a123', | |
862 \ 'b123', | |
863 \ ' 123b', | |
864 \ 'c123d' | |
865 \ ] | |
866 \ }, | |
867 \ { | |
868 \ 'name' : 'numeric, skip past first 2 digits', | |
869 \ 'cmd' : 'sort/\d\d/n', | |
870 \ 'input' : [ | |
871 \ 'abc', | |
872 \ 'ab', | |
873 \ 'a', | |
874 \ 'a321', | |
875 \ 'a123', | |
876 \ 'a122', | |
877 \ 'b321', | |
878 \ 'b123', | |
879 \ 'c123d', | |
880 \ ' 123b', | |
881 \ 'c321d', | |
882 \ 'b322b', | |
883 \ 'b321', | |
884 \ 'b321b', | |
885 \ '', | |
886 \ '' | |
887 \ ], | |
888 \ 'expected' : [ | |
889 \ 'abc', | |
890 \ 'ab', | |
891 \ 'a', | |
892 \ '', | |
893 \ '', | |
894 \ 'a321', | |
895 \ 'b321', | |
896 \ 'c321d', | |
897 \ 'b321', | |
898 \ 'b321b', | |
899 \ 'a122', | |
900 \ 'b322b', | |
901 \ 'a123', | |
902 \ 'b123', | |
903 \ 'c123d', | |
904 \ ' 123b' | |
905 \ ] | |
906 \ }, | |
907 \ { | |
908 \ 'name' : 'hexadecimal, skip past first 2 digits', | |
909 \ 'cmd' : 'sort/\d\d/x', | |
910 \ 'input' : [ | |
911 \ 'abc', | |
912 \ 'ab', | |
913 \ 'a', | |
914 \ 'a321', | |
915 \ 'a123', | |
916 \ 'a122', | |
917 \ 'b321', | |
918 \ 'b123', | |
919 \ 'c123d', | |
920 \ ' 123b', | |
921 \ 'c321d', | |
922 \ 'b322b', | |
923 \ 'b321', | |
924 \ 'b321b', | |
925 \ '', | |
926 \ '' | |
927 \ ], | |
928 \ 'expected' : [ | |
929 \ 'abc', | |
930 \ 'ab', | |
931 \ 'a', | |
932 \ '', | |
933 \ '', | |
934 \ 'a321', | |
935 \ 'b321', | |
936 \ 'b321', | |
937 \ 'a122', | |
938 \ 'a123', | |
939 \ 'b123', | |
940 \ 'b321b', | |
941 \ 'c321d', | |
942 \ 'b322b', | |
943 \ ' 123b', | |
944 \ 'c123d' | |
945 \ ] | |
946 \ }, | |
947 \ { | |
948 \ 'name' : 'alpha, sort on first 2 digits', | |
949 \ 'cmd' : 'sort/\d\d/r', | |
950 \ 'input' : [ | |
951 \ 'abc', | |
952 \ 'ab', | |
953 \ 'a', | |
954 \ 'a321', | |
955 \ 'a123', | |
956 \ 'a122', | |
957 \ 'b321', | |
958 \ 'b123', | |
959 \ 'c123d', | |
960 \ ' 123b', | |
961 \ 'c321d', | |
962 \ 'b322b', | |
963 \ 'b321', | |
964 \ 'b321b', | |
965 \ '', | |
966 \ '' | |
967 \ ], | |
968 \ 'expected' : [ | |
969 \ 'abc', | |
970 \ 'ab', | |
971 \ 'a', | |
972 \ '', | |
973 \ '', | |
974 \ 'a123', | |
975 \ 'a122', | |
976 \ 'b123', | |
977 \ 'c123d', | |
978 \ ' 123b', | |
979 \ 'a321', | |
980 \ 'b321', | |
981 \ 'c321d', | |
982 \ 'b322b', | |
983 \ 'b321', | |
984 \ 'b321b' | |
985 \ ] | |
986 \ }, | |
987 \ { | |
988 \ 'name' : 'numeric, sort on first 2 digits', | |
989 \ 'cmd' : 'sort/\d\d/rn', | |
990 \ 'input' : [ | |
991 \ 'abc', | |
992 \ 'ab', | |
993 \ 'a', | |
994 \ 'a321', | |
995 \ 'a123', | |
996 \ 'a122', | |
997 \ 'b321', | |
998 \ 'b123', | |
999 \ 'c123d', | |
1000 \ ' 123b', | |
1001 \ 'c321d', | |
1002 \ 'b322b', | |
1003 \ 'b321', | |
1004 \ 'b321b', | |
1005 \ '', | |
1006 \ '' | |
1007 \ ], | |
1008 \ 'expected' : [ | |
1009 \ 'abc', | |
1010 \ 'ab', | |
1011 \ 'a', | |
1012 \ '', | |
1013 \ '', | |
1014 \ 'a123', | |
1015 \ 'a122', | |
1016 \ 'b123', | |
1017 \ 'c123d', | |
1018 \ ' 123b', | |
1019 \ 'a321', | |
1020 \ 'b321', | |
1021 \ 'c321d', | |
1022 \ 'b322b', | |
1023 \ 'b321', | |
1024 \ 'b321b' | |
1025 \ ] | |
1026 \ }, | |
1027 \ { | |
1028 \ 'name' : 'hexadecimal, sort on first 2 digits', | |
1029 \ 'cmd' : 'sort/\d\d/rx', | |
1030 \ 'input' : [ | |
1031 \ 'abc', | |
1032 \ 'ab', | |
1033 \ 'a', | |
1034 \ 'a321', | |
1035 \ 'a123', | |
1036 \ 'a122', | |
1037 \ 'b321', | |
1038 \ 'b123', | |
1039 \ 'c123d', | |
1040 \ ' 123b', | |
1041 \ 'c321d', | |
1042 \ 'b322b', | |
1043 \ 'b321', | |
1044 \ 'b321b', | |
1045 \ '', | |
1046 \ '' | |
1047 \ ], | |
1048 \ 'expected' : [ | |
1049 \ 'abc', | |
1050 \ 'ab', | |
1051 \ 'a', | |
1052 \ '', | |
1053 \ '', | |
1054 \ 'a123', | |
1055 \ 'a122', | |
1056 \ 'b123', | |
1057 \ 'c123d', | |
1058 \ ' 123b', | |
1059 \ 'a321', | |
1060 \ 'b321', | |
1061 \ 'c321d', | |
1062 \ 'b322b', | |
1063 \ 'b321', | |
1064 \ 'b321b' | |
1065 \ ] | |
1066 \ }, | |
1067 \ { | |
1068 \ 'name' : 'binary', | |
1069 \ 'cmd' : 'sort b', | |
1070 \ 'input' : [ | |
1071 \ '0b111000', | |
1072 \ '0b101100', | |
1073 \ '0b101001', | |
1074 \ '0b101001', | |
1075 \ '0b101000', | |
1076 \ '0b000000', | |
1077 \ '0b001000', | |
1078 \ '0b010000', | |
1079 \ '0b101000', | |
1080 \ '0b100000', | |
1081 \ '0b101010', | |
1082 \ '0b100010', | |
1083 \ '0b100100', | |
1084 \ '0b100010', | |
1085 \ '', | |
1086 \ '' | |
1087 \ ], | |
1088 \ 'expected' : [ | |
1089 \ '', | |
1090 \ '', | |
1091 \ '0b000000', | |
1092 \ '0b001000', | |
1093 \ '0b010000', | |
1094 \ '0b100000', | |
1095 \ '0b100010', | |
1096 \ '0b100010', | |
1097 \ '0b100100', | |
1098 \ '0b101000', | |
1099 \ '0b101000', | |
1100 \ '0b101001', | |
1101 \ '0b101001', | |
1102 \ '0b101010', | |
1103 \ '0b101100', | |
1104 \ '0b111000' | |
1105 \ ] | |
1106 \ }, | |
1107 \ { | |
1108 \ 'name' : 'binary with leading characters', | |
1109 \ 'cmd' : 'sort b', | |
1110 \ 'input' : [ | |
1111 \ '0b100010', | |
1112 \ '0b010000', | |
1113 \ ' 0b101001', | |
1114 \ 'b0b101100', | |
1115 \ '0b100010', | |
1116 \ ' 0b100100', | |
1117 \ 'a0b001000', | |
1118 \ '0b101000', | |
1119 \ '0b101000', | |
1120 \ 'a0b101001', | |
1121 \ 'ab0b100000', | |
1122 \ '0b101010', | |
1123 \ '0b000000', | |
1124 \ 'b0b111000', | |
1125 \ '', | |
1126 \ '' | |
1127 \ ], | |
1128 \ 'expected' : [ | |
1129 \ '', | |
1130 \ '', | |
1131 \ '0b000000', | |
1132 \ 'a0b001000', | |
1133 \ '0b010000', | |
1134 \ 'ab0b100000', | |
1135 \ '0b100010', | |
1136 \ '0b100010', | |
1137 \ ' 0b100100', | |
1138 \ '0b101000', | |
1139 \ '0b101000', | |
1140 \ ' 0b101001', | |
1141 \ 'a0b101001', | |
1142 \ '0b101010', | |
1143 \ 'b0b101100', | |
1144 \ 'b0b111000' | |
1145 \ ] | |
1146 \ }, | |
1147 \ { | |
1148 \ 'name' : 'float', | |
1149 \ 'cmd' : 'sort f', | |
1150 \ 'input' : [ | |
1151 \ '1.234', | |
1152 \ '0.88', | |
1153 \ '123.456', | |
1154 \ '1.15e-6', | |
1155 \ '-1.1e3', | |
1156 \ '-1.01e3', | |
1157 \ '', | |
1158 \ '' | |
1159 \ ], | |
1160 \ 'expected' : [ | |
1161 \ '', | |
1162 \ '', | |
1163 \ '-1.1e3', | |
1164 \ '-1.01e3', | |
1165 \ '1.15e-6', | |
1166 \ '0.88', | |
1167 \ '1.234', | |
1168 \ '123.456' | |
1169 \ ] | |
1170 \ } | |
1171 \ ] | |
1172 | |
1173 for t in tests | |
1174 enew! | |
1175 call append(0, t.input) | |
1176 $delete _ | |
1177 exe t.cmd | |
1178 call assert_equal(t.expected, getline(1, '$'), t.name) | |
1179 endfor | |
1180 | |
1181 call assert_fails('sort no', 'E474') | |
1182 | |
1183 enew! | |
1184 endfunc |