annotate src/testdir/test_utf8_comparisons.vim @ 27970:212c5894b8b1 v8.2.4510

patch 8.2.4510: Vim9: shortening commands leads to confusing script Commit: https://github.com/vim/vim/commit/204852ae2adfdde10c656ca7f14e5b4207a69172 Author: Bram Moolenaar <Bram@vim.org> Date: Sat Mar 5 12:56:44 2022 +0000 patch 8.2.4510: Vim9: shortening commands leads to confusing script Problem: Vim9: shortening commands leads to confusing script. Solution: In Vim9 script require at least ":cont" for ":continue", "const" instead of "cons", "break" instead of "brea", "catch" instead of "cat", "else" instead of "el" "elseif" instead of "elsei" "endfor" instead of "endfo" "endif" instead of "en" "endtry" instead of "endt", "finally" instead of "fina", "throw" instead of "th", "while" instead of "wh".
author Bram Moolenaar <Bram@vim.org>
date Sat, 05 Mar 2022 14:00:03 +0100
parents 08940efa6b4e
children d2ad8733db75
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
11603
4e66689bced6 patch 8.0.0684: old style tests are not nice
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
1 " Tests for case-insensitive UTF-8 comparisons (utf_strnicmp() in mbyte.c)
4e66689bced6 patch 8.0.0684: old style tests are not nice
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
2 " Also test "g~ap".
4e66689bced6 patch 8.0.0684: old style tests are not nice
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
3
15406
63b02fcf1361 patch 8.1.0711: test files still use function!
Bram Moolenaar <Bram@vim.org>
parents: 11603
diff changeset
4 func Ch(a, op, b, expected)
11603
4e66689bced6 patch 8.0.0684: old style tests are not nice
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
5 call assert_equal(eval(printf('"%s" %s "%s"', a:a, a:op, a:b)), a:expected,
4e66689bced6 patch 8.0.0684: old style tests are not nice
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
6 \ printf('"%s" %s "%s" should return %d', a:a, a:op, a:b, a:expected))
15406
63b02fcf1361 patch 8.1.0711: test files still use function!
Bram Moolenaar <Bram@vim.org>
parents: 11603
diff changeset
7 endfunc
11603
4e66689bced6 patch 8.0.0684: old style tests are not nice
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
8
15406
63b02fcf1361 patch 8.1.0711: test files still use function!
Bram Moolenaar <Bram@vim.org>
parents: 11603
diff changeset
9 func Chk(a, b, result)
11603
4e66689bced6 patch 8.0.0684: old style tests are not nice
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
10 if a:result == 0
4e66689bced6 patch 8.0.0684: old style tests are not nice
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
11 call Ch(a:a, '==?', a:b, 1)
4e66689bced6 patch 8.0.0684: old style tests are not nice
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
12 call Ch(a:a, '!=?', a:b, 0)
4e66689bced6 patch 8.0.0684: old style tests are not nice
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
13 call Ch(a:a, '<=?', a:b, 1)
4e66689bced6 patch 8.0.0684: old style tests are not nice
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
14 call Ch(a:a, '>=?', a:b, 1)
4e66689bced6 patch 8.0.0684: old style tests are not nice
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
15 call Ch(a:a, '<?', a:b, 0)
4e66689bced6 patch 8.0.0684: old style tests are not nice
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
16 call Ch(a:a, '>?', a:b, 0)
4e66689bced6 patch 8.0.0684: old style tests are not nice
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
17 elseif a:result > 0
4e66689bced6 patch 8.0.0684: old style tests are not nice
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
18 call Ch(a:a, '==?', a:b, 0)
4e66689bced6 patch 8.0.0684: old style tests are not nice
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
19 call Ch(a:a, '!=?', a:b, 1)
4e66689bced6 patch 8.0.0684: old style tests are not nice
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
20 call Ch(a:a, '<=?', a:b, 0)
4e66689bced6 patch 8.0.0684: old style tests are not nice
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
21 call Ch(a:a, '>=?', a:b, 1)
4e66689bced6 patch 8.0.0684: old style tests are not nice
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
22 call Ch(a:a, '<?', a:b, 0)
4e66689bced6 patch 8.0.0684: old style tests are not nice
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
23 call Ch(a:a, '>?', a:b, 1)
4e66689bced6 patch 8.0.0684: old style tests are not nice
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
24 else
4e66689bced6 patch 8.0.0684: old style tests are not nice
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
25 call Ch(a:a, '==?', a:b, 0)
4e66689bced6 patch 8.0.0684: old style tests are not nice
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
26 call Ch(a:a, '!=?', a:b, 1)
4e66689bced6 patch 8.0.0684: old style tests are not nice
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
27 call Ch(a:a, '<=?', a:b, 1)
4e66689bced6 patch 8.0.0684: old style tests are not nice
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
28 call Ch(a:a, '>=?', a:b, 0)
4e66689bced6 patch 8.0.0684: old style tests are not nice
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
29 call Ch(a:a, '<?', a:b, 1)
4e66689bced6 patch 8.0.0684: old style tests are not nice
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
30 call Ch(a:a, '>?', a:b, 0)
4e66689bced6 patch 8.0.0684: old style tests are not nice
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
31 endif
15406
63b02fcf1361 patch 8.1.0711: test files still use function!
Bram Moolenaar <Bram@vim.org>
parents: 11603
diff changeset
32 endfunc
11603
4e66689bced6 patch 8.0.0684: old style tests are not nice
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
33
15406
63b02fcf1361 patch 8.1.0711: test files still use function!
Bram Moolenaar <Bram@vim.org>
parents: 11603
diff changeset
34 func Check(a, b, result)
11603
4e66689bced6 patch 8.0.0684: old style tests are not nice
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
35 call Chk(a:a, a:b, a:result)
4e66689bced6 patch 8.0.0684: old style tests are not nice
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
36 call Chk(a:b, a:a, -a:result)
15406
63b02fcf1361 patch 8.1.0711: test files still use function!
Bram Moolenaar <Bram@vim.org>
parents: 11603
diff changeset
37 endfunc
11603
4e66689bced6 patch 8.0.0684: old style tests are not nice
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
38
15406
63b02fcf1361 patch 8.1.0711: test files still use function!
Bram Moolenaar <Bram@vim.org>
parents: 11603
diff changeset
39 func LT(a, b)
11603
4e66689bced6 patch 8.0.0684: old style tests are not nice
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
40 call Check(a:a, a:b, -1)
15406
63b02fcf1361 patch 8.1.0711: test files still use function!
Bram Moolenaar <Bram@vim.org>
parents: 11603
diff changeset
41 endfunc
11603
4e66689bced6 patch 8.0.0684: old style tests are not nice
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
42
15406
63b02fcf1361 patch 8.1.0711: test files still use function!
Bram Moolenaar <Bram@vim.org>
parents: 11603
diff changeset
43 func GT(a, b)
11603
4e66689bced6 patch 8.0.0684: old style tests are not nice
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
44 call Check(a:a, a:b, 1)
15406
63b02fcf1361 patch 8.1.0711: test files still use function!
Bram Moolenaar <Bram@vim.org>
parents: 11603
diff changeset
45 endfunc
11603
4e66689bced6 patch 8.0.0684: old style tests are not nice
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
46
15406
63b02fcf1361 patch 8.1.0711: test files still use function!
Bram Moolenaar <Bram@vim.org>
parents: 11603
diff changeset
47 func EQ(a, b)
11603
4e66689bced6 patch 8.0.0684: old style tests are not nice
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
48 call Check(a:a, a:b, 0)
15406
63b02fcf1361 patch 8.1.0711: test files still use function!
Bram Moolenaar <Bram@vim.org>
parents: 11603
diff changeset
49 endfunc
11603
4e66689bced6 patch 8.0.0684: old style tests are not nice
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
50
15406
63b02fcf1361 patch 8.1.0711: test files still use function!
Bram Moolenaar <Bram@vim.org>
parents: 11603
diff changeset
51 func Test_comparisons()
11603
4e66689bced6 patch 8.0.0684: old style tests are not nice
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
52 call EQ('', '')
4e66689bced6 patch 8.0.0684: old style tests are not nice
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
53 call LT('', 'a')
4e66689bced6 patch 8.0.0684: old style tests are not nice
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
54 call EQ('abc', 'abc')
4e66689bced6 patch 8.0.0684: old style tests are not nice
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
55 call EQ('Abc', 'abC')
4e66689bced6 patch 8.0.0684: old style tests are not nice
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
56 call LT('ab', 'abc')
4e66689bced6 patch 8.0.0684: old style tests are not nice
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
57 call LT('AB', 'abc')
4e66689bced6 patch 8.0.0684: old style tests are not nice
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
58 call LT('ab', 'aBc')
4e66689bced6 patch 8.0.0684: old style tests are not nice
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
59 call EQ('\xd0\xb9\xd1\x86\xd1\x83\xd0\xba\xd0\xb5\xd0\xbd', '\xd0\xb9\xd0\xa6\xd0\xa3\xd0\xba\xd0\x95\xd0\xbd')
4e66689bced6 patch 8.0.0684: old style tests are not nice
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
60 call LT('\xd0\xb9\xd1\x86\xd1\x83\xd0\xba\xd0\xb5\xd0\xbd', '\xd0\xaf\xd1\x86\xd1\x83\xd0\xba\xd0\xb5\xd0\xbd')
4e66689bced6 patch 8.0.0684: old style tests are not nice
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
61 call EQ('\xe2\x84\xaa', 'k')
4e66689bced6 patch 8.0.0684: old style tests are not nice
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
62 call LT('\xe2\x84\xaa', 'kkkkkk')
4e66689bced6 patch 8.0.0684: old style tests are not nice
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
63 call EQ('\xe2\x84\xaa\xe2\x84\xaa\xe2\x84\xaa', 'kkk')
4e66689bced6 patch 8.0.0684: old style tests are not nice
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
64 call LT('kk', '\xe2\x84\xaa\xe2\x84\xaa\xe2\x84\xaa')
4e66689bced6 patch 8.0.0684: old style tests are not nice
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
65 call EQ('\xe2\x84\xaa\xe2\x84\xa6k\xe2\x84\xaak\xcf\x89', 'k\xcf\x89\xe2\x84\xaakk\xe2\x84\xa6')
4e66689bced6 patch 8.0.0684: old style tests are not nice
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
66 call EQ('Abc\x80', 'AbC\x80')
4e66689bced6 patch 8.0.0684: old style tests are not nice
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
67 call LT('Abc\x80', 'AbC\x81')
4e66689bced6 patch 8.0.0684: old style tests are not nice
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
68 call LT('Abc', 'AbC\x80')
4e66689bced6 patch 8.0.0684: old style tests are not nice
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
69 call LT('abc\x80DEF', 'abc\x80def') " case folding stops at the first bad character
4e66689bced6 patch 8.0.0684: old style tests are not nice
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
70 call LT('\xc3XYZ', '\xc3xyz')
4e66689bced6 patch 8.0.0684: old style tests are not nice
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
71 call EQ('\xef\xbc\xba', '\xef\xbd\x9a') " FF3A (upper), FF5A (lower)
4e66689bced6 patch 8.0.0684: old style tests are not nice
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
72 call GT('\xef\xbc\xba', '\xef\xbc\xff') " first string is ok and equals \xef\xbd\x9a after folding, second string is illegal and was left unchanged, then the strings were bytewise compared
4e66689bced6 patch 8.0.0684: old style tests are not nice
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
73 call LT('\xc3', '\xc3\x83')
4e66689bced6 patch 8.0.0684: old style tests are not nice
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
74 call EQ('\xc3\xa3xYz', '\xc3\x83XyZ')
4e66689bced6 patch 8.0.0684: old style tests are not nice
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
75 for n in range(0x60, 0xFF)
4e66689bced6 patch 8.0.0684: old style tests are not nice
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
76 call LT(printf('xYz\x%.2X', n-1), printf('XyZ\x%.2X', n))
4e66689bced6 patch 8.0.0684: old style tests are not nice
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
77 endfor
4e66689bced6 patch 8.0.0684: old style tests are not nice
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
78 for n in range(0x80, 0xBF)
4e66689bced6 patch 8.0.0684: old style tests are not nice
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
79 call EQ(printf('xYz\xc2\x%.2XUvW', n), printf('XyZ\xc2\x%.2XuVw', n))
4e66689bced6 patch 8.0.0684: old style tests are not nice
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
80 endfor
4e66689bced6 patch 8.0.0684: old style tests are not nice
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
81 for n in range(0xC0, 0xFF)
4e66689bced6 patch 8.0.0684: old style tests are not nice
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
82 call LT(printf('xYz\xc2\x%.2XUvW', n), printf('XyZ\xc2\x%.2XuVw', n))
4e66689bced6 patch 8.0.0684: old style tests are not nice
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
83 endfor
15406
63b02fcf1361 patch 8.1.0711: test files still use function!
Bram Moolenaar <Bram@vim.org>
parents: 11603
diff changeset
84 endfunc
11603
4e66689bced6 patch 8.0.0684: old style tests are not nice
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
85
4e66689bced6 patch 8.0.0684: old style tests are not nice
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
86 " test that g~ap changes one paragraph only.
15406
63b02fcf1361 patch 8.1.0711: test files still use function!
Bram Moolenaar <Bram@vim.org>
parents: 11603
diff changeset
87 func Test_gap()
11603
4e66689bced6 patch 8.0.0684: old style tests are not nice
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
88 new
18736
97d534e17874 patch 8.1.2358: tests fail on Cirrus CI for FreeBSD
Bram Moolenaar <Bram@vim.org>
parents: 15607
diff changeset
89 " setup text
97d534e17874 patch 8.1.2358: tests fail on Cirrus CI for FreeBSD
Bram Moolenaar <Bram@vim.org>
parents: 15607
diff changeset
90 call feedkeys("iabcd\<cr>\<cr>defg", "tx")
97d534e17874 patch 8.1.2358: tests fail on Cirrus CI for FreeBSD
Bram Moolenaar <Bram@vim.org>
parents: 15607
diff changeset
91 " modify only first line
97d534e17874 patch 8.1.2358: tests fail on Cirrus CI for FreeBSD
Bram Moolenaar <Bram@vim.org>
parents: 15607
diff changeset
92 call feedkeys("gg0g~ap", "tx")
11603
4e66689bced6 patch 8.0.0684: old style tests are not nice
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
93 call assert_equal(["ABCD", "", "defg"], getline(1,3))
15406
63b02fcf1361 patch 8.1.0711: test files still use function!
Bram Moolenaar <Bram@vim.org>
parents: 11603
diff changeset
94 endfunc
21765
08940efa6b4e patch 8.2.1432: various inconsistencies in test files
Bram Moolenaar <Bram@vim.org>
parents: 18736
diff changeset
95
08940efa6b4e patch 8.2.1432: various inconsistencies in test files
Bram Moolenaar <Bram@vim.org>
parents: 18736
diff changeset
96 " vim: shiftwidth=2 sts=2 expandtab