comparison src/testdir/test87.in @ 5608:ec02e1474bc2 v7.4.151

updated for version 7.4.151 Problem: Python: slices with steps are not supported. Solution: Support slices in Python vim.List. (ZyX)
author Bram Moolenaar <bram@vim.org>
date Tue, 14 Jan 2014 16:36:51 +0100
parents 064e2a080e2e
children 2ace11abcfb5
comparison
equal deleted inserted replaced
5607:98a642716acc 5608:ec02e1474bc2
126 :$put =string(l) 126 :$put =string(l)
127 :let l = [0, 1, 2, 3] 127 :let l = [0, 1, 2, 3]
128 :py3 l=vim.bindeval('l') 128 :py3 l=vim.bindeval('l')
129 :py3 del l[-6:2] 129 :py3 del l[-6:2]
130 :$put =string(l) 130 :$put =string(l)
131 :let l = [0, 1, 2, 3]
132 :py3 l=vim.bindeval('l')
133 :py3 del l[::2]
134 :$put =string(l)
135 :let l = [0, 1, 2, 3]
136 :py3 l=vim.bindeval('l')
137 :py3 del l[3:0:-2]
138 :$put =string(l)
139 :let l = [0, 1, 2, 3]
140 :py3 l=vim.bindeval('l')
141 :py3 del l[2:4:-2]
142 :$put =string(l)
131 :" 143 :"
132 :" Slice assignment to a list 144 :" Slice assignment to a list
133 :let l = [0, 1, 2, 3] 145 :let l = [0, 1, 2, 3]
134 :py3 l=vim.bindeval('l') 146 :py3 l=vim.bindeval('l')
135 :py3 l[0:0]=['a'] 147 :py3 l[0:0]=['a']
159 :py3 l[2:-10]=['g'] 171 :py3 l[2:-10]=['g']
160 :$put =string(l) 172 :$put =string(l)
161 :let l = [] 173 :let l = []
162 :py3 l=vim.bindeval('l') 174 :py3 l=vim.bindeval('l')
163 :py3 l[0:0]=['h'] 175 :py3 l[0:0]=['h']
176 :$put =string(l)
177 :let l = range(8)
178 :py3 l=vim.bindeval('l')
179 :py3 l[2:6:2] = [10, 20]
180 :$put =string(l)
181 :let l = range(8)
182 :py3 l=vim.bindeval('l')
183 :py3 l[6:2:-2] = [10, 20]
184 :$put =string(l)
185 :let l = range(8)
186 :py3 l=vim.bindeval('l')
187 :py3 l[6:2] = ()
188 :$put =string(l)
189 :let l = range(8)
190 :py3 l=vim.bindeval('l')
191 :py3 l[6:2:1] = ()
192 :$put =string(l)
193 :let l = range(8)
194 :py3 l=vim.bindeval('l')
195 :py3 l[2:2:1] = ()
164 :$put =string(l) 196 :$put =string(l)
165 :" 197 :"
166 :" Locked variables 198 :" Locked variables
167 :let l = [0, 1, 2, 3] 199 :let l = [0, 1, 2, 3]
168 :py3 l=vim.bindeval('l') 200 :py3 l=vim.bindeval('l')
360 :py3 trace_main() 392 :py3 trace_main()
361 :py3 sys.settrace(None) 393 :py3 sys.settrace(None)
362 :py3 del traceit 394 :py3 del traceit
363 :py3 del trace_main 395 :py3 del trace_main
364 :$put =string(l) 396 :$put =string(l)
397 :"
398 :" Slice
399 :py3 ll = vim.bindeval('[0, 1, 2, 3, 4, 5]')
400 :py3 l = ll[:4]
401 :$put =string(py3eval('l'))
402 :py3 l = ll[2:]
403 :$put =string(py3eval('l'))
404 :py3 l = ll[:-4]
405 :$put =string(py3eval('l'))
406 :py3 l = ll[-2:]
407 :$put =string(py3eval('l'))
408 :py3 l = ll[2:4]
409 :$put =string(py3eval('l'))
410 :py3 l = ll[4:2]
411 :$put =string(py3eval('l'))
412 :py3 l = ll[-4:-2]
413 :$put =string(py3eval('l'))
414 :py3 l = ll[-2:-4]
415 :$put =string(py3eval('l'))
416 :py3 l = ll[:]
417 :$put =string(py3eval('l'))
418 :py3 l = ll[0:6]
419 :$put =string(py3eval('l'))
420 :py3 l = ll[-10:10]
421 :$put =string(py3eval('l'))
422 :py3 l = ll[4:2:-1]
423 :$put =string(py3eval('l'))
424 :py3 l = ll[::2]
425 :$put =string(py3eval('l'))
426 :py3 l = ll[4:2:1]
427 :$put =string(py3eval('l'))
428 :py3 del l
365 :" 429 :"
366 :" Vars 430 :" Vars
367 :let g:foo = 'bac' 431 :let g:foo = 'bac'
368 :let w:abc3 = 'def' 432 :let w:abc3 = 'def'
369 :let b:baz = 'bar' 433 :let b:baz = 'bar'
857 dl = vim.Dictionary(a=1) 921 dl = vim.Dictionary(a=1)
858 dl.locked = True 922 dl.locked = True
859 l = vim.List() 923 l = vim.List()
860 ll = vim.List('abcE') 924 ll = vim.List('abcE')
861 ll.locked = True 925 ll.locked = True
926 nel = vim.List('abcO')
862 f = vim.Function('string') 927 f = vim.Function('string')
863 fd = vim.Function('F') 928 fd = vim.Function('F')
864 fdel = vim.Function('D') 929 fdel = vim.Function('D')
865 vim.command('delfunction D') 930 vim.command('delfunction D')
866 931
943 def __iter__(self): 1008 def __iter__(self):
944 return self 1009 return self
945 1010
946 def __next__(self): 1011 def __next__(self):
947 raise NotImplementedError('next') 1012 raise NotImplementedError('next')
1013
1014 class FailingIterNextN(object):
1015 def __init__(self, n):
1016 self.n = n
1017
1018 def __iter__(self):
1019 return self
1020
1021 def __next__(self):
1022 if self.n:
1023 self.n -= 1
1024 return 1
1025 else:
1026 raise NotImplementedError('next N')
948 1027
949 class FailingMappingKey(object): 1028 class FailingMappingKey(object):
950 def __getitem__(self, item): 1029 def __getitem__(self, item):
951 raise NotImplementedError('getitem:mappingkey') 1030 raise NotImplementedError('getitem:mappingkey')
952 1031
1048 cb.append(">> DictionaryUpdate") 1127 cb.append(">> DictionaryUpdate")
1049 cb.append(">>> kwargs") 1128 cb.append(">>> kwargs")
1050 cb.append(">>> iter") 1129 cb.append(">>> iter")
1051 ee('d.update(FailingMapping())') 1130 ee('d.update(FailingMapping())')
1052 ee('d.update([FailingIterNext()])') 1131 ee('d.update([FailingIterNext()])')
1132 ee('d.update([FailingIterNextN(1)])')
1053 iter_test('d.update(%s)') 1133 iter_test('d.update(%s)')
1054 convertfrompyobject_test('d.update(%s)') 1134 convertfrompyobject_test('d.update(%s)')
1055 stringtochars_test('d.update(((%s, 0),))') 1135 stringtochars_test('d.update(((%s, 0),))')
1056 convertfrompyobject_test('d.update((("a", %s),))') 1136 convertfrompyobject_test('d.update((("a", %s),))')
1057 cb.append(">> DictionaryPopItem") 1137 cb.append(">> DictionaryPopItem")
1070 ee('ll[1] = 2') 1150 ee('ll[1] = 2')
1071 ee('l[1000] = 3') 1151 ee('l[1000] = 3')
1072 cb.append(">> ListAssSlice") 1152 cb.append(">> ListAssSlice")
1073 ee('ll[1:100] = "abcJ"') 1153 ee('ll[1:100] = "abcJ"')
1074 iter_test('l[:] = %s') 1154 iter_test('l[:] = %s')
1155 ee('nel[1:10:2] = "abcK"')
1156 cb.append(repr(tuple(nel)))
1157 ee('nel[1:10:2] = "a"')
1158 cb.append(repr(tuple(nel)))
1159 ee('nel[1:1:-1] = "a"')
1160 cb.append(repr(tuple(nel)))
1161 ee('nel[:] = FailingIterNextN(2)')
1162 cb.append(repr(tuple(nel)))
1075 convertfrompyobject_test('l[:] = [%s]') 1163 convertfrompyobject_test('l[:] = [%s]')
1076 cb.append(">> ListConcatInPlace") 1164 cb.append(">> ListConcatInPlace")
1077 iter_test('l.extend(%s)') 1165 iter_test('l.extend(%s)')
1078 convertfrompyobject_test('l.extend([%s])') 1166 convertfrompyobject_test('l.extend([%s])')
1079 cb.append(">> ListSetattr") 1167 cb.append(">> ListSetattr")
1151 del d 1239 del d
1152 del ned 1240 del ned
1153 del dl 1241 del dl
1154 del l 1242 del l
1155 del ll 1243 del ll
1244 del nel
1156 del f 1245 del f
1157 del fd 1246 del fd
1158 del fdel 1247 del fdel
1159 del subexpr_test 1248 del subexpr_test
1160 del stringtochars_test 1249 del stringtochars_test
1164 del iter_test 1253 del iter_test
1165 del number_test 1254 del number_test
1166 del FailingTrue 1255 del FailingTrue
1167 del FailingIter 1256 del FailingIter
1168 del FailingIterNext 1257 del FailingIterNext
1258 del FailingIterNextN
1169 del FailingMapping 1259 del FailingMapping
1170 del FailingMappingKey 1260 del FailingMappingKey
1171 del FailingList 1261 del FailingList
1172 del NoArgsCall 1262 del NoArgsCall
1173 del FailingCall 1263 del FailingCall