From f2976c2d08db3f940735d3b7727a18c10ef8b5c1 Mon Sep 17 00:00:00 2001 From: Rob Austein <sra@hactrn.net> Date: Fri, 12 Apr 2024 14:58:54 -0400 Subject: split out test code --- rfc1982_serial_number.py | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) mode change 100644 => 100755 rfc1982_serial_number.py (limited to 'rfc1982_serial_number.py') diff --git a/rfc1982_serial_number.py b/rfc1982_serial_number.py old mode 100644 new mode 100755 index 9cb1a09..39fc414 --- 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() -- cgit v1.2.3