146 lines
6.2 KiB
C#
146 lines
6.2 KiB
C#
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
|
|
|
|
#region Day 6
|
|
|
|
[Test]
|
|
public void Day6_1Test()
|
|
{
|
|
var day6_1 = new Day6_1("Time: 7 15 30\r\nDistance: 9 40 200");
|
|
Assert.That(day6_1.Execute(), Is.EqualTo("288"));
|
|
}
|
|
|
|
[Test]
|
|
public void Day6_2Test()
|
|
{
|
|
var day6_2 = new Day6_2("Time: 7 15 30\r\nDistance: 9 40 200");
|
|
Assert.That(day6_2.Execute(), Is.EqualTo("71503"));
|
|
}
|
|
|
|
#endregion
|
|
}
|
|
} |