1
0

70_random.py 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. import random as r
  2. r.seed(10)
  3. for _ in range(100):
  4. i = r.randint(1, 10)
  5. assert i <= 10
  6. assert i >= 1
  7. i = r.random()
  8. assert 0.0 <= i <= 1.0
  9. i = r.uniform(3.0, 9.5)
  10. assert 3.0 <= i <= 9.5
  11. a = [1, 2, 3, 4]
  12. r.shuffle(a)
  13. for i in range(10):
  14. assert r.choice(a) in a
  15. for i in range(10):
  16. assert r.choice(tuple(a)) in a
  17. for i in range(10):
  18. assert r.randint(1, 1) == 1
  19. # test choices
  20. x = (1,)
  21. res = r.choices(x, k=4)
  22. assert (res == [1, 1, 1, 1]), res
  23. w = (1, 2, 3)
  24. assert r.choices([1, 2, 3], (0.0, 0.0, 0.5)) == [3]
  25. try:
  26. r.choices([1, 2, 3], (0.0, 0.0, 0.5, 0.5))
  27. exit(1)
  28. except ValueError:
  29. pass
  30. try:
  31. r.choices([])
  32. exit(1)
  33. except IndexError:
  34. pass
  35. seq = [1, 2, 3, 4]
  36. weights = [0.1, 0.2, 0.2, 0.5]
  37. k = 1000
  38. res = r.choices(seq, weights, k=k)
  39. assert len(res) == k and isinstance(res, list)
  40. max_error = 0.03
  41. for i in range(len(seq)):
  42. actual_w = res.count(seq[i]) / k
  43. assert abs(actual_w - weights[i]) < max_error
  44. # test seed
  45. from random import randint, seed
  46. seed(7)
  47. a = randint(1, 100)
  48. b = randint(-2**60, 1)
  49. c = randint(50, 100)
  50. assert (a, b, c) == (16, -418020281577586157, 76)
  51. seed(7)
  52. assert a == randint(1, 100)
  53. assert b == randint(-2**60, 1)
  54. assert c == randint(50, 100)