[pypy-svn] r17295 - in pypy/dist/pypy/rpython: . test

tismer at codespeak.net tismer at codespeak.net
Tue Sep 6 18:06:21 CEST 2005


Author: tismer
Date: Tue Sep  6 18:06:18 2005
New Revision: 17295

Modified:
   pypy/dist/pypy/rpython/rlist.py
   pypy/dist/pypy/rpython/test/test_rlist.py
Log:
fixed some bad bugs in ll_insert,
added more tests

Modified: pypy/dist/pypy/rpython/rlist.py
==============================================================================
--- pypy/dist/pypy/rpython/rlist.py	(original)
+++ pypy/dist/pypy/rpython/rlist.py	Tue Sep  6 18:06:18 2005
@@ -394,8 +394,8 @@
     i = length
     items = l.items
     i1 = i+1
-    while i > 0:
-        items[i] = items[i1]
+    while i >= 0:
+        items[i1] = items[i]
         i1 = i
         i -= 1
     items[0] = newitem
@@ -406,11 +406,11 @@
     items = l.items
     i = length
     i1 = i+1
-    while i > index:
-        items[i] = items[i1]
+    while i >= index:
+        items[i1] = items[i]
         i1 = i
         i -= 1
-    items[i] = newitem
+    items[index] = newitem
 
 def ll_insert(l, index, newitem):
     if index < 0:

Modified: pypy/dist/pypy/rpython/test/test_rlist.py
==============================================================================
--- pypy/dist/pypy/rpython/test/test_rlist.py	(original)
+++ pypy/dist/pypy/rpython/test/test_rlist.py	Tue Sep  6 18:06:18 2005
@@ -394,3 +394,20 @@
     assert res._obj.value == 3
     res = interpret(fn, [-2])
     assert res._obj.value == "oups"
+
+def test_list_basic_ops():
+    def list_basic_ops(i=int, j=int):
+        l = [1,2,3]
+        l.insert(0, 42)
+        del l[1]
+        l.append(i)
+        listlen = len(l)
+        l.extend(l) 
+        del l[listlen:]
+        l += [5,6] 
+        l[1] = i
+        return l[j]
+    for i in range(6): 
+        for j in range(6):
+            res = interpret(list_basic_ops, [i, j])
+            assert res == list_basic_ops(i, j)



More information about the Pypy-commit mailing list