24 lines
1006 B
Python
24 lines
1006 B
Python
# SPDX-License-Identifier: MIT
|
|
# Copyright (c) 2020 Akumatic
|
|
|
|
from code import part1, part2, parse
|
|
|
|
def test():
|
|
assert parse("1 + 2 * 3 + 4 * 5 + 6") == 71
|
|
assert parse("1 + (2 * 3) + (4 * (5 + 6))") == 51
|
|
assert parse("2 * 3 + (4 * 5)") == 26
|
|
assert parse("5 + (8 * 3 + 9 + 3 * 4 * 3)") == 437
|
|
assert parse("5 * 9 * (7 * 3 * 3 + 9 * 3 + (8 + 6 * 4))") == 12240
|
|
assert parse("((2 + 4 * 9) * (6 + 9 * 8 + 6) + 6) + 2 + 4 * 2") == 13632
|
|
print(f"Passed part 1")
|
|
|
|
assert parse("1 + 2 * 3 + 4 * 5 + 6", precedence=True) == 231
|
|
assert parse("1 + (2 * 3) + (4 * (5 + 6))", precedence=True) == 51
|
|
assert parse("2 * 3 + (4 * 5)", precedence=True) == 46
|
|
assert parse("5 + (8 * 3 + 9 + 3 * 4 * 3)", precedence=True) == 1445
|
|
assert parse("5 * 9 * (7 * 3 * 3 + 9 * 3 + (8 + 6 * 4))", precedence=True) == 669060
|
|
assert parse("((2 + 4 * 9) * (6 + 9 * 8 + 6) + 6) + 2 + 4 * 2", precedence=True) == 23340
|
|
print(f"Passed part 2")
|
|
|
|
if __name__ == "__main__":
|
|
test() |