diff options
author | Rob Austein <sra@hactrn.net> | 2024-04-13 20:58:03 -0400 |
---|---|---|
committer | Rob Austein <sra@hactrn.net> | 2024-04-13 20:58:03 -0400 |
commit | 42e215baae5ba124cf4aa66a79bf68d4fe2e29c1 (patch) | |
tree | 7bd829b36813a46f9a27b6adec743a158c6775fd /test1.py | |
parent | da18545e8cb3615dfc82b1ee020cd9232068bfda (diff) |
Rewrite to handle corner case start == finish + 1
Diffstat (limited to 'test1.py')
-rwxr-xr-x | test1.py | 16 |
1 files changed, 12 insertions, 4 deletions
@@ -1,9 +1,14 @@ #!/usr/bin/env python3 from rfc1982_serial_number import Serial, find_intermediate +from argparse import ArgumentParser from random import randint -for test in range(10000): +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)) @@ -13,8 +18,11 @@ for test in range(10000): int(i1) ^ int(i2) == Serial.modulus >> 1 step = [i1, i2] - wrap = find_intermediate(i1, i2) - if wrap is not None: - step.insert(1, wrap) + 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)) |