set_binop.py 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. # test set binary operations
  2. sets = [set(), {1}, {1, 2}, {1, 2, 3}, {2, 3}, {2, 3, 5}, {5}, {7}]
  3. for s in sets:
  4. for t in sets:
  5. print(sorted(s), '|', sorted(t), '=', sorted(s | t))
  6. print(sorted(s), '^', sorted(t), '=', sorted(s ^ t))
  7. print(sorted(s), '&', sorted(t), '=', sorted(s & t))
  8. print(sorted(s), '-', sorted(t), '=', sorted(s - t))
  9. u = s.copy()
  10. u |= t
  11. print(sorted(s), "|=", sorted(t), '-->', sorted(u))
  12. u = s.copy()
  13. u ^= t
  14. print(sorted(s), "^=", sorted(t), '-->', sorted(u))
  15. u = s.copy()
  16. u &= t
  17. print(sorted(s), "&=", sorted(t), "-->", sorted(u))
  18. u = s.copy()
  19. u -= t
  20. print(sorted(s), "-=", sorted(t), "-->", sorted(u))
  21. print(sorted(s), '==', sorted(t), '=', s == t)
  22. print(sorted(s), '!=', sorted(t), '=', s != t)
  23. print(sorted(s), '>', sorted(t), '=', s > t)
  24. print(sorted(s), '>=', sorted(t), '=', s >= t)
  25. print(sorted(s), '<', sorted(t), '=', s < t)
  26. print(sorted(s), '<=', sorted(t), '=', s <= t)
  27. print(set('abc') == 1)
  28. # make sure inplace operators modify the set
  29. s1 = s2 = set('abc')
  30. s1 |= set('ad')
  31. print(s1 is s2, len(s1))
  32. s1 = s2 = set('abc')
  33. s1 ^= set('ad')
  34. print(s1 is s2, len(s1))
  35. s1 = s2 = set('abc')
  36. s1 &= set('ad')
  37. print(s1 is s2, len(s1))
  38. s1 = s2 = set('abc')
  39. s1 -= set('ad')
  40. print(s1 is s2, len(s1))
  41. # RHS must be a set
  42. try:
  43. print(set('12') >= '1')
  44. except TypeError:
  45. print('TypeError')
  46. # RHS must be a set
  47. try:
  48. print(set('12') <= '123')
  49. except TypeError:
  50. print('TypeError')
  51. # unsupported operator
  52. try:
  53. set('abc') * set('abc')
  54. except TypeError:
  55. print('TypeError')
  56. # unsupported operator with RHS not a set
  57. try:
  58. set('abc') * 2
  59. except TypeError:
  60. print('TypeError')