aboutsummaryrefslogtreecommitdiffstats
path: root/src/common
diff options
context:
space:
mode:
Diffstat (limited to 'src/common')
-rw-r--r--src/common/aoc.py35
1 files changed, 35 insertions, 0 deletions
diff --git a/src/common/aoc.py b/src/common/aoc.py
new file mode 100644
index 0000000..0d8d802
--- /dev/null
+++ b/src/common/aoc.py
@@ -0,0 +1,35 @@
+import sys, os
+
+debug_lvl = os.getenv("AOC_DEBUG")
+debug_lvl = int(debug_lvl) if debug_lvl is not None else 0
+
+input_name = os.getenv("AOC_INPUT")
+input_name = input_name if input_name is not None else "input"
+
+data = open(input_name).read().strip("\n")
+
+def debug(*args, **kwargs):
+ if debug_lvl:
+ print(*args, **kwargs, file=sys.stderr)
+
+def run(solve1, solve2, sols=[None, None]):
+ if len(sys.argv) <= 1:
+ sys.exit(0)
+ part = int(sys.argv[1])
+ if part == 1:
+ answer = solve1(sys.argv[2:])
+ print(answer)
+ if sols[part - 1] is not None:
+ assert(answer == sols[part - 1])
+ else:
+ print("warn: no solution available", file=sys.stderr)
+ elif part == 2:
+ answer = solve2(sys.argv[2:])
+ print(answer)
+ if sols[part - 1] is not None:
+ assert(answer == sols[part - 1])
+ else:
+ print("warn: no solution available", file=sys.stderr)
+ else:
+ assert(False) # bad part
+