deque2.py 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. # Tests for deques with "check overflow" flag and other extensions
  2. # wrt to CPython.
  3. try:
  4. try:
  5. from ucollections import deque
  6. except ImportError:
  7. from collections import deque
  8. except ImportError:
  9. print("SKIP")
  10. raise SystemExit
  11. # Initial sequence is not supported
  12. try:
  13. deque([1, 2, 3], 10)
  14. except ValueError:
  15. print("ValueError")
  16. # Not even empty list, only empty tuple
  17. try:
  18. deque([], 10)
  19. except ValueError:
  20. print("ValueError")
  21. # Only fixed-size deques are supported, so length arg is mandatory
  22. try:
  23. deque(())
  24. except TypeError:
  25. print("TypeError")
  26. d = deque((), 2, True)
  27. try:
  28. d.popleft()
  29. except IndexError:
  30. print("IndexError")
  31. print(d.append(1))
  32. print(d.popleft())
  33. d.append(2)
  34. print(d.popleft())
  35. d.append(3)
  36. d.append(4)
  37. print(d.popleft(), d.popleft())
  38. try:
  39. d.popleft()
  40. except IndexError as e:
  41. print(repr(e))
  42. d.append(5)
  43. d.append(6)
  44. print(len(d))
  45. try:
  46. d.append(7)
  47. except IndexError as e:
  48. print(repr(e))
  49. print(len(d))
  50. print(d.popleft(), d.popleft())
  51. print(len(d))
  52. try:
  53. d.popleft()
  54. except IndexError as e:
  55. print(repr(e))