#include "2018/day1/aoc.h" #include "2018/day2/aoc.h" #include "2018/day3/aoc.h" #include "2018/day4/aoc.h" #include "2018/day5/aoc.h" #include "2018/day6/aoc.h" #include "2018/day7/aoc.h" #include "2018/day8/aoc.h" #include "2018/day9/aoc.h" #include "2018/day10/aoc.h" #include "2018/day11/aoc.h" #include "2018/day12/aoc.h" #include "2018/day13/aoc.h" #include "2018/day14/aoc.h" #include "2018/day15/aoc.h" #include "2018/day16/aoc.h" #include "2018/day17/aoc.h" #include "2018/day18/aoc.h" #include "2018/day19/aoc.h" #include "2018/day20/aoc.h" #include "2018/day21/aoc.h" #include "2018/day22/aoc.h" #include "2018/day23/aoc.h" #include "2018/day24/aoc.h" #include "2018/day25/aoc.h" #include "catch.hpp" #include #include TEST_CASE("Chronal Calibration", "[2018]") { line_view lv = load_file("../src/2018/day1/input"); REQUIRE(522 == aoc2018::day1(lv)); REQUIRE(73364 == aoc2018::day1part2(lv)); // REQUIRE(10 == aoc2018::day1part2("+3\n+3\n+4\n-2\n-4")); // REQUIRE(5 == aoc2018::day1part2("-6\n+3\n+8\n+5\n-6")); // REQUIRE(14 == aoc2018::day1part2("+7\n+7\n-2\n-7\n-4")); } TEST_CASE("Inventory Management System", "[2018]") { line_view lv = load_file("../src/2018/day2/input"); char common[26] = {0}; auto p = aoc2018::day2(lv, common); REQUIRE(6642 == p); REQUIRE(strcmp("cvqlbidheyujgtrswxmckqnap", common) == 0); } TEST_CASE("No Matter How You Slice It", "[2018]") { line_view lv = load_file("../src/2018/day3/input"); auto p = aoc2018::day3(lv, 1); REQUIRE(109785 == p.first); REQUIRE(504 == p.second); } TEST_CASE("Repose Record", "[2018]") { line_view lv = load_file("../src/2018/day4/input"); auto p = aoc2018::day4(lv); REQUIRE(14346 == p.first); REQUIRE(5705 == p.second); } TEST_CASE("Alchemical Reduction", "[2018]") { line_view lv = load_file("../src/2018/day5/input"); auto p = aoc2018::day5(lv); REQUIRE(11042 == p.first); REQUIRE(6872 == p.second); } TEST_CASE("Chronal Coordinates", "[2018]") { line_view lv = load_file("../src/2018/day6/input"); auto p = aoc2018::day6(lv, 10000); REQUIRE(3260 == p.first); REQUIRE(42535 == p.second); } TEST_CASE("The Sum of Its Parts", "[2018]") { // line_view lv = load_file("../src/2018/day7/input0"); line_view lv = load_file("../src/2018/day7/input"); char sequence[100] = {0}; REQUIRE(941 == aoc2018::day7(lv, sequence)); REQUIRE(strcmp("BGKDMJCNEQRSTUZWHYLPAFIVXO", sequence) == 0); } TEST_CASE("Memory Maneuver", "[2018]") { line_view lv = load_file("../src/2018/day8/input"); auto p = aoc2018::day8(lv); REQUIRE(36891 == p.first); REQUIRE(20083 == p.second); // auto p = aoc2018::day8("2 3 0 3 10 11 12 1 1 0 1 99 2 1 1 2"); // REQUIRE(138 == p.first); } TEST_CASE("Marble Mania", "[2018]") { REQUIRE(425688 == aoc2018::day9(411, 71170)); REQUIRE(3526561003 == aoc2018::day9(411, 7117000)); } TEST_CASE("", "[2018]") { line_view lv = load_file("../src/2018/day10/input"); auto p = aoc2018::day10(lv); REQUIRE(0 == p.first); REQUIRE(0 == p.second); } TEST_CASE("", "[2018]") { line_view lv = load_file("../src/2018/day11/input"); auto p = aoc2018::day11(lv); REQUIRE(0 == p.first); REQUIRE(0 == p.second); } TEST_CASE("", "[2018]") { line_view lv = load_file("../src/2018/day12/input"); auto p = aoc2018::day12(lv); REQUIRE(0 == p.first); REQUIRE(0 == p.second); } TEST_CASE("", "[2018]") { line_view lv = load_file("../src/2018/day13/input"); auto p = aoc2018::day13(lv); REQUIRE(0 == p.first); REQUIRE(0 == p.second); } TEST_CASE("", "[2018]") { line_view lv = load_file("../src/2018/day14/input"); auto p = aoc2018::day14(lv); REQUIRE(0 == p.first); REQUIRE(0 == p.second); } TEST_CASE("", "[2018]") { line_view lv = load_file("../src/2018/day15/input"); auto p = aoc2018::day15(lv); REQUIRE(0 == p.first); REQUIRE(0 == p.second); } TEST_CASE("", "[2018]") { line_view lv = load_file("../src/2018/day16/input"); auto p = aoc2018::day16(lv); REQUIRE(0 == p.first); REQUIRE(0 == p.second); } TEST_CASE("", "[2018]") { line_view lv = load_file("../src/2018/day17/input"); auto p = aoc2018::day17(lv); REQUIRE(0 == p.first); REQUIRE(0 == p.second); } TEST_CASE("", "[2018]") { line_view lv = load_file("../src/2018/day18/input"); auto p = aoc2018::day18(lv); REQUIRE(0 == p.first); REQUIRE(0 == p.second); } TEST_CASE("", "[2018]") { line_view lv = load_file("../src/2018/day19/input"); auto p = aoc2018::day19(lv); REQUIRE(0 == p.first); REQUIRE(0 == p.second); } TEST_CASE("", "[2018]") { line_view lv = load_file("../src/2018/day20/input"); auto p = aoc2018::day20(lv); REQUIRE(0 == p.first); REQUIRE(0 == p.second); } TEST_CASE("", "[2018]") { line_view lv = load_file("../src/2018/day21/input"); auto p = aoc2018::day21(lv); REQUIRE(0 == p.first); REQUIRE(0 == p.second); } TEST_CASE("", "[2018]") { line_view lv = load_file("../src/2018/day22/input"); auto p = aoc2018::day22(lv); REQUIRE(0 == p.first); REQUIRE(0 == p.second); } TEST_CASE("", "[2018]") { line_view lv = load_file("../src/2018/day23/input"); auto p = aoc2018::day23(lv); REQUIRE(0 == p.first); REQUIRE(0 == p.second); } TEST_CASE("", "[2018]") { line_view lv = load_file("../src/2018/day24/input"); auto p = aoc2018::day24(lv); REQUIRE(0 == p.first); REQUIRE(0 == p.second); } TEST_CASE("", "[2018]") { line_view lv = load_file("../src/2018/day25/input"); auto p = aoc2018::day25(lv); REQUIRE(0 == p.first); REQUIRE(0 == p.second); }