[Python-checkins] python/dist/src/Lib/test test_deque.py,1.9,1.10

rhettinger at users.sourceforge.net rhettinger at users.sourceforge.net
Wed May 12 16:56:00 EDT 2004


Update of /cvsroot/python/python/dist/src/Lib/test
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv9217/Lib/test

Modified Files:
	test_deque.py 
Log Message:
Make sure "del d[n]" is properly supported.  Was necessary because the
same method that implements __setitem__ also implements __delitem__.
Also, there were several good use cases (removing items from a queue
and implementing Forth style stack ops).



Index: test_deque.py
===================================================================
RCS file: /cvsroot/python/python/dist/src/Lib/test/test_deque.py,v
retrieving revision 1.9
retrieving revision 1.10
diff -C2 -d -r1.9 -r1.10
*** test_deque.py	10 May 2004 14:08:42 -0000	1.9
--- test_deque.py	12 May 2004 20:55:56 -0000	1.10
***************
*** 91,94 ****
--- 91,108 ----
          self.assertEqual(list(d), l)
  
+     def test_delitem(self):
+         n = 500         # O(n**2) test, don't make this too big
+         d = deque(xrange(n))
+         self.assertRaises(IndexError, d.__delitem__, -n-1)
+         self.assertRaises(IndexError, d.__delitem__, n)
+         for i in xrange(n):
+             self.assertEqual(len(d), n-i)
+             j = random.randrange(-len(d), len(d))
+             val = d[j]
+             self.assert_(val in d)
+             del d[j]
+             self.assert_(val not in d)
+         self.assertEqual(len(d), 0)
+ 
      def test_rotate(self):
          s = tuple('abcde')
***************
*** 477,483 ****
  
  
- 
  >>> def delete_nth(d, n):
- ...     "del d[n]"
  ...     d.rotate(-n)
  ...     d.popleft()
--- 491,495 ----
***************
*** 525,529 ****
  [[[['a', 'b'], ['c', 'd']], [['e', 'f'], ['g', 'h']]]]
  
- 
  """
  
--- 537,540 ----




More information about the Python-checkins mailing list