Skip to content

Commit 0ae97f5

Browse files
committed
tests: Add some tests for urandom module.
1 parent d22bdad commit 0ae97f5

File tree

2 files changed

+58
-0
lines changed

2 files changed

+58
-0
lines changed

tests/extmod/urandom_basic.py

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
try:
2+
import urandom as random
3+
except ImportError:
4+
import random
5+
6+
# check getrandbits returns a value within the bit range
7+
for b in (1, 2, 3, 4, 16, 32):
8+
for i in range(50):
9+
assert random.getrandbits(b) < (1 << b)
10+
11+
# check that seed(0) gives a non-zero value
12+
random.seed(0)
13+
print(random.getrandbits(16) != 0)
14+
15+
# check that PRNG is repeatable
16+
random.seed(1)
17+
r = random.getrandbits(16)
18+
random.seed(1)
19+
print(random.getrandbits(16) == r)

tests/extmod/urandom_extra.py

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
try:
2+
import urandom as random
3+
except ImportError:
4+
import random
5+
6+
try:
7+
random.randint
8+
except AttributeError:
9+
import sys
10+
print('SKIP')
11+
sys.exit(1)
12+
13+
print('randrange')
14+
for i in range(50):
15+
assert 0 <= random.randrange(4) < 4
16+
assert 2 <= random.randrange(2, 6) < 6
17+
assert -2 <= random.randrange(-2, 2) < 2
18+
assert random.randrange(1, 9, 2) in (1, 3, 5, 7)
19+
20+
print('randint')
21+
for i in range(50):
22+
assert 0 <= random.randint(0, 4) <= 4
23+
assert 2 <= random.randint(2, 6) <= 6
24+
assert -2 <= random.randint(-2, 2) <= 2
25+
26+
print('choice')
27+
lst = [1, 2, 5, 6]
28+
for i in range(50):
29+
assert random.choice(lst) in lst
30+
31+
print('random')
32+
for i in range(50):
33+
assert 0 <= random.random() < 1
34+
35+
print('uniform')
36+
for i in range(50):
37+
assert 0 <= random.uniform(0, 4) <= 4
38+
assert 2 <= random.uniform(2, 6) <= 6
39+
assert -2 <= random.uniform(-2, 2) <= 2

0 commit comments

Comments
 (0)