import random as R import time import sys seed = int(time.time()) # sys.stderr.write('seed: ' + str(seed) + '\n') R.seed(seed) @test def test_rnd_result(name, results, invariant): print name for a in results: assert invariant(a) test_rnd_result('randrange', [R.randrange(10) for _ in range(100)], range(10).__contains__) test_rnd_result('randrange', [R.randrange(5, 20) for _ in range(100)], range(5, 20).__contains__) test_rnd_result('randrange', [R.randrange(9, 99, 3) for _ in range(100)], range(9, 99, 3).__contains__) test_rnd_result('randint', [R.randint(5, 20) for _ in range(100)], range(5, 20 + 1).__contains__) population = list('ABCDEFGHIJKLMNOP') test_rnd_result('choice', [R.choice(population) for _ in range(100)], population.__contains__) test_rnd_result('choice', [R.choice(population) for _ in range(100)], population.__contains__) test_rnd_result('choices', R.choices(population), population.__contains__) test_rnd_result('choices', R.choices(population, k=100), population.__contains__) @test def test_shuffle(v): s = copy(v) R.shuffle(s) assert sorted(v) == sorted(s) test_shuffle(list(range(100))) @test def test_sample(n: int, k: int): s = R.sample(list(range(n)), k=k) assert len(s) == k assert len(set(s)) == len(s) for a in s: assert a in range(n) test_sample(100, 5) test_sample(100, 100) test_sample(100, 0)