Example #1
0
def main() -> None:
    """Check overlapping claims on fabric."""
    # Part A
    test_answer = 4
    file = config.TestFile(test_answer)
    fabric = render_fabric(file.contents)
    test = calculate_overlapping_area(fabric)
    file.test(test)

    file = config.File()
    fabric = render_fabric(file.contents)
    result = calculate_overlapping_area(fabric)
    config.LOGGER.info(f'A: {result}')

    # Part B
    test_answer = 3
    file = config.TestFile(test_answer)
    fabric = render_fabric(file.contents)
    test = find_non_overlapping_claim(fabric)
    file.test(test)

    file = config.File()
    fabric = render_fabric(file.contents)
    result = find_non_overlapping_claim(fabric)
    config.LOGGER.info(f'B: {result}')
Example #2
0
def main() -> None:
    """Determine path through a map of trees."""
    # Part A
    test_answer = 7
    file = config.TestFile(test_answer)
    count = count_trees(file.contents, 3, 1)
    file.test(count)

    # Part B
    test_answer = 336  # = 2 * 7 * 3 * 4 * 2
    file = config.TestFile(test_answer)
    slopes = [
        (1, 1),
        # (3, 1), # This slope is already calculated.
        # Rather than calculate the count again, just multiply results from
        # the other slopes onto the existing count.
        (5, 1),
        (7, 1),
        (1, 2),
    ]
    for slope in slopes:
        count *= count_trees(file.contents, *slope)
    file.test(count)

    # Part A
    file = config.File()
    count = count_trees(file.contents, 3, 1)
    config.log_part_info('A', count)
    for slope in slopes:
        count *= count_trees(file.contents, *slope)
    config.log_part_info('B', count)
Example #3
0
File: a.py Project: cj-wong/advent
def main() -> None:
    """Check joltages of the adapters from the outlet to device."""
    test_answer = 35
    file = config.TestFile(test_answer, to_type=int)
    test = calculate_diff_occurrence(file.contents)
    file.test(test)

    test_answer = 220
    file = config.TestFile(test_answer,
                           path="another_test_input.txt",
                           to_type=int)
    test = calculate_diff_occurrence(file.contents)
    file.test(test)

    file = config.File(to_type=int)
    result = calculate_diff_occurrence(file.contents)
    config.LOGGER.info(result)
Example #4
0
File: a.py Project: cj-wong/advent
def main() -> None:
    """Simulate cycles for Conway Cubes."""
    test_answer = 112
    file = config.TestFile(test_answer)
    test = iterate_conway_cubes(file.contents)
    file.test(test)

    file = config.File()
    result = iterate_conway_cubes(file.contents)
    config.LOGGER.info(result)
Example #5
0
def main() -> None:
    """Run the main code."""
    test_answer = 198
    test_file = config.TestFile(test_answer)
    test = determine_power_consumption(test_file.contents)
    test_file.test(test)

    file = config.File()
    result = determine_power_consumption(file.contents)
    config.LOGGER.info(result)
Example #6
0
def main() -> None:
    """Run the main code."""
    test_answer = 1656
    test_file = config.TestFile(test_answer)
    test = count_octopus_flashes(test_file.contents)
    test_file.test(test)

    file = config.File()
    result = count_octopus_flashes(file.contents)
    config.LOGGER.info(result)
Example #7
0
File: b.py Project: cj-wong/advent
def main() -> None:
    """Read and count valid passports."""
    test_answer = 2
    file = config.TestFile(test_answer)
    test = validate(file.contents)
    file.test(test)

    file = config.File()
    result = validate(file.contents)
    config.LOGGER.info(result)
Example #8
0
def main() -> None:
    """Run the main code."""
    test_answer = 61229
    test_file = config.TestFile(test_answer)
    test = determine_output_sum(test_file.contents)
    test_file.test(test)

    file = config.File()
    result = determine_output_sum(file.contents)
    config.LOGGER.info(result)
