45 lines
2.2 KiB
Python
45 lines
2.2 KiB
Python
# SPDX-License-Identifier: MIT
|
|
# Copyright (c) 2020 Akumatic
|
|
|
|
from code import part1, part2, iterate, create_cache
|
|
|
|
def test():
|
|
input = [['L', '.', 'L', 'L', '.', 'L', 'L', '.', 'L', 'L'],
|
|
['L', 'L', 'L', 'L', 'L', 'L', 'L', '.', 'L', 'L'],
|
|
['L', '.', 'L', '.', 'L', '.', '.', 'L', '.', '.'],
|
|
['L', 'L', 'L', 'L', '.', 'L', 'L', '.', 'L', 'L'],
|
|
['L', '.', 'L', 'L', '.', 'L', 'L', '.', 'L', 'L'],
|
|
['L', '.', 'L', 'L', 'L', 'L', 'L', '.', 'L', 'L'],
|
|
['.', '.', 'L', '.', 'L', '.', '.', '.', '.', '.'],
|
|
['L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L'],
|
|
['L', '.', 'L', 'L', 'L', 'L', 'L', 'L', '.', 'L'],
|
|
['L', '.', 'L', 'L', 'L', 'L', 'L', '.', 'L', 'L']]
|
|
cache = create_cache(input)
|
|
assert iterate(input, cache) == [
|
|
['#', '.', '#', 'L', '.', 'L', '#', '.', '#', '#'],
|
|
['#', 'L', 'L', 'L', '#', 'L', 'L', '.', 'L', '#'],
|
|
['L', '.', '#', '.', 'L', '.', '.', '#', '.', '.'],
|
|
['#', 'L', '#', '#', '.', '#', '#', '.', 'L', '#'],
|
|
['#', '.', '#', 'L', '.', 'L', 'L', '.', 'L', 'L'],
|
|
['#', '.', '#', 'L', '#', 'L', '#', '.', '#', '#'],
|
|
['.', '.', 'L', '.', 'L', '.', '.', '.', '.', '.'],
|
|
['#', 'L', '#', 'L', '#', '#', 'L', '#', 'L', '#'],
|
|
['#', '.', 'L', 'L', 'L', 'L', 'L', 'L', '.', 'L'],
|
|
['#', '.', '#', 'L', '#', 'L', '#', '.', '#', '#']]
|
|
assert iterate(input, cache, adjacent=False) == [
|
|
['#', '.', 'L', '#', '.', 'L', '#', '.', 'L', '#'],
|
|
['#', 'L', 'L', 'L', 'L', 'L', 'L', '.', 'L', 'L'],
|
|
['L', '.', 'L', '.', 'L', '.', '.', '#', '.', '.'],
|
|
['#', '#', 'L', '#', '.', '#', 'L', '.', 'L', '#'],
|
|
['L', '.', 'L', '#', '.', 'L', 'L', '.', 'L', '#'],
|
|
['#', '.', 'L', 'L', 'L', 'L', '#', '.', 'L', 'L'],
|
|
['.', '.', '#', '.', 'L', '.', '.', '.', '.', '.'],
|
|
['L', 'L', 'L', '#', '#', '#', 'L', 'L', 'L', '#'],
|
|
['#', '.', 'L', 'L', 'L', 'L', 'L', '#', '.', 'L'],
|
|
['#', '.', 'L', '#', 'L', 'L', '#', '.', 'L', '#']]
|
|
assert part1(input, cache) == 37
|
|
assert part2(input, cache) == 26
|
|
print("Passed tests for", input)
|
|
|
|
if __name__ == "__main__":
|
|
test() |