diff options
Diffstat (limited to 'rfc1982_serial_number.py')
-rwxr-xr-x[-rw-r--r--] | rfc1982_serial_number.py | 22 |
1 files changed, 12 insertions, 10 deletions
diff --git a/rfc1982_serial_number.py b/rfc1982_serial_number.py index 9cb1a09..39fc414 100644..100755 --- a/rfc1982_serial_number.py +++ b/rfc1982_serial_number.py @@ -47,16 +47,18 @@ def step(start, finish): assert start < midpoint and midpoint < finish return start, midpoint, finish -if __name__ == "__main__": - from random import randint +def show(steps): + print(" => ".join(str(s) for s in steps)) + +def main(): + from argparse import ArgumentParser - for test in range(10000): - i1 = Serial(randint(0, Serial.modulus - 1)) - i2 = Serial(randint(0, Serial.modulus - 1)) + ap = ArgumentParser() + ap.add_argument("start", type = Serial) + ap.add_argument("finish", type = Serial) + args = ap.parse_args() - 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 + show(step(args.start, args.finish)) - print(f"{i1} => {i2}: {', '.join(str(s) for s in step(i1, i2))}") +if __name__ == "__main__": + main() |