Mercurial > vim
comparison src/testdir/test_functions.vim @ 10743:8779b4b2e958 v8.0.0261
patch 8.0.0261: not enough test coverage for eval functions
commit https://github.com/vim/vim/commit/24c2e48ef8b8b9053fa18039e6f6118337f908f8
Author: Bram Moolenaar <Bram@vim.org>
Date: Sun Jan 29 15:45:12 2017 +0100
patch 8.0.0261: not enough test coverage for eval functions
Problem: Not enough test coverage for eval functions.
Solution: Add more tests. (Dominique Pelle, closes https://github.com/vim/vim/issues/1420)
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Sun, 29 Jan 2017 16:00:04 +0100 |
parents | 056e32b99e93 |
children | 09926123316b |
comparison
equal
deleted
inserted
replaced
10742:3b87b3cadc7c | 10743:8779b4b2e958 |
---|---|
1 " Tests for various functions. | 1 " Tests for various functions. |
2 | |
3 func Test_empty() | |
4 call assert_equal(1, empty('')) | |
5 call assert_equal(0, empty('a')) | |
6 | |
7 call assert_equal(1, empty(0)) | |
8 call assert_equal(1, empty(-0)) | |
9 call assert_equal(0, empty(1)) | |
10 call assert_equal(0, empty(-1)) | |
11 | |
12 call assert_equal(1, empty(0.0)) | |
13 call assert_equal(1, empty(-0.0)) | |
14 call assert_equal(0, empty(1.0)) | |
15 call assert_equal(0, empty(-1.0)) | |
16 call assert_equal(0, empty(1.0/0.0)) | |
17 call assert_equal(0, empty(0.0/0.0)) | |
18 | |
19 call assert_equal(1, empty([])) | |
20 call assert_equal(0, empty(['a'])) | |
21 | |
22 call assert_equal(1, empty({})) | |
23 call assert_equal(0, empty({'a':1})) | |
24 | |
25 call assert_equal(1, empty(v:null)) | |
26 call assert_equal(1, empty(v:none)) | |
27 call assert_equal(1, empty(v:false)) | |
28 call assert_equal(0, empty(v:true)) | |
29 | |
30 call assert_equal(0, empty(function('Test_empty'))) | |
31 endfunc | |
32 | |
33 func Test_len() | |
34 call assert_equal(1, len(0)) | |
35 call assert_equal(2, len(12)) | |
36 | |
37 call assert_equal(0, len('')) | |
38 call assert_equal(2, len('ab')) | |
39 | |
40 call assert_equal(0, len([])) | |
41 call assert_equal(2, len([2, 1])) | |
42 | |
43 call assert_equal(0, len({})) | |
44 call assert_equal(2, len({'a': 1, 'b': 2})) | |
45 | |
46 call assert_fails('call len(v:none)', 'E701:') | |
47 call assert_fails('call len({-> 0})', 'E701:') | |
48 endfunc | |
49 | |
50 func Test_max() | |
51 call assert_equal(0, max([])) | |
52 call assert_equal(2, max([2])) | |
53 call assert_equal(2, max([1, 2])) | |
54 call assert_equal(2, max([1, 2, v:null])) | |
55 | |
56 call assert_equal(0, max({})) | |
57 call assert_equal(2, max({'a':1, 'b':2})) | |
58 | |
59 call assert_fails('call max(1)', 'E712:') | |
60 call assert_fails('call max(v:none)', 'E712:') | |
61 endfunc | |
62 | |
63 func Test_min() | |
64 call assert_equal(0, min([])) | |
65 call assert_equal(2, min([2])) | |
66 call assert_equal(1, min([1, 2])) | |
67 call assert_equal(0, min([1, 2, v:null])) | |
68 | |
69 call assert_equal(0, min({})) | |
70 call assert_equal(1, min({'a':1, 'b':2})) | |
71 | |
72 call assert_fails('call min(1)', 'E712:') | |
73 call assert_fails('call min(v:none)', 'E712:') | |
74 endfunc | |
2 | 75 |
3 func Test_str2nr() | 76 func Test_str2nr() |
4 call assert_equal(0, str2nr('')) | 77 call assert_equal(0, str2nr('')) |
5 call assert_equal(1, str2nr('1')) | 78 call assert_equal(1, str2nr('1')) |
6 call assert_equal(1, str2nr(' 1 ')) | 79 call assert_equal(1, str2nr(' 1 ')) |
13 call assert_equal(-1, str2nr('- 1')) | 86 call assert_equal(-1, str2nr('- 1')) |
14 call assert_equal(-1, str2nr(' - 1 ')) | 87 call assert_equal(-1, str2nr(' - 1 ')) |
15 | 88 |
16 call assert_equal(123456789, str2nr('123456789')) | 89 call assert_equal(123456789, str2nr('123456789')) |
17 call assert_equal(-123456789, str2nr('-123456789')) | 90 call assert_equal(-123456789, str2nr('-123456789')) |
91 | |
92 call assert_equal(5, str2nr('101', 2)) | |
93 call assert_equal(5, str2nr('0b101', 2)) | |
94 call assert_equal(5, str2nr('0B101', 2)) | |
95 call assert_equal(-5, str2nr('-101', 2)) | |
96 call assert_equal(-5, str2nr('-0b101', 2)) | |
97 call assert_equal(-5, str2nr('-0B101', 2)) | |
98 | |
99 call assert_equal(65, str2nr('101', 8)) | |
100 call assert_equal(65, str2nr('0101', 8)) | |
101 call assert_equal(-65, str2nr('-101', 8)) | |
102 call assert_equal(-65, str2nr('-0101', 8)) | |
103 | |
104 call assert_equal(11259375, str2nr('abcdef', 16)) | |
105 call assert_equal(11259375, str2nr('ABCDEF', 16)) | |
106 call assert_equal(-11259375, str2nr('-ABCDEF', 16)) | |
107 call assert_equal(11259375, str2nr('0xabcdef', 16)) | |
108 call assert_equal(11259375, str2nr('0Xabcdef', 16)) | |
109 call assert_equal(11259375, str2nr('0XABCDEF', 16)) | |
110 call assert_equal(-11259375, str2nr('-0xABCDEF', 16)) | |
111 | |
112 call assert_equal(0, str2nr('0x10')) | |
113 call assert_equal(0, str2nr('0b10')) | |
114 call assert_equal(1, str2nr('12', 2)) | |
115 call assert_equal(1, str2nr('18', 8)) | |
116 call assert_equal(1, str2nr('1g', 16)) | |
117 | |
118 call assert_equal(0, str2nr(v:null)) | |
119 call assert_equal(0, str2nr(v:none)) | |
120 | |
121 call assert_fails('call str2nr([])', 'E730:') | |
122 call assert_fails('call str2nr({->2})', 'E729:') | |
123 call assert_fails('call str2nr(1.2)', 'E806:') | |
124 call assert_fails('call str2nr(10, [])', 'E474:') | |
125 endfunc | |
126 | |
127 func Test_strftime() | |
128 if !exists('*strftime') | |
129 return | |
130 endif | |
131 " Format of strftime() depends on system. We assume | |
132 " that basic formats tested here are available and | |
133 " identical on all systems which support strftime(). | |
134 " | |
135 " The 2nd parameter of strftime() is a local time, so the output day | |
136 " of strftime() can be 17 or 18, depending on timezone. | |
137 call assert_match('^2017-01-1[78]$', strftime('%Y-%m-%d', 1484695512)) | |
138 " | |
139 call assert_match('^\d\d\d\d-\(0\d\|1[012]\)-\([012]\d\|3[01]\) \([01]\d\|2[0-3]\):[0-5]\d:\([0-5]\d\|60\)$', strftime('%Y-%m-%d %H:%M:%S')) | |
140 | |
141 call assert_fails('call strftime([])', 'E730:') | |
142 call assert_fails('call strftime("%Y", [])', 'E745:') | |
143 endfunc | |
144 | |
145 func Test_simplify() | |
146 call assert_equal('', simplify('')) | |
147 call assert_equal('/', simplify('/')) | |
148 call assert_equal('/', simplify('/.')) | |
149 call assert_equal('/', simplify('/..')) | |
150 call assert_equal('/...', simplify('/...')) | |
151 call assert_equal('./dir/file', simplify('./dir/file')) | |
152 call assert_equal('./dir/file', simplify('.///dir//file')) | |
153 call assert_equal('./dir/file', simplify('./dir/./file')) | |
154 call assert_equal('./file', simplify('./dir/../file')) | |
155 call assert_equal('../dir/file', simplify('dir/../../dir/file')) | |
156 call assert_equal('./file', simplify('dir/.././file')) | |
157 | |
158 call assert_fails('call simplify({->0})', 'E729:') | |
159 call assert_fails('call simplify([])', 'E730:') | |
160 call assert_fails('call simplify({})', 'E731:') | |
161 call assert_fails('call simplify(1.2)', 'E806:') | |
18 endfunc | 162 endfunc |
19 | 163 |
20 func Test_tolower() | 164 func Test_tolower() |
21 call assert_equal("", tolower("")) | 165 call assert_equal("", tolower("")) |
22 | 166 |
155 call assert_equal("WŴẀẂẄẆ", toupper("WŴẀẂẄẆ")) | 299 call assert_equal("WŴẀẂẄẆ", toupper("WŴẀẂẄẆ")) |
156 call assert_equal("XẊẌ", toupper("XẊẌ")) | 300 call assert_equal("XẊẌ", toupper("XẊẌ")) |
157 call assert_equal("YÝŶŸẎỲỶỸ", toupper("YÝŶŸẎỲỶỸ")) | 301 call assert_equal("YÝŶŸẎỲỶỸ", toupper("YÝŶŸẎỲỶỸ")) |
158 call assert_equal("ZŹŻŽƵẐẔ", toupper("ZŹŻŽƵẐẔ")) | 302 call assert_equal("ZŹŻŽƵẐẔ", toupper("ZŹŻŽƵẐẔ")) |
159 | 303 |
160 call assert_equal("ⱥ ⱦ", tolower("Ⱥ Ⱦ")) | 304 call assert_equal("Ⱥ Ⱦ", toupper("ⱥ ⱦ")) |
161 endfunc | 305 endfunc |
162 | 306 |
163 | 307 |