blob: e374bb72adfa2f611c16e825cb30830ba17ac6b5 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
#!/usr/bin/env python3
from rfc1982_serial_number import Serial, find_intermediate
from argparse import ArgumentParser
from random import randint
ap = ArgumentParser()
ap.add_argument("iterations", type = int, default = 100000, nargs = "?")
args = ap.parse_args()
for test in range(args.iterations):
i1 = Serial(randint(0, Serial.modulus - 1))
i2 = Serial(randint(0, Serial.modulus - 1))
assert i1 == i2 or \
(i1 < i2 and not (i1 > i2)) or \
(i1 > i2 and not (i1 < i2)) or \
int(i1) ^ int(i2) == Serial.modulus >> 1
step = [i1, i2]
for wrap in find_intermediate(i1, i2):
assert wrap > step[-2]
step.insert(-1, wrap)
for i in range(len(step) - 1):
assert step[i] < step[i + 1]
print(" => ".join(str(s) for s in step))
|