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