summaryrefslogtreecommitdiff
path: root/rfc1982_serial_number.py
diff options
context:
space:
mode:
authorRob Austein <sra@hactrn.net>2024-04-12 14:58:54 -0400
committerRob Austein <sra@hactrn.net>2024-04-12 14:58:54 -0400
commitf2976c2d08db3f940735d3b7727a18c10ef8b5c1 (patch)
tree0164e69191e5aee083ac55aa26ebd3a4e417e6b5 /rfc1982_serial_number.py
parentb134449fa977769ea00c2c36214d65fa5a379dec (diff)
split out test code
Diffstat (limited to 'rfc1982_serial_number.py')
-rwxr-xr-x[-rw-r--r--]rfc1982_serial_number.py22
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()