comparison src/testdir/test86.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
133 :$put =string(l) 133 :$put =string(l)
134 :let l = [0, 1, 2, 3] 134 :let l = [0, 1, 2, 3]
135 :py l=vim.bindeval('l') 135 :py l=vim.bindeval('l')
136 :py del l[-6:2] 136 :py del l[-6:2]
137 :$put =string(l) 137 :$put =string(l)
138 :let l = [0, 1, 2, 3]
139 :py l=vim.bindeval('l')
140 :py del l[::2]
141 :$put =string(l)
142 :let l = [0, 1, 2, 3]
143 :py l=vim.bindeval('l')
144 :py del l[3:0:-2]
145 :$put =string(l)
146 :let l = [0, 1, 2, 3]
147 :py l=vim.bindeval('l')
148 :py del l[2:4:-2]
149 :$put =string(l)
138 :" 150 :"
139 :" Slice assignment to a list 151 :" Slice assignment to a list
140 :let l = [0, 1, 2, 3] 152 :let l = [0, 1, 2, 3]
141 :py l=vim.bindeval('l') 153 :py l=vim.bindeval('l')
142 :py l[0:0]=['a'] 154 :py l[0:0]=['a']
166 :py l[2:-10]=['g'] 178 :py l[2:-10]=['g']
167 :$put =string(l) 179 :$put =string(l)
168 :let l = [] 180 :let l = []
169 :py l=vim.bindeval('l') 181 :py l=vim.bindeval('l')
170 :py l[0:0]=['h'] 182 :py l[0:0]=['h']
183 :$put =string(l)
184 :let l = range(8)
185 :py l=vim.bindeval('l')
186 :py l[2:6:2] = [10, 20]
187 :$put =string(l)
188 :let l = range(8)
189 :py l=vim.bindeval('l')
190 :py l[6:2:-2] = [10, 20]
191 :$put =string(l)
192 :let l = range(8)
193 :py l=vim.bindeval('l')
194 :py l[6:2] = ()
195 :$put =string(l)
196 :let l = range(8)
197 :py l=vim.bindeval('l')
198 :py l[6:2:1] = ()
199 :$put =string(l)
200 :let l = range(8)
201 :py l=vim.bindeval('l')
202 :py l[2:2:1] = ()
171 :$put =string(l) 203 :$put =string(l)
172 :" 204 :"
173 :" Locked variables 205 :" Locked variables
174 :let l = [0, 1, 2, 3] 206 :let l = [0, 1, 2, 3]
175 :py l=vim.bindeval('l') 207 :py l=vim.bindeval('l')
388 :$put =string(pyeval('l')) 420 :$put =string(pyeval('l'))
389 :py l = ll[0:6] 421 :py l = ll[0:6]
390 :$put =string(pyeval('l')) 422 :$put =string(pyeval('l'))
391 :py l = ll[-10:10] 423 :py l = ll[-10:10]
392 :$put =string(pyeval('l')) 424 :$put =string(pyeval('l'))
425 :py l = ll[4:2:-1]
426 :$put =string(pyeval('l'))
427 :py l = ll[::2]
428 :$put =string(pyeval('l'))
429 :py l = ll[4:2:1]
430 :$put =string(pyeval('l'))
431 :py del l
393 :" 432 :"
394 :" Vars 433 :" Vars
395 :let g:foo = 'bac' 434 :let g:foo = 'bac'
396 :let w:abc3 = 'def' 435 :let w:abc3 = 'def'
397 :let b:baz = 'bar' 436 :let b:baz = 'bar'
905 dl = vim.Dictionary(a=1) 944 dl = vim.Dictionary(a=1)
906 dl.locked = True 945 dl.locked = True
907 l = vim.List() 946 l = vim.List()
908 ll = vim.List('abcE') 947 ll = vim.List('abcE')
909 ll.locked = True 948 ll.locked = True
949 nel = vim.List('abcO')
910 f = vim.Function('string') 950 f = vim.Function('string')
911 fd = vim.Function('F') 951 fd = vim.Function('F')
912 fdel = vim.Function('D') 952 fdel = vim.Function('D')
913 vim.command('delfunction D') 953 vim.command('delfunction D')
914 954
991 def __iter__(self): 1031 def __iter__(self):
992 return self 1032 return self
993 1033
994 def next(self): 1034 def next(self):
995 raise NotImplementedError('next') 1035 raise NotImplementedError('next')
1036
1037 class FailingIterNextN(object):
1038 def __init__(self, n):
1039 self.n = n
1040
1041 def __iter__(self):
1042 return self
1043
1044 def next(self):
1045 if self.n:
1046 self.n -= 1
1047 return 1
1048 else:
1049 raise NotImplementedError('next N')
996 1050
997 class FailingMappingKey(object): 1051 class FailingMappingKey(object):
998 def __getitem__(self, item): 1052 def __getitem__(self, item):
999 raise NotImplementedError('getitem:mappingkey') 1053 raise NotImplementedError('getitem:mappingkey')
1000 1054
1096 cb.append(">> DictionaryUpdate") 1150 cb.append(">> DictionaryUpdate")
1097 cb.append(">>> kwargs") 1151 cb.append(">>> kwargs")
1098 cb.append(">>> iter") 1152 cb.append(">>> iter")
1099 ee('d.update(FailingMapping())') 1153 ee('d.update(FailingMapping())')
1100 ee('d.update([FailingIterNext()])') 1154 ee('d.update([FailingIterNext()])')
1155 ee('d.update([FailingIterNextN(1)])')
1101 iter_test('d.update(%s)') 1156 iter_test('d.update(%s)')
1102 convertfrompyobject_test('d.update(%s)') 1157 convertfrompyobject_test('d.update(%s)')
1103 stringtochars_test('d.update(((%s, 0),))') 1158 stringtochars_test('d.update(((%s, 0),))')
1104 convertfrompyobject_test('d.update((("a", %s),))') 1159 convertfrompyobject_test('d.update((("a", %s),))')
1105 cb.append(">> DictionaryPopItem") 1160 cb.append(">> DictionaryPopItem")
1118 ee('ll[1] = 2') 1173 ee('ll[1] = 2')
1119 ee('l[1000] = 3') 1174 ee('l[1000] = 3')
1120 cb.append(">> ListAssSlice") 1175 cb.append(">> ListAssSlice")
1121 ee('ll[1:100] = "abcJ"') 1176 ee('ll[1:100] = "abcJ"')
1122 iter_test('l[:] = %s') 1177 iter_test('l[:] = %s')
1178 ee('nel[1:10:2] = "abcK"')
1179 cb.append(repr(tuple(nel)))
1180 ee('nel[1:10:2] = "a"')
1181 cb.append(repr(tuple(nel)))
1182 ee('nel[1:1:-1] = "a"')
1183 cb.append(repr(tuple(nel)))
1184 ee('nel[:] = FailingIterNextN(2)')
1185 cb.append(repr(tuple(nel)))
1123 convertfrompyobject_test('l[:] = [%s]') 1186 convertfrompyobject_test('l[:] = [%s]')
1124 cb.append(">> ListConcatInPlace") 1187 cb.append(">> ListConcatInPlace")
1125 iter_test('l.extend(%s)') 1188 iter_test('l.extend(%s)')
1126 convertfrompyobject_test('l.extend([%s])') 1189 convertfrompyobject_test('l.extend([%s])')
1127 cb.append(">> ListSetattr") 1190 cb.append(">> ListSetattr")
1199 del d 1262 del d
1200 del ned 1263 del ned
1201 del dl 1264 del dl
1202 del l 1265 del l
1203 del ll 1266 del ll
1267 del nel
1204 del f 1268 del f
1205 del fd 1269 del fd
1206 del fdel 1270 del fdel
1207 del subexpr_test 1271 del subexpr_test
1208 del stringtochars_test 1272 del stringtochars_test
1212 del iter_test 1276 del iter_test
1213 del number_test 1277 del number_test
1214 del FailingTrue 1278 del FailingTrue
1215 del FailingIter 1279 del FailingIter
1216 del FailingIterNext 1280 del FailingIterNext
1281 del FailingIterNextN
1217 del FailingMapping 1282 del FailingMapping
1218 del FailingMappingKey 1283 del FailingMappingKey
1219 del FailingList 1284 del FailingList
1220 del NoArgsCall 1285 del NoArgsCall
1221 del FailingCall 1286 del FailingCall