builtin_minmax.py 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. # test builtin min and max functions
  2. try:
  3. min
  4. max
  5. except:
  6. print("SKIP")
  7. raise SystemExit
  8. print(min(0,1))
  9. print(min(1,0))
  10. print(min(0,-1))
  11. print(min(-1,0))
  12. print(max(0,1))
  13. print(max(1,0))
  14. print(max(0,-1))
  15. print(max(-1,0))
  16. print(min([1,2,4,0,-1,2]))
  17. print(max([1,2,4,0,-1,2]))
  18. # test with key function
  19. lst = [2, 1, 3, 4]
  20. print(min(lst, key=lambda x:x))
  21. print(min(lst, key=lambda x:-x))
  22. print(min(1, 2, 3, 4, key=lambda x:-x))
  23. print(min(4, 3, 2, 1, key=lambda x:-x))
  24. print(max(lst, key=lambda x:x))
  25. print(max(lst, key=lambda x:-x))
  26. print(max(1, 2, 3, 4, key=lambda x:-x))
  27. print(max(4, 3, 2, 1, key=lambda x:-x))
  28. # need at least 1 item in the iterable
  29. try:
  30. min([])
  31. except ValueError:
  32. print("ValueError")
  33. # 'default' tests
  34. print(min([1, 2, 3, 4, 5], default=-1))
  35. print(min([], default=-1))
  36. print(max([1, 2, 3, 4, 5], default=-1))
  37. print(max([], default=-1))
  38. # make sure it works with lazy iterables
  39. # can't use Python generators here, as they're not supported
  40. # byy native codegenerator.
  41. print(min(enumerate([]), default=-10))