Пример #1
0
def test_part1_given_0():
    part1 = Day(5,1)
    part1.load(data="3,0,4,0,99".split(','))
    part1.apply(int)
    part1.opcode(1)
    assert part1.result == 1
Пример #2
0
def test_part2_given(data, result):
    part2 = Day(1, 2)
    part2.load(typing=int, data=[data])
    part2.answer(sum(part2.apply(fuelchain)))
    assert part2.result == result
Пример #3
0
def test_part1():
    part1 = Day(1, 1)
    part1.load(typing=int)
    assert sum(part1.apply(fuel)) == 3279287
Пример #4
0
def test_part1_given(data, result):
    part1 = Day(1, 1)
    part1.load(typing=int, data=[data])
    part1.answer(sum(part1.apply(fuel)))
    assert part1.result == result
Пример #5
0
def test_part2():
    part2 = Day(1, 2)
    part2.load(typing=int)
    assert sum(part2.apply(fuelchain)) == 4916076
Пример #6
0
def test_part1_given1():
    part1 = Day(9, 1)
    part1.load(data="1102,34915192,34915192,7,4,7,99,0".split(','))
    part1.apply(int)
    part1.opcode()
    assert part1.result == 1219070632396864
Пример #7
0
def test_part1_given2():
    part1 = Day(9, 1)
    part1.load(data="104,1125899906842624,99".split(','))
    part1.apply(int)
    part1.opcode()
    assert part1.result == 1125899906842624
Пример #8
0
def test_part1(data, result):
    part1 = Day(10, 1)
    part1.load(data=data)
    part1.apply(list)

    assert find_max_asteroid(part1) == result
Пример #9
0
def test_part1():
    day = Day(3, 1)
    day.load(typing=str)
    day.apply(list)
    day.answer(count_trees(day.data, 3, 1))
    assert day.result == 270
Пример #10
0
            break
    else:
        doub = False

    sort = "".join(sorted(password)) == password
    return six and doub and sort


if __name__ == "__main__":
    # Part 1
    part1 = Day(4, 1)

    part1.load(typing=int, sep="-")
    part1.load(list(range(part1.data[0], part1.data[1] + 1)))

    part1.apply(str)

    part1.apply(check_password)

    print(part1.answer(part1.sum()))

    # Part 2
    part2 = Day(4, 2)

    part2.load(typing=int, sep="-")
    part2.load(list(range(part2.data[0], part2.data[1] + 1)))

    part2.apply(str)

    part2.apply(check_password, limit_groups=True)
Пример #11
0
    # part1.load()
    # part1.apply(list)

    # print(find_max_asteroid(part1))
    # print(time()-bla)

    part2 = Day(10, 2)
    part2.load(data=""".#..##.###...#######
##.############..##.
.#.######.########.#
.###.#######.####.#.
#####.##.#.##.###.##
..#####..#.#########
####################
#.####....###.#.#.##
##.#################
#####.##.###..####..
..######..##.#######
####.##.####...##..#
.#####..#.######.###
##...#.##########...
#.##########.#######
.####.#.###.###.#.##
....##.##.###..#####
.#.#.###########.###
#.#.#.#####.####.###
###.##.####.##.#..##""".split())
part2.apply(list)

print(vaporize(part2, 0))
Пример #12
0

def center_search(orbits: list, end_one: str, end_two: str):
    chain = orbits.copy()
    center_one, one = traverse_orbits(chain, [end_one])
    center_two, two = traverse_orbits(chain, [end_two])

    common = set(one.keys()) & set(two.keys())
    closest = max(one[x] for x in common)

    return one[end_one] - 1 + two[end_two] - 1 - closest * 2


if __name__ == "__main__":
    part1 = Day(6, 1)
    part1.load()
    part1.apply(str.split, sep=")")

    chain = get_chain(part1.data)
    end_points = get_endpoints(part1.data)
    orbits, traverse = traverse_orbits(chain, end_points)
    part1.answer(orbits, v=True)

    part2 = Day(6, 2)
    part2.load()
    part2.apply(str.split, sep=")")

    chain = get_chain(part2.data)

    part2.answer(center_search(chain, "SAN", "YOU"), v=True)
Пример #13
0

def fuelchain(data):
    fuel = data
    data = 0
    while fuel > 0:
        fuel = fuel // 3 - 2
        if fuel > 0:
            data += fuel
    return (data)


if __name__ == '__main__':

    # --Part 1-- 3295206
    part1 = Day(1, 1)
    part1.load(int)
    part1.apply(fuel)

    result = sum(part1.data)

    print(part1.answer(result))

    # --Part 2-- 4939939
    part2 = Day(1, 2)
    part2.load(int)
    part2.apply(fuelchain)

    result = sum(part2.data)

    print(part2.answer(result))
Пример #14
0
    Arguments:
        module {int} -- Weight of Module
    
    Returns:
        int -- Total Fuel Requirements with "wishing really hard"
    """
    out = [fuel(module)]
    while out[-1] > 0:
        out.append(fuel(out[-1]))
    return sum(out[:-1])  # Skip last one


if __name__ == "__main__":
    ## Part One
    part1 = Day(1, 1)
    part1.load(typing=int)

    out = sum(part1.apply(fuel))

    print(part1.desc)
    print(part1.answer(out))

    ## Part 2
    part2 = Day(1, 2)
    part2.load(typing=int)

    out = sum(part2.apply(fuelchain))

    print(part2.desc)
    print(part2.answer(out))