def test_opcode_three_in_2(): day = Day(5, 1) day.load(typing=int, sep=",") day.input(1) day.execute_opcode() assert day.diagnostic == 7692125
def test_part1(): part1 = Day(8, 1) part1.load(typing=str) layers = get_layers(part1, 25, 6) zero_layer = fewest_zero_layer(layers) assert number_of_x_digits(layers, zero_layer, '1') * number_of_x_digits( layers, zero_layer, '2') == 1088
def example(): day = Day(24) data = """sesenwnenenewseeswwswswwnenewsewsw neeenesenwnwwswnenewnwwsewnenwseswesw seswneswswsenwwnwse nwnwneseeswswnenewneswwnewseswneseene swweswneswnenwsewnwneneseenw eesenwseswswnenwswnwnwsewwnwsene sewnenenenesenwsewnenwwwse wenwwweseeeweswwwnwwe wsweesenenewnwwnwsenewsenwwsesesenwne neeswseenwwswnwswswnw nenwswwsewswnenenewsenwsenwnesesenew enewnwewneswsewnwswenweswnenwsenwsw sweneswneswneneenwnewenewwneswswnese swwesenesewenwneswnwwneseswwne enesenwswwswneneswsenwnewswseenwsese wnwnesenesenenwwnenwsewesewsesesew nenewswnwewswnenesenwnesewesw eneswnwswnwsenenwnwnwwseeswneewsenese neswnwewnwnwseenwseesewsenwsweewe wseweeenwnesenwwwswnew""" day.load(data, typing=str) return day
def test_given_3(): part1 = Day(9, 1) middle = [104, 1125899906842624, 99] part1.load(middle.copy()) out = part1.execute_opcode() assert middle[1] == part1.result
def test_parts(tty, result): day = Day(9, 1) day.load(typing=int, sep=",") day.input(tty) day.execute_opcode() assert day.result == result
def test_given_0(): test = Day(4, 1) test.load([1002, 4, 3, 4, 33], sep=",") test.execute_opcode() print(test.answer(test.data[4])) assert test.result == 99
def test_part2(): part2 = Day(2, 2) part2.load(typing=int, sep=",") part2.data[1] = 84 part2.data[2] = 44 assert compute(part2.data)[0] == 19690720
def test_part1(): part1 = Day(2, 1) part1.load(typing=int, sep=",") part1.data[1] = 12 part1.data[2] = 2 assert compute(part1.data)[0] == 3101878
def test_given(data, result, limit): test = Day(4, 1) test.load([data], sep="-") test.apply(check_password, limit_groups=limit) test.answer(sum(test.data)) assert test.result == result
def test_part1_given0(): part1 = Day(9, 1) part1.load( data="109,1,204,-1,1001,100,1,100,1008,100,16,101,1006,101,0,99".split( ',')) part1.apply(int) part1.opcode() assert part1.result == 99
def example(): data = """.#. ..# ###""" day = Day(17) day.load(data, typing=str) return day
def test_part1(): part1 = Day(2, 1) part1.load(typing=int, sep=',') part1.data[1] = 12 part1.data[2] = 2 part1.opcode() assert part1.data[0] == 3409710
def test_iter(): diy = Day(1, 1) diy.load([0, 1, 2]) assert diy[1:] == [1, 2] assert len(diy) == 3
def test_given_long(monkeypatch, type_in, result): part1 = Day(5, 2) part1.load( [ 3, 21, 1008, 21, 8, 20, 1005, 20, 22, 107, 8, 21, 20, 1006, 20, 31, 1106, 0, 36, 98, 0, 0, 1002, 21, 125, 20, 4, 20, 1105, 1, 46, 104, 999, 1105, 1, 46, 1101, 1000, 1, 20, 4, 20, 1105, 1, 46, 98, 99, ], sep=",", ) monkeypatch.setattr("builtins.input", lambda x: type_in) part1.execute_opcode() assert part1.diagnostic == result
def test_part2(): day = Day(3, 2) day.load(typing=str) day.apply(list) day.answer( count_trees(day.data, 1, 1) * count_trees(day.data, 3, 1) * count_trees(day.data, 5, 1) * count_trees(day.data, 7, 1) * count_trees(day.data, 1, 2)) assert day.result == 2122848000
def test_part2(): part2 = Day(10, 2) part2.load(sep="\n") part2.data = process_map(part2.data) part2.answer(wazer_wifle(part2.data, (23, 20), 200), v=2) assert part2.result[0] * 100 + part2.result[1] == 1119
def test_others(data, part1, part2): day = Day(9, 1) day.load(data, typing=int, sep=",") day.input(1).execute_opcode() assert day.result == part1 day.reset().input(2).execute_opcode() assert day.result == part2
def test_given_2(): part1 = Day(8, 1) part1.load(["0222112222120000"]) part1.data = shaper(part1.data, 2, 2) part1.bake() np.testing.assert_array_equal(sif_decode(part1.data), np.array([[0, 1], [1, 0]]))
def example(): day = Day(21) data = """mxmxvkd kfcds sqjhc nhms (contains dairy, fish) trh fvjkl sbzzf mxmxvkd (contains dairy) sqjhc fvjkl (contains soy) sqjhc mxmxvkd sbzzf (contains fish)""" day.load(data, typing=str) return day
def test_part1(): part1 = Day(6, 1) part1.load() orbit = make_orbit_dict(part1.data) nr_of_each_orbits = keyfinder(orbit, 'COM', {}, 0) assert count_orbits(nr_of_each_orbits) == 139597
def test_opcode_three_in_1(): day = Day(5, 2) day.load(typing=int, sep=",") day.input(5) day.execute_opcode() assert day.diagnostic == 14340395
def test_summary(): day = Day(1, 1) day.load([1, 2, 3]) day.summary() day.answer(7) day.summary()
def test_part2(): part2 = Day(6, 2) part2.load() part2.apply(str.split, sep=")") chain = get_chain(part2.data) part2.answer(center_search(chain, "SAN", "YOU")) assert part2.result == 481
def test_given_0(): day03 = Day(3, 1) day03.load(data="""R8,U5,L5,D3\nU7,R6,D4,L4""".split()) val, direction = splitter(day03) kablemap, cx, cy = init_map(val, direction) kablemap = draw(kablemap, val, direction, cy, cx) assert distance(kablemap, cy, cx) == 6 assert minway(kablemap, val, direction, cy, cx) == 30
def test_original(): day03 = Day(3, 1) day03.load() val, direction = splitter(day03) kablemap, cx, cy = init_map(val, direction) kablemap = draw(kablemap, val, direction, cy, cx) assert distance(kablemap, cy, cx) == 1285 assert minway(kablemap, val, direction, cy, cx) == 14228
def test_part1(monkeypatch): # monkeypatch the "input" function, so that it returns "Mark". # This simulates the user entering "Mark" in the terminal: monkeypatch.setattr("builtins.input", lambda x: "1") part1 = Day(5, 1) part1.load(typing=int, sep=",").execute_opcode() assert part1.diagnostic == 7692125
def test_part1(): part1 = Day(10, 1) part1.load(sep="\n") part1.data = process_map(part1.data) part1.answer(count_visible(part1.data)[0], v=1) assert part1.result == 334
def test_part_1(): part1 = Day(8, 1) part1.load(typing=str, sep=",") part1.data = shaper(part1.data, 25, 6) part1.bake() layer_i = min_layer(part1.data) part1.answer(hash(part1.data, layer_i), v=1) assert part1.result == 2520
def test_part2_given_0(): part2 = Day(5,2) part2.load(data="3,21,1008,21,8,20,1005,20,22,107,8,21,20,1006,20,31,1106,0,36,98,0,0,1002,21,125,20,4,20,1105,1,46,104,999,1105,1,46,1101,1000,1,20,4,20,1105,1,46,98,99".split(',')) part2.apply(int) part2.opcode(7) assert part2.result == 999 part2.reset_apply() part2.opcode(8) assert part2.result == 1000 part2.reset_apply() part2.opcode(9) assert part2.result == 1001
def test_part2(): part2 = Day(6, 2) part2.load() orbit = make_orbit_dict(part2.data) you = way_to_center(orbit, 'YOU', []) san = way_to_center(orbit, 'SAN', []) new_center = find_new_center(you, san) assert distance_to_center(orbit, new_center, 'YOU') + distance_to_center( orbit, new_center, 'SAN') - 2 == 286