#include "2022/day1/aoc.h" #include "2022/day2/aoc.h" #include "2022/day3/aoc.h" #include "2022/day4/aoc.h" #include "2022/day5/aoc.h" #include "2022/day6/aoc.h" #include "2022/day7/aoc.h" #include "2022/day8/aoc.h" #include "2022/day9/aoc.h" #include "2022/day10/aoc.h" #include "2022/day11/aoc.h" #include "2022/day12/aoc.h" #include "2022/day13/aoc.h" #include "2022/day14/aoc.h" #include "2022/day15/aoc.h" #include "2022/day16/aoc.h" #include "2022/day17/aoc.h" #include "2022/day18/aoc.h" #include "2022/day19/aoc.h" #include "2022/day20/aoc.h" #include "2022/day21/aoc.h" #include "2022/day22/aoc.h" #include "2022/day23/aoc.h" #include "2022/day24/aoc.h" #include "2022/day25/aoc.h" #include "catch.hpp" #include #include TEST_CASE("Calorie Counting", "[2022]") { line_view lv = load_file("../src/2022/day1/input"); auto p = aoc2022::day1(lv); REQUIRE(69693 == p.first); REQUIRE(200945 == p.second); } TEST_CASE("Rock Paper Scissors", "[2022]") { line_view lv = load_file("../src/2022/day2/input"); auto p = aoc2022::day2(lv); REQUIRE(17189 == p.first); REQUIRE(13490 == p.second); } TEST_CASE("Rucksack Reorganization", "[2022]") { line_view lv = load_file("../src/2022/day3/input"); auto p = aoc2022::day3(lv); REQUIRE(8185 == p.first); REQUIRE(2817 == p.second); } TEST_CASE("Camp Cleanup", "[2022]") { line_view lv = load_file("../src/2022/day4/input"); auto p = aoc2022::day4(lv); REQUIRE(431 == p.first); REQUIRE(823 == p.second); } TEST_CASE("Supply Stacks", "[2022]") { line_view lv = load_file("../src/2022/day5/input"); char message[10] = {0}; aoc2022::day5(lv, message, 1); REQUIRE(strcmp(message,"JCMHLVGMG") == 0); aoc2022::day5(lv, message, 2); REQUIRE(strcmp(message,"LVMRWSSPZ") == 0); } TEST_CASE("Tuning Trouble", "[2022]") { line_view lv = load_file("../src/2022/day6/input"); auto p = aoc2022::day6(lv); REQUIRE(1623 == p.first); REQUIRE(3774 == p.second); } TEST_CASE("No Space Left On Device", "[2022]") { line_view lv = load_file("../src/2022/day7/input"); auto p = aoc2022::day7(lv); REQUIRE(2031851 == p.first); REQUIRE(2568781 == p.second); } TEST_CASE("Treetop Tree House", "[2022]") { line_view lv = load_file("../src/2022/day8/input"); auto p = aoc2022::day8(lv); REQUIRE(1546 == p.first); REQUIRE(519064 == p.second); } TEST_CASE("Rope Bridge", "[2022]") { line_view lv = load_file("../src/2022/day9/input"); auto p = aoc2022::day9(lv); REQUIRE(6212 == p.first); REQUIRE(2522 == p.second); } TEST_CASE("Cathode-Ray Tube", "[2022]") { line_view lv = load_file("../src/2022/day10/input"); auto p = aoc2022::day10(lv); REQUIRE(15680 == p.first); REQUIRE(0 == p.second); } TEST_CASE("Monkey in the Middle", "[2022]") { line_view lv = load_file("../src/2022/day11/input"); auto p = aoc2022::day11(lv); REQUIRE(107822 == p.first); REQUIRE(27267163742 == p.second); } TEST_CASE("Hill Climbing Algorithm", "[2022]") { line_view lv = load_file("../src/2022/day12/input"); auto p = aoc2022::day12(lv); REQUIRE(339 == p.first); REQUIRE(332 == p.second); } TEST_CASE("Distress Signal", "[2022]") { line_view lv = load_file("../src/2022/day13/input"); auto p = aoc2022::day13(lv); REQUIRE(5003 == p.first); REQUIRE(20280 == p.second); } TEST_CASE("Regolith Reservoir", "[2022]") { line_view lv = load_file("../src/2022/day14/input"); auto p = aoc2022::day14(lv); REQUIRE(1133 == p.first); REQUIRE(27566 == p.second); } TEST_CASE("Beacon Exclusion Zone", "[2022]") { line_view lv = load_file("../src/2022/day15/input"); auto p = aoc2022::day15(lv); REQUIRE(6078701 == p.first); REQUIRE(12567351400528 == p.second); } TEST_CASE("Proboscidea Volcanium", "[2022]") { line_view lv = load_file("../src/2022/day16/input"); auto p = aoc2022::day16(lv); REQUIRE(1796 == p.first); REQUIRE(1999 == p.second); } TEST_CASE("Pyroclastic Flow", "[2022]") { line_view lv = load_file("../src/2022/day17/input"); auto p = aoc2022::day17(lv); REQUIRE(3197 == p.first); REQUIRE(1568513119571 == p.second); } TEST_CASE("Boiling Boulders", "[2022]") { line_view lv = load_file("../src/2022/day18/input"); auto p = aoc2022::day18(lv); REQUIRE(3500 == p.first); REQUIRE(2048 == p.second); } TEST_CASE("Not Enough Minerals", "[2022]") { line_view lv = load_file("../src/2022/day19/input"); auto p = aoc2022::day19(lv); REQUIRE(1624 == p.first); REQUIRE(12628 == p.second); } TEST_CASE("Grove Positioning System", "[2022]") { line_view lv = load_file("../src/2022/day20/input"); auto p = aoc2022::day20(lv); REQUIRE(6712 == p.first); REQUIRE(1595584274798 == p.second); } TEST_CASE("Monkey Math", "[2022]") { line_view lv = load_file("../src/2022/day21/input"); auto p = aoc2022::day21(lv); REQUIRE(160274622817992 == p.first); REQUIRE(3087390115721 == p.second); } TEST_CASE("Monkey Map", "[2022]") { line_view lv = load_file("../src/2022/day22/input"); auto p = aoc2022::day22(lv); REQUIRE(75388 == p.first); REQUIRE(182170 == p.second); } TEST_CASE("Unstable Diffusion", "[2022]") { line_view lv = load_file("../src/2022/day23/input"); auto p = aoc2022::day23(lv); REQUIRE(3917 == p.first); // REQUIRE(988 == p.second); } // TEST_CASE("Blizzard Basin", "[2022]") { // line_view lv = load_file("../src/2022/day24/input"); // auto p = aoc2022::day24(lv); // REQUIRE(332 == p.first); // REQUIRE(942 == p.second); // } TEST_CASE("Full of Hot Air", "[2022]") { line_view lv = load_file("../src/2022/day25/input"); auto p = aoc2022::day25(lv); REQUIRE("20-1-0=-2=-2220=0011" == p.first); REQUIRE(0 == p.second); }