mirror of
https://github.com/Mikaela/Limnoria.git
synced 2025-02-18 14:40:51 +01:00
Added __getitem__ and __setitem__ tests, as well as an IterableMap test.
This commit is contained in:
parent
d6059ac71e
commit
cf5af96ad0
@ -29,9 +29,33 @@
|
|||||||
# POSSIBILITY OF SUCH DAMAGE.
|
# POSSIBILITY OF SUCH DAMAGE.
|
||||||
###
|
###
|
||||||
|
|
||||||
|
from __future__ import generators
|
||||||
|
|
||||||
from test import *
|
from test import *
|
||||||
|
|
||||||
class QueueTest(unittest.TestCase):
|
class QueueTest(unittest.TestCase):
|
||||||
|
def testGetitem(self):
|
||||||
|
q = queue()
|
||||||
|
n = 10
|
||||||
|
for i in xrange(n):
|
||||||
|
q.enqueue(i)
|
||||||
|
for i in xrange(n):
|
||||||
|
self.assertEqual(q[i], i)
|
||||||
|
for i in xrange(n, 0, -1):
|
||||||
|
self.assertEqual(q[-i], n-i)
|
||||||
|
self.assertRaises(IndexError, q.__getitem__, -(n+1))
|
||||||
|
self.assertRaises(IndexError, q.__getitem__, n)
|
||||||
|
|
||||||
|
|
||||||
|
def testSetitem(self):
|
||||||
|
q1 = queue()
|
||||||
|
for i in xrange(10):
|
||||||
|
q1.enqueue(i)
|
||||||
|
q2 = eval(repr(q1))
|
||||||
|
for (i, elt) in enumerate(q2):
|
||||||
|
q2[i] = elt*2
|
||||||
|
self.assertEqual([x*2 for x in q1], list(q2))
|
||||||
|
|
||||||
def testNonzero(self):
|
def testNonzero(self):
|
||||||
q = queue()
|
q = queue()
|
||||||
self.failIf(q, 'queue not zero after initialization')
|
self.failIf(q, 'queue not zero after initialization')
|
||||||
@ -80,8 +104,8 @@ class QueueTest(unittest.TestCase):
|
|||||||
q.enqueue(1)
|
q.enqueue(1)
|
||||||
q.enqueue(2)
|
q.enqueue(2)
|
||||||
q.enqueue(3)
|
q.enqueue(3)
|
||||||
self.assertEqual(queue(1, 2, 3), q, 'init not equivalent to enqueues')
|
self.assertEqual(queue((1, 2, 3)),q, 'init not equivalent to enqueues')
|
||||||
q = queue(1, 2, 3)
|
q = queue((1, 2, 3))
|
||||||
self.assertEqual(q.dequeue(), 1, 'values not returned in proper order')
|
self.assertEqual(q.dequeue(), 1, 'values not returned in proper order')
|
||||||
self.assertEqual(q.dequeue(), 2, 'values not returned in proper order')
|
self.assertEqual(q.dequeue(), 2, 'values not returned in proper order')
|
||||||
self.assertEqual(q.dequeue(), 3, 'values not returned in proper order')
|
self.assertEqual(q.dequeue(), 3, 'values not returned in proper order')
|
||||||
@ -145,7 +169,7 @@ class QueueTest(unittest.TestCase):
|
|||||||
self.failIf(2 in q, 'dequeued element in q')
|
self.failIf(2 in q, 'dequeued element in q')
|
||||||
|
|
||||||
def testIter(self):
|
def testIter(self):
|
||||||
q1 = queue(1, 2, 3)
|
q1 = queue((1, 2, 3))
|
||||||
q2 = queue()
|
q2 = queue()
|
||||||
for i in q1:
|
for i in q1:
|
||||||
q2.enqueue(i)
|
q2.enqueue(i)
|
||||||
@ -190,3 +214,28 @@ class FunctionsTest(unittest.TestCase):
|
|||||||
self.assertEqual(list(itersplit([], lambda x: x)), [])
|
self.assertEqual(list(itersplit([], lambda x: x)), [])
|
||||||
self.assertEqual(list(itersplit(s, lambda c: c.isspace())),
|
self.assertEqual(list(itersplit(s, lambda c: c.isspace())),
|
||||||
map(list, s.split()))
|
map(list, s.split()))
|
||||||
|
|
||||||
|
def testIterableMap(self):
|
||||||
|
class alist(IterableMap):
|
||||||
|
def __init__(self):
|
||||||
|
self.L = []
|
||||||
|
|
||||||
|
def __setitem__(self, key, value):
|
||||||
|
self.L.append((key, value))
|
||||||
|
|
||||||
|
def iteritems(self):
|
||||||
|
for (k, v) in self.L:
|
||||||
|
yield (k, v)
|
||||||
|
AL = alist()
|
||||||
|
self.failIf(AL)
|
||||||
|
AL[1] = 2
|
||||||
|
AL[2] = 3
|
||||||
|
AL[3] = 4
|
||||||
|
self.failUnless(AL)
|
||||||
|
self.assertEqual(AL.items(), [(1, 2), (2, 3), (3, 4)])
|
||||||
|
self.assertEqual(list(AL.iteritems()), [(1, 2), (2, 3), (3, 4)])
|
||||||
|
self.assertEqual(AL.keys(), [1, 2, 3])
|
||||||
|
self.assertEqual(list(AL.iterkeys()), [1, 2, 3])
|
||||||
|
self.assertEqual(AL.values(), [2, 3, 4])
|
||||||
|
self.assertEqual(list(AL.itervalues()), [2, 3, 4])
|
||||||
|
self.assertEqual(len(AL), 3)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user