MCPcopy Index your code
hub / github.com/python/cpython / test_rotate

Method test_rotate

Lib/test/test_deque.py:423–474  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

421 self.assertRaises(TypeError, d.reverse, 1) # Arity is zero
422
423 def test_rotate(self):
424 s = tuple('abcde')
425 n = len(s)
426
427 d = deque(s)
428 d.rotate(1) # verify rot(1)
429 self.assertEqual(''.join(d), 'eabcd')
430
431 d = deque(s)
432 d.rotate(-1) # verify rot(-1)
433 self.assertEqual(''.join(d), 'bcdea')
434 d.rotate() # check default to 1
435 self.assertEqual(tuple(d), s)
436
437 for i in range(n*3):
438 d = deque(s)
439 e = deque(d)
440 d.rotate(i) # check vs. rot(1) n times
441 for j in range(i):
442 e.rotate(1)
443 self.assertEqual(tuple(d), tuple(e))
444 d.rotate(-i) # check that it works in reverse
445 self.assertEqual(tuple(d), s)
446 e.rotate(n-i) # check that it wraps forward
447 self.assertEqual(tuple(e), s)
448
449 for i in range(n*3):
450 d = deque(s)
451 e = deque(d)
452 d.rotate(-i)
453 for j in range(i):
454 e.rotate(-1) # check vs. rot(-1) n times
455 self.assertEqual(tuple(d), tuple(e))
456 d.rotate(i) # check that it works in reverse
457 self.assertEqual(tuple(d), s)
458 e.rotate(i-n) # check that it wraps backaround
459 self.assertEqual(tuple(e), s)
460
461 d = deque(s)
462 e = deque(s)
463 e.rotate(BIG+17) # verify on long series of rotates
464 dr = d.rotate
465 for i in range(BIG+17):
466 dr()
467 self.assertEqual(tuple(d), tuple(e))
468
469 self.assertRaises(TypeError, d.rotate, 'x') # Wrong arg type
470 self.assertRaises(TypeError, d.rotate, 1, 10) # Too many args
471
472 d = deque()
473 d.rotate() # rotate an empty deque
474 self.assertEqual(d, deque())
475
476 def test_len(self):
477 d = deque('ab')

Callers

nothing calls this directly

Calls 5

drFunction · 0.50
rotateMethod · 0.45
assertEqualMethod · 0.45
joinMethod · 0.45
assertRaisesMethod · 0.45

Tested by

no test coverage detected