Source code for day11.tests.test_day11

"""Tests for day11."""
from day11.day11 import INPUT_SMALL, Universe, get_total_distance, is_empty, parse_input


[docs] def test_day11() -> None: """Test day11 main function.""" universe: Universe = parse_input(INPUT_SMALL) assert universe.num_rows == 10 assert universe.num_cols == 10 universe.expand_contents() galaxies = universe.grab_galaxies() # q1: expansion = 2 assert galaxies[0].distance(galaxies[6], universe) == 15 assert galaxies[2].distance(galaxies[5], universe) == 17 assert galaxies[7].distance(galaxies[8], universe) == 5 assert get_total_distance(galaxies, universe) == 374 # q2: expansion = 1000000 universe.expansion_rate = 10 assert get_total_distance(galaxies, universe) == 1030 universe.expansion_rate = 100 assert get_total_distance(galaxies, universe) == 8410
[docs] def test_is_empty() -> None: """Tests is_empty function on universe.""" universe: Universe = parse_input(INPUT_SMALL) assert is_empty(universe.contents[3]) assert not is_empty(universe.contents[0]) assert not is_empty(universe.contents[1]) assert not is_empty(universe.contents[2])
[docs] def test_expansion() -> None: """Test expansion of universe.""" universe: Universe = parse_input(INPUT_SMALL) assert universe.num_rows == 10 assert universe.num_cols == 10 universe.expand_contents() print(universe) assert str(universe) == "\n".join( [ "..@#.@..@.", "..@..@.#@.", "#.@..@..@.", "@@@@@@@@@@", "..@..@#.@.", ".#@..@..@.", "..@..@..@#", "@@@@@@@@@@", "..@..@.#@.", "#.@.#@..@.", ] ) # test cool iterator stuff for index, row in enumerate(universe): assert universe[index] == row