deque1.py 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. try:
  2. try:
  3. from ucollections import deque
  4. except ImportError:
  5. from collections import deque
  6. except ImportError:
  7. print("SKIP")
  8. raise SystemExit
  9. d = deque((), 2)
  10. print(len(d))
  11. print(bool(d))
  12. try:
  13. d.popleft()
  14. except IndexError:
  15. print("IndexError")
  16. print(d.append(1))
  17. print(len(d))
  18. print(bool(d))
  19. print(d.popleft())
  20. print(len(d))
  21. d.append(2)
  22. print(d.popleft())
  23. d.append(3)
  24. d.append(4)
  25. print(len(d))
  26. print(d.popleft(), d.popleft())
  27. try:
  28. d.popleft()
  29. except IndexError:
  30. print("IndexError")
  31. d.append(5)
  32. d.append(6)
  33. d.append(7)
  34. print(len(d))
  35. print(d.popleft(), d.popleft())
  36. print(len(d))
  37. try:
  38. d.popleft()
  39. except IndexError:
  40. print("IndexError")
  41. # Case where get index wraps around when appending to full deque
  42. d = deque((), 2)
  43. d.append(1)
  44. d.append(2)
  45. d.append(3)
  46. d.append(4)
  47. d.append(5)
  48. print(d.popleft(), d.popleft())
  49. # Negative maxlen is not allowed
  50. try:
  51. deque((), -1)
  52. except ValueError:
  53. print("ValueError")
  54. # Unsupported unary op
  55. try:
  56. ~d
  57. except TypeError:
  58. print("TypeError")