aboutsummaryrefslogtreecommitdiffstats
path: root/src/common/aoc.py
blob: 0d8d8022c76590848cdbd51a96594c6aaea45de9 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
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