Files
AdventOfCode/AdventOfCode2023.Tests/Day02_Tests.cs

70 lines
2.5 KiB
C#

namespace AdventOfCode2023.Tests;
public class Day02_Tests
{
[Fact]
public void Game_FromString__ValidExample1()
{
Day02.Game game = Day02.Game.FromString("Game 1: 3 blue, 4 red; 1 red, 2 green, 6 blue; 2 green");
Assert.Equal(1, game.GameNumber);
Assert.Equal(3, game.Sets.Count);
Assert.Equal(4, game.Sets[0].Red);
Assert.Equal(3, game.Sets[0].Blue);
Assert.Equal(0, game.Sets[0].Green);
Assert.Equal(1, game.Sets[1].Red);
Assert.Equal(6, game.Sets[1].Blue);
Assert.Equal(2, game.Sets[1].Green);
Assert.Equal(0, game.Sets[2].Red);
Assert.Equal(0, game.Sets[2].Blue);
Assert.Equal(2, game.Sets[2].Green);
}
[Fact]
public void Game_FromString__ValidExample2()
{
Day02.Game game = Day02.Game.FromString("Game 3: 8 green, 6 blue, 20 red; 5 blue, 4 red, 13 green; 5 green, 1 red");
Assert.Equal(3, game.GameNumber);
Assert.Equal(3, game.Sets.Count);
Assert.Equal(20, game.Sets[0].Red);
Assert.Equal(6, game.Sets[0].Blue);
Assert.Equal(8, game.Sets[0].Green);
Assert.Equal(4, game.Sets[1].Red);
Assert.Equal(5, game.Sets[1].Blue);
Assert.Equal(13, game.Sets[1].Green);
Assert.Equal(1, game.Sets[2].Red);
Assert.Equal(0, game.Sets[2].Blue);
Assert.Equal(5, game.Sets[2].Green);
}
[Fact]
public void ResolvePart1__Example()
{
Day02 day = new();
string result = day.ResolvePart1([
"Game 1: 3 blue, 4 red; 1 red, 2 green, 6 blue; 2 green",
"Game 2: 1 blue, 2 green; 3 green, 4 blue, 1 red; 1 green, 1 blue",
"Game 3: 8 green, 6 blue, 20 red; 5 blue, 4 red, 13 green; 5 green, 1 red",
"Game 4: 1 green, 3 red, 6 blue; 3 green, 6 red; 3 green, 15 blue, 14 red",
"Game 5: 6 red, 1 blue, 3 green; 2 blue, 1 red, 2 green",
]);
Assert.Equal("8", result);
}
[Fact]
public void ResolvePart2__Example()
{
Day02 day = new();
string result = day.ResolvePart2([
"Game 1: 3 blue, 4 red; 1 red, 2 green, 6 blue; 2 green",
"Game 2: 1 blue, 2 green; 3 green, 4 blue, 1 red; 1 green, 1 blue",
"Game 3: 8 green, 6 blue, 20 red; 5 blue, 4 red, 13 green; 5 green, 1 red",
"Game 4: 1 green, 3 red, 6 blue; 3 green, 6 red; 3 green, 15 blue, 14 red",
"Game 5: 6 red, 1 blue, 3 green; 2 blue, 1 red, 2 green",
]);
Assert.Equal("2286", result);
}
}