namespace AdventOfCode2023Tests { public class Tests { #region Day1 [Test] public void Day1_1Test() { var day1_1 = new Day1_1("1abc2\r\npqr3stu8vwx\r\na1b2c3d4e5f\r\ntreb7uchet"); Assert.That(day1_1.Execute(), Is.EqualTo("142")); } [Test] public void Day1_2Test() { var day1_2 = new Day1_2("two1nine\r\neightwothree\r\nabcone2threexyz\r\nxtwone3four\r\n4nineeightseven2\r\nzoneight234\r\n7pqrstsixteen"); Assert.That(day1_2.Execute(), Is.EqualTo("281")); } [Test] public void Day1_2CustomTest() { var day1_2 = new Day1_2("1oneight"); Assert.That(day1_2.Execute(), Is.EqualTo("18")); } #endregion #region Day2 [Test] public void Day2_1Test() { var day2_1 = new Day2_1("Game 1: 3 blue, 4 red; 1 red, 2 green, 6 blue; 2 green\r\nGame 2: 1 blue, 2 green; 3 green, 4 blue, 1 red; 1 green, 1 blue\r\nGame 3: 8 green, 6 blue, 20 red; 5 blue, 4 red, 13 green; 5 green, 1 red\r\nGame 4: 1 green, 3 red, 6 blue; 3 green, 6 red; 3 green, 15 blue, 14 red\r\nGame 5: 6 red, 1 blue, 3 green; 2 blue, 1 red, 2 green"); Assert.That(day2_1.Execute(), Is.EqualTo("8")); } [Test] public void Day2_2Test() { var day2_2 = new Day2_2("Game 1: 3 blue, 4 red; 1 red, 2 green, 6 blue; 2 green\r\nGame 2: 1 blue, 2 green; 3 green, 4 blue, 1 red; 1 green, 1 blue\r\nGame 3: 8 green, 6 blue, 20 red; 5 blue, 4 red, 13 green; 5 green, 1 red\r\nGame 4: 1 green, 3 red, 6 blue; 3 green, 6 red; 3 green, 15 blue, 14 red\r\nGame 5: 6 red, 1 blue, 3 green; 2 blue, 1 red, 2 green"); Assert.That(day2_2.Execute(), Is.EqualTo("2286")); } [Test] public void Day2_2_ExplodedTest() { var day2_2 = new Day2_2("Game 1: 3 blue, 4 red; 1 red, 2 green, 6 blue; 2 green"); var day2_2_Game1 = day2_2.Execute(); day2_2 = new Day2_2("Game 2: 1 blue, 2 green; 3 green, 4 blue, 1 red; 1 green, 1 blue"); var day2_2_Game2 = day2_2.Execute(); day2_2 = new Day2_2("Game 3: 8 green, 6 blue, 20 red; 5 blue, 4 red, 13 green; 5 green, 1 red"); var day2_2_Game3 = day2_2.Execute(); day2_2 = new Day2_2("Game 4: 1 green, 3 red, 6 blue; 3 green, 6 red; 3 green, 15 blue, 14 red"); var day2_2_Game4 = day2_2.Execute(); day2_2 = new Day2_2("Game 5: 6 red, 1 blue, 3 green; 2 blue, 1 red, 2 green"); var day2_2_Game5 = day2_2.Execute(); Assert.That(day2_2_Game1, Is.EqualTo("48")); Assert.That(day2_2_Game2, Is.EqualTo("12")); Assert.That(day2_2_Game3, Is.EqualTo("1560")); Assert.That(day2_2_Game4, Is.EqualTo("630")); Assert.That(day2_2_Game5, Is.EqualTo("36")); } #endregion #region Day3 [Test] public void Day3_1Test() { var day3_1 = new Day3_1("467..114..\r\n...*......\r\n..35..633.\r\n......#...\r\n617*......\r\n.....+.58.\r\n..592.....\r\n......755.\r\n...$.*....\r\n.664.598.."); Assert.That(day3_1.Execute(), Is.EqualTo("4361")); } [Test] public void Day3_2Test() { var day3_2 = new Day3_2("467..114..\r\n...*......\r\n..35..633.\r\n......#...\r\n617*......\r\n.....+.58.\r\n..592.....\r\n......755.\r\n...$.*....\r\n.664.598.."); Assert.That(day3_2.Execute(), Is.EqualTo("467835")); } #endregion #region Day4 [Test] public void Day4_1Test() { var day4_1 = new Day4_1("Card 1: 41 48 83 86 17 | 83 86 6 31 17 9 48 53\r\nCard 2: 13 32 20 16 61 | 61 30 68 82 17 32 24 19\r\nCard 3: 1 21 53 59 44 | 69 82 63 72 16 21 14 1\r\nCard 4: 41 92 73 84 69 | 59 84 76 51 58 5 54 83\r\nCard 5: 87 83 26 28 32 | 88 30 70 12 93 22 82 36\r\nCard 6: 31 18 13 56 72 | 74 77 10 23 35 67 36 11"); Assert.That(day4_1.Execute(), Is.EqualTo("13")); } [Test] public void Day4_2Test() { var day4_2 = new Day4_2("Card 1: 41 48 83 86 17 | 83 86 6 31 17 9 48 53\r\nCard 2: 13 32 20 16 61 | 61 30 68 82 17 32 24 19\r\nCard 3: 1 21 53 59 44 | 69 82 63 72 16 21 14 1\r\nCard 4: 41 92 73 84 69 | 59 84 76 51 58 5 54 83\r\nCard 5: 87 83 26 28 32 | 88 30 70 12 93 22 82 36\r\nCard 6: 31 18 13 56 72 | 74 77 10 23 35 67 36 11"); Assert.That(day4_2.Execute(), Is.EqualTo("30")); } #endregion #region Day5 [Test] public void Day5_1Test() { var day5_1 = new Day5_1("seeds: 79 14 55 13\r\n\r\nseed-to-soil map:\r\n50 98 2\r\n52 50 48\r\n\r\nsoil-to-fertilizer map:\r\n0 15 37\r\n37 52 2\r\n39 0 15\r\n\r\nfertilizer-to-water map:\r\n49 53 8\r\n0 11 42\r\n42 0 7\r\n57 7 4\r\n\r\nwater-to-light map:\r\n88 18 7\r\n18 25 70\r\n\r\nlight-to-temperature map:\r\n45 77 23\r\n81 45 19\r\n68 64 13\r\n\r\ntemperature-to-humidity map:\r\n0 69 1\r\n1 0 69\r\n\r\nhumidity-to-location map:\r\n60 56 37\r\n56 93 4"); Assert.That(day5_1.Execute(), Is.EqualTo("35")); } [Test] public void Day5_2Test() { var day5_2 = new Day5_2("seeds: 79 14 55 13\r\n\r\nseed-to-soil map:\r\n50 98 2\r\n52 50 48\r\n\r\nsoil-to-fertilizer map:\r\n0 15 37\r\n37 52 2\r\n39 0 15\r\n\r\nfertilizer-to-water map:\r\n49 53 8\r\n0 11 42\r\n42 0 7\r\n57 7 4\r\n\r\nwater-to-light map:\r\n88 18 7\r\n18 25 70\r\n\r\nlight-to-temperature map:\r\n45 77 23\r\n81 45 19\r\n68 64 13\r\n\r\ntemperature-to-humidity map:\r\n0 69 1\r\n1 0 69\r\n\r\nhumidity-to-location map:\r\n60 56 37\r\n56 93 4"); Assert.That(day5_2.Execute(), Is.EqualTo("46")); } #endregion } }