Source code for day02.tests.test_day2

"""tests for day02."""
from day02.day2 import INPUT_SMALL, Draw, Game, game_filter, get_games, part1, part2


[docs] def get_game1() -> Game: """Returns a sample game.""" return Game("Game 1: 3 blue, 4 red; 1 red, 2 green, 6 blue; 2 green")
[docs] def get_game2() -> Game: """Returns another sample game.""" return Game("Game 2: 1 blue, 2 green; 3 green, 4 blue, 1 red; 1 green, 1 blue")
[docs] def test_draw() -> None: """Test draws.""" draw1: Draw = Draw("3 blue, 4 red") draw2: Draw = Draw("4 blue, 3 green") draw3: Draw = Draw("4 blue, 3 green, 1 red") assert [draw1.red, draw1.green, draw1.blue] == [4, 0, 3] assert [draw2.red, draw2.green, draw2.blue] == [0, 3, 4] assert [draw3.red, draw3.green, draw3.blue] == [1, 3, 4]
[docs] def test_game() -> None: """Test games.""" game1: Game = get_game1() game2: Game = get_game2() assert game1.id == 1 assert game1.red == 4 assert game1.blue == 6 assert game1.green == 2 assert game2.id == 2 assert game2.red == 1 assert game2.green == 3 assert game2.blue == 4 assert str(game1) == "Game 1: 4,2,6" assert str(game2) == "Game 2: 1,3,4"
[docs] def test_part1() -> None: """Tests get_games, game_filter, part1.""" games: list[Game] = get_games(INPUT_SMALL) # test game_filter expected: list[bool] = [True, True, False, False, True] for index, game in enumerate(games): assert game_filter(game) == expected[index] # test part1() assert part1(games) == 8
[docs] def test_part2() -> None: """Tests power.""" games: list[Game] = get_games(INPUT_SMALL) # test game_filter expected = [48, 12, 1560, 630, 36] for index, game in enumerate(games): assert game.power_level() == expected[index] # test part1() assert part2(games) == 2286