Example #9
0
File: b.py Project: cj-wong/advent
def main() -> None:
    """Run the main code."""
    test_answer = 1134
    test_file = config.TestFile(test_answer)
    test = find_basins(test_file.contents)
    test_file.test(test)

    file = config.File()
    result = find_basins(file.contents)
    config.LOGGER.info(result)
Example #10
0
File: b.py Project: cj-wong/advent
def main() -> None:
    """Run the main code."""
    test_answer = 288957
    test_file = config.TestFile(test_answer)
    test = fix_incomplete_lines(test_file.contents)
    test_file.test(test)

    file = config.File()
    result = fix_incomplete_lines(file.contents)
    config.LOGGER.info(result)
Example #11
0
File: b.py Project: cj-wong/advent
def main() -> None:
    """Run the main code."""
    test_answer = 1924
    test_file = config.TestFile(test_answer)
    test = play_bingo(test_file.contents)
    test_file.test(test)

    file = config.File()
    result = play_bingo(file.contents)
    config.LOGGER.info(result)
Example #12
0
File: a.py Project: cj-wong/advent
def main() -> None:
    """Parse and read train ticket."""
    test_answer = 71  # 4 + 55 + 12
    file = config.TestFile(test_answer)
    test = find_sum_all_invalid_values(file.contents)
    file.test(test)

    file = config.File()
    result = find_sum_all_invalid_values(file.contents)
    config.LOGGER.info(result)
Example #13
0
def main() -> None:
    """Run the main code."""
    test_answer = 1588
    test_file = config.TestFile(test_answer)
    test = combine_polymers_and_diff_most_least(test_file.contents)
    test_file.test(test)

    file = config.File()
    result = combine_polymers_and_diff_most_least(file.contents)
    config.LOGGER.info(result)
Example #14
0
File: b.py Project: cj-wong/advent
def main() -> None:
    """Run the main code."""
    test_answer = 230
    test_file = config.TestFile(test_answer)
    test = determine_life_support_rating(test_file.contents)
    test_file.test(test)

    file = config.File()
    result = determine_life_support_rating(file.contents)
    config.LOGGER.info(result)
Example #15
0
File: b.py Project: cj-wong/advent
def main() -> None:
    """Run the main code."""
    test_answer = 26984457539
    test_file = config.TestFile(test_answer)
    test = lanternfish.count_lanternfish(test_file.contents, days=256)
    test_file.test(test)

    file = config.File()
    result = lanternfish.count_lanternfish(file.contents, days=256)
    config.LOGGER.info(result)
Example #16
0
File: b.py Project: cj-wong/advent
def main() -> None:
    """Run the main code."""
    test_answer = 5
    test_file = config.TestFile(test_answer)
    test = calculate_depth_increases(test_file.contents)
    test_file.test(test)

    file = config.File()
    result = calculate_depth_increases(file.contents)
    config.LOGGER.info(result)
Example #17
0
File: a.py Project: cj-wong/advent
def main() -> None:
    """Run the main code."""
    test_answer = 15
    test_file = config.TestFile(test_answer)
    test = sum_risk_in_map(test_file.contents)
    test_file.test(test)

    file = config.File()
    result = sum_risk_in_map(file.contents)
    config.LOGGER.info(result)
Example #18
0
def main() -> None:
    """Run the main code."""
    test_answer = 17
    test_file = config.TestFile(test_answer)
    test = calculate_dots_in_paper(test_file.contents)
    test_file.test(test)

    file = config.File()
    result = calculate_dots_in_paper(file.contents)
    config.LOGGER.info(result)
Example #19
0
def main() -> None:
    """Check joltages of the adapters from the outlet to device."""
    test_answer = 8
    file = config.TestFile(test_answer, to_type=int, sort=True)
    test = calculate_tree_diffs(file.contents)
    file.test(test)

    test_answer = 19208
    file = config.TestFile(test_answer,
                           path="another_test_input.txt",
                           to_type=int,
                           sort=True)
    file.write_to_file()
    test = calculate_tree_diffs(file.contents)
    file.test(test)

    file = config.File(to_type=int, sort=True)
    result = calculate_tree_diffs(file.contents)
    config.LOGGER.info(result)
