Kaydet (Commit) f5fa0fc6 authored tarafından Tim Peters's avatar Tim Peters

test_userlist.py:

    Added new test for new __contains__ method.
    Extensive editing to get rid of asserts.
üst 7b393fc0
# Check every path through every method of UserList # Check every path through every method of UserList
from UserList import UserList from UserList import UserList
from test_support import TestFailed
# Use check instead of assert so -O doesn't render the
# test useless.
def check(predicate, msg):
if not predicate:
raise TestFailed(msg + " failed")
l0 = [] l0 = []
l1 = [0] l1 = [0]
...@@ -31,9 +38,9 @@ vv = UserList("this is also a sequence") ...@@ -31,9 +38,9 @@ vv = UserList("this is also a sequence")
# Test __repr__ # Test __repr__
assert str(u0) == str(l0) check(str(u0) == str(l0), "str(u0) == str(l0)")
assert repr(u1) == repr(l1) check(repr(u1) == repr(l1), "repr(u1) == repr(l1)")
assert `u2` == `l2` check(`u2` == `l2`, "`u2` == `l2`")
# Test __cmp__ and __len__ # Test __cmp__ and __len__
...@@ -46,12 +53,13 @@ def mycmp(a, b): ...@@ -46,12 +53,13 @@ def mycmp(a, b):
all = [l0, l1, l2, u, u0, u1, u2, uu, uu0, uu1, uu2] all = [l0, l1, l2, u, u0, u1, u2, uu, uu0, uu1, uu2]
for a in all: for a in all:
for b in all: for b in all:
assert mycmp(a, b) == mycmp(len(a), len(b)) check(mycmp(a, b) == mycmp(len(a), len(b)),
"mycmp(a, b) == mycmp(len(a), len(b))")
# Test __getitem__ # Test __getitem__
for i in range(len(u2)): for i in range(len(u2)):
assert u2[i] == i check(u2[i] == i, "u2[i] == i")
# Test __setitem__ # Test __setitem__
...@@ -62,7 +70,7 @@ try: ...@@ -62,7 +70,7 @@ try:
except IndexError: except IndexError:
pass pass
else: else:
assert 0, "uu2[2] shouldn't be assignable" raise TestFailed("uu2[2] shouldn't be assignable")
# Test __delitem__ # Test __delitem__
...@@ -73,115 +81,120 @@ try: ...@@ -73,115 +81,120 @@ try:
except IndexError: except IndexError:
pass pass
else: else:
assert 0, "uu2[0] shouldn't be deletable" raise TestFailed("uu2[0] shouldn't be deletable")
# Test __getslice__ # Test __getslice__
for i in range(-3, 4): for i in range(-3, 4):
assert u2[:i] == l2[:i] check(u2[:i] == l2[:i], "u2[:i] == l2[:i]")
assert u2[i:] == l2[i:] check(u2[i:] == l2[i:], "u2[i:] == l2[i:]")
for j in range(-3, 4): for j in range(-3, 4):
assert u2[i:j] == l2[i:j] check(u2[i:j] == l2[i:j], "u2[i:j] == l2[i:j]")
# Test __setslice__ # Test __setslice__
for i in range(-3, 4): for i in range(-3, 4):
u2[:i] = l2[:i] u2[:i] = l2[:i]
assert u2 == l2 check(u2 == l2, "u2 == l2")
u2[i:] = l2[i:] u2[i:] = l2[i:]
assert u2 == l2 check(u2 == l2, "u2 == l2")
for j in range(-3, 4): for j in range(-3, 4):
u2[i:j] = l2[i:j] u2[i:j] = l2[i:j]
assert u2 == l2 check(u2 == l2, "u2 == l2")
uu2 = u2[:] uu2 = u2[:]
uu2[:0] = [-2, -1] uu2[:0] = [-2, -1]
assert uu2 == [-2, -1, 0, 1] check(uu2 == [-2, -1, 0, 1], "uu2 == [-2, -1, 0, 1]")
uu2[0:] = [] uu2[0:] = []
assert uu2 == [] check(uu2 == [], "uu2 == []")
# Test __contains__
for i in u2:
check(i in u2, "i in u2")
for i in min(u2)-1, max(u2)+1:
check(i not in u2, "i not in u2")
# Test __delslice__ # Test __delslice__
uu2 = u2[:] uu2 = u2[:]
del uu2[1:2] del uu2[1:2]
del uu2[0:1] del uu2[0:1]
assert uu2 == [] check(uu2 == [], "uu2 == []")
uu2 = u2[:] uu2 = u2[:]
del uu2[1:] del uu2[1:]
del uu2[:1] del uu2[:1]
assert uu2 == [] check(uu2 == [], "uu2 == []")
# Test __add__, __radd__, __mul__ and __rmul__ # Test __add__, __radd__, __mul__ and __rmul__
assert u1 + [] == [] + u1 == u1 check(u1 + [] == [] + u1 == u1, "u1 + [] == [] + u1 == u1")
assert u1 + [1] == u2 check(u1 + [1] == u2, "u1 + [1] == u2")
assert [-1] + u1 == [-1, 0] check([-1] + u1 == [-1, 0], "[-1] + u1 == [-1, 0]")
assert u2 == u2*1 == 1*u2 check(u2 == u2*1 == 1*u2, "u2 == u2*1 == 1*u2")
assert u2+u2 == u2*2 == 2*u2 check(u2+u2 == u2*2 == 2*u2, "u2+u2 == u2*2 == 2*u2")
assert u2+u2+u2 == u2*3 == 3*u2 check(u2+u2+u2 == u2*3 == 3*u2, "u2+u2+u2 == u2*3 == 3*u2")
# Test append # Test append
u = u1[:] u = u1[:]
u.append(1) u.append(1)
assert u == u2 check(u == u2, "u == u2")
# Test insert # Test insert
u = u2[:] u = u2[:]
u.insert(0, -1) u.insert(0, -1)
assert u == [-1, 0, 1] check(u == [-1, 0, 1], "u == [-1, 0, 1]")
# Test pop # Test pop
u = [-1] + u2 u = [-1] + u2
u.pop() u.pop()
assert u == [-1, 0] check(u == [-1, 0], "u == [-1, 0]")
u.pop(0) u.pop(0)
assert u == [0] check(u == [0], "u == [0]")
# Test remove # Test remove
u = u2[:] u = u2[:]
u.remove(1) u.remove(1)
assert u == u1 check(u == u1, "u == u1")
# Test count # Test count
u = u2*3 u = u2*3
assert u.count(0) == 3 check(u.count(0) == 3, "u.count(0) == 3")
assert u.count(1) == 3 check(u.count(1) == 3, "u.count(1) == 3")
assert u.count(2) == 0 check(u.count(2) == 0, "u.count(2) == 0")
# Test index # Test index
assert u2.index(0) == 0 check(u2.index(0) == 0, "u2.index(0) == 0")
assert u2.index(1) == 1 check(u2.index(1) == 1, "u2.index(1) == 1")
try: try:
u2.index(2) u2.index(2)
except ValueError: except ValueError:
pass pass
else: else:
assert 0, "expected ValueError" raise TestFailed("expected ValueError")
# Test reverse # Test reverse
u = u2[:] u = u2[:]
u.reverse() u.reverse()
assert u == [1, 0] check(u == [1, 0], "u == [1, 0]")
u.reverse() u.reverse()
assert u == u2 check(u == u2, "u == u2")
# Test sort # Test sort
u = UserList([1, 0]) u = UserList([1, 0])
u.sort() u.sort()
assert u == u2 check(u == u2, "u == u2")
# Test extend # Test extend
u = u1[:] u = u1[:]
u.extend(u2) u.extend(u2)
assert u == u1 + u2 check(u == u1 + u2, "u == u1 + u2")
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment