AIO commit

Sorry for the late commit, forgot to commit and push it on Saturday 7th.
Thank god there are moodle reminders
This commit is contained in:
MarcUs7i 2024-12-31 23:47:08 +01:00
parent 3083dbce7f
commit 2e6b418fef
24 changed files with 5790 additions and 1 deletions

View file

@ -0,0 +1,22 @@
namespace AdventOfCode.Test;
public sealed class Day1Test
{
private string _input = "3 4\n4 3\n2 5\n1 3\n3 9\n3 3";
[Fact]
public void Part1()
{
var day1 = new Day1();
var result = day1.Part1(_input);
Assert.Equal(11, result);
}
[Fact]
public void Part2()
{
var day1 = new Day1();
var result = day1.Part2(_input);
Assert.Equal(31, result);
}
}

View file

@ -0,0 +1,22 @@
namespace AdventOfCode.Test;
public sealed class Day2Test
{
private string _input = "7 6 4 2 1\n1 2 7 8 9\n9 7 6 2 1\n1 3 2 4 5\n8 6 4 4 1\n1 3 6 7 9";
[Fact]
public void Part1()
{
var day2 = new Day2();
var result = day2.Part1(_input);
Assert.Equal(2, result);
}
[Fact]
public void Part2()
{
var day2 = new Day2();
var result = day2.Part2(_input);
Assert.Equal(4, result);
}
}

View file

@ -0,0 +1,28 @@
namespace AdventOfCode.Test;
public sealed class Day3Test
{
[Fact]
public void Part1()
{
const string Input = "xmul(2,4)%&mul[3,7]!@^do_not_mul(5,5)+mul(32,64]then(mul(11,8)mul(8,5))";
const int Expected = 161;
var day3 = new Day3();
var result = day3.Part1(Input);
Assert.Equal(Expected, result);
}
[Fact]
public void Part2()
{
const string Input = "xmul(2,4)&mul[3,7]!^don't()_mul(5,5)+mul(32,64](mul(11,8)undo()?mul(8,5))";
const int Expected = 48;
var day3 = new Day3();
var result = day3.Part2(Input);
Assert.Equal(Expected, result);
}
}

View file

@ -0,0 +1,28 @@
namespace AdventOfCode.Test;
public sealed class Day4Test
{
[Fact]
public void Part1()
{
const string Input = "MMMSXXMASM\nMSAMXMSMSA\nAMXSXMAAMM\nMSAMASMSMX\nXMASAMXAMM\nXXAMMXXAMA\nSMSMSASXSS\nSAXAMASAAA\nMAMMMXMMMM\nMXMXAXMASX";
const int Expected = 18;
var day4 = new Day4();
var result = day4.Part1(Input);
Assert.Equal(Expected, result);
}
[Fact]
public void Part2()
{
const string Input = ".M.S......\n..A..MSMS.\n.M.S.MAA..\n..A.ASMSM.\n.M.S.M....\n..........\nS.S.S.S.S.\n.A.A.A.A..\nM.M.M.M.M.\n..........";
const int Expected = 9;
var day4 = new Day4();
var result = day4.Part2(Input);
Assert.Equal(Expected, result);
}
}

View file

@ -0,0 +1,29 @@
namespace AdventOfCode.Test;
public sealed class Day5Test
{
private string input
= "47|53\r\n97|13\r\n97|61\r\n97|47\r\n75|29\r\n61|13\r\n75|53\r\n29|13\r\n97|29\r\n53|29\r\n61|53\r\n97|53\r\n61|29\r\n47|13\r\n75|47\r\n97|75\r\n47|61\r\n75|61\r\n47|29\r\n75|13\r\n53|13\r\n\r\n75,47,61,53,29\r\n97,61,53,29,13\r\n75,29,13\r\n75,97,47,61,53\r\n61,13,29\r\n97,13,75,29,47";
[Fact]
public void Part1()
{
const int Expected = 143;
var day5 = new Day5();
var result = day5.Part1(input);
Assert.Equal(Expected, result);
}
[Fact]
public void Part2()
{
const int Expected = 123;
var day5 = new Day5();
var result = day5.Part2(input);
Assert.Equal(Expected, result);
}
}

View file

@ -0,0 +1,28 @@
namespace AdventOfCode.Test;
public sealed class Day6Test
{
private const string Input = "....#.....\r\n.........#\r\n..........\r\n..#.......\r\n.......#..\r\n..........\r\n.#..^.....\r\n........#.\r\n#.........\r\n......#...";
[Fact]
public void Part1()
{
const int Expected = 41;
var day = new Day6();
var result = day.Part1(Input);
Assert.Equal(Expected, result);
}
[Fact]
public void Part2()
{
const int Expected = 6;
var day = new Day6();
var result = day.Part2(Input);
Assert.Equal(Expected, result);
}
}

View file

@ -0,0 +1,24 @@
namespace AdventOfCode.Test;
public sealed class Day7Test
{
private string input = "190: 10 19\r\n3267: 81 40 27\r\n83: 17 5\r\n156: 15 6\r\n7290: 6 8 6 15\r\n161011: 16 10 13\r\n192: 17 8 14\r\n21037: 9 7 18 13\r\r\n292: 11 6 16 20";
[Fact]
public void TestPart1()
{
const int Expected = 3749;
var day = new Day7();
Assert.Equal(Expected, day.Part1(input));
}
[Fact]
public void TestPart2()
{
const int Expected = 11387;
var day = new Day7();
Assert.Equal(Expected, day.Part2(input));
}
}