Example #20
0
def main() -> None:
    """Navigate given the ship's directions."""
    test_answer = 25 # E 17, S 8
    file = config.TestFile(test_answer)
    test = manhattan_distance(file.contents)
    file.test(test)

    file = config.File()
    result = manhattan_distance(file.contents)
    config.LOGGER.info(result)
Example #21
0
def main() -> None:
    """Run the main code."""
    test_answer = 900
    test_file = config.TestFile(test_answer)
    test = calculate_submarine_position(test_file.contents)
    test_file.test(test)

    file = config.File()
    result = calculate_submarine_position(file.contents)
    config.LOGGER.info(result)
Example #22
0
File: a.py Project: cj-wong/advent
def main() -> None:
    """Run the main code."""
    test_answer = 26397
    test_file = config.TestFile(test_answer)
    test = catch_syntax_errors(test_file.contents)
    test_file.test(test)

    file = config.File()
    result = catch_syntax_errors(file.contents)
    config.LOGGER.info(result)
Example #23
0
def main() -> None:
    """Read program data from port computer system."""
    test_answer = 165
    file = config.TestFile(test_answer)
    test = read_program_data(file.contents)
    file.test(test)

    file = config.File()
    result = read_program_data(file.contents)
    config.LOGGER.info(result)
Example #24
0
File: a.py Project: cj-wong/advent
def main() -> None:
    """Run the main code."""
    test_answer = 5934
    test_file = config.TestFile(test_answer)
    test = lanternfish.count_lanternfish(test_file.contents)
    test_file.test(test)

    file = config.File()
    result = lanternfish.count_lanternfish(file.contents)
    config.LOGGER.info(result)
Example #25
0
File: a.py Project: cj-wong/advent
def main() -> None:
    """Run the main code."""
    test_answer = 37
    test_file = config.TestFile(test_answer)
    test = calculate_min_crab_sub_fuel(test_file.contents)
    test_file.test(test)

    file = config.File()
    result = calculate_min_crab_sub_fuel(file.contents)
    config.LOGGER.info(result)
Example #26
0
File: a.py Project: cj-wong/advent
def main() -> None:
    """Run the main code."""
    test_answer = 40
    test_file = config.TestFile(test_answer)
    test = get_least_risk(test_file.contents)
    test_file.test(test)

    file = config.File()
    result = get_least_risk(file.contents)
    config.LOGGER.info(result)
Example #27
0
File: b.py Project: cj-wong/advent
def main() -> None:
    """Check the seating of the ferry."""
    test_answer = 26
    file = config.TestFile(test_answer)
    test = simulate_seating(file.contents)
    file.test(test)

    file = config.File()
    result = simulate_seating(file.contents)
    config.LOGGER.info(result)
Example #28
0
File: a.py Project: cj-wong/advent
def main() -> None:
    """Run the main code."""
    test_answer = 26
    test_file = config.TestFile(test_answer)
    test = count_1_4_7_8s_in_output(test_file.contents)
    test_file.test(test)

    file = config.File()
    result = count_1_4_7_8s_in_output(file.contents)
    config.LOGGER.info(result)
Example #29
0
File: b.py Project: cj-wong/advent
def main() -> None:
    """Run the main code."""
    test_answer = 112
    test_file = config.TestFile(test_answer)
    test = count_hitting_trajectories(test_file.contents)
    test_file.test(test)

    file = config.File()
    result = count_hitting_trajectories(file.contents)
    config.LOGGER.info(result)
Example #30
0
def main() -> None:
    """Run the main code."""
    test_answer = 12
    test_file = config.TestFile(test_answer)
    test = calculate_graph_intersections(test_file.contents)
    test_file.test(test)

    file = config.File()
    result = calculate_graph_intersections(file.contents)
    config.LOGGER.info(result)