Beispiel #1
0
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
Beispiel #2
0
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
Beispiel #6
0
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
Beispiel #10
0
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
Beispiel #12
0
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
Beispiel #13
0
def test_iter():
    diy = Day(1, 1)

    diy.load([0, 1, 2])

    assert diy[1:] == [1, 2]

    assert len(diy) == 3
Beispiel #14
0
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
Beispiel #15
0
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
Beispiel #18
0
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
Beispiel #20
0
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
Beispiel #21
0
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
Beispiel #22
0
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
Beispiel #24
0
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
Beispiel #25
0
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
Beispiel #26
0
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
Beispiel #28
0
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
Beispiel #29
0
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
Beispiel #30
0
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