From ea65c5d830ce3384057bc6f2f7f33ef4672a39dd Mon Sep 17 00:00:00 2001 From: Stevan Freeborn <65925598+StevanFreeborn@users.noreply.github.com> Date: Sat, 2 Dec 2023 11:12:26 -0600 Subject: [PATCH] feat: solved part 1 --- .../CubeConundrum.Tests.csproj | 6 +++++ 02/CubeConundrum.Tests/ProgramTests.cs | 11 +++++++++ 02/CubeConundrum/Program.cs | 23 ++++++++++++++++++- 3 files changed, 39 insertions(+), 1 deletion(-) create mode 100644 02/CubeConundrum.Tests/ProgramTests.cs diff --git a/02/CubeConundrum.Tests/CubeConundrum.Tests.csproj b/02/CubeConundrum.Tests/CubeConundrum.Tests.csproj index 2346b86..26a27fd 100644 --- a/02/CubeConundrum.Tests/CubeConundrum.Tests.csproj +++ b/02/CubeConundrum.Tests/CubeConundrum.Tests.csproj @@ -27,4 +27,10 @@ + + + PreserveNewest + + + diff --git a/02/CubeConundrum.Tests/ProgramTests.cs b/02/CubeConundrum.Tests/ProgramTests.cs new file mode 100644 index 0000000..5148b3d --- /dev/null +++ b/02/CubeConundrum.Tests/ProgramTests.cs @@ -0,0 +1,11 @@ +namespace CubeConundrum.Tests; + +public class ProgramTests +{ + [Fact] + public async Task Main_GivenInput_ItShouldReturnExpectedSum() + { + var result = await Program.Main(["INPUT.txt"]); + result.Should().Be(2879); + } +} \ No newline at end of file diff --git a/02/CubeConundrum/Program.cs b/02/CubeConundrum/Program.cs index 4b32802..b1d5b08 100644 --- a/02/CubeConundrum/Program.cs +++ b/02/CubeConundrum/Program.cs @@ -4,7 +4,28 @@ public class Program { public async static Task Main(string[] args) { - return await Task.FromResult(0); + if (args.Length is 0) + { + Console.WriteLine("Please provide a path to the input file."); + return 1; + } + + if (File.Exists(args[0]) is false) + { + Console.WriteLine("The provided file does not exist."); + return 2; + } + + var puzzleParser = new PuzzleParser(); + var puzzleSolver = new PartOnePuzzleSolver(); + + var input = await File.ReadAllLinesAsync(args[0]); + var games = input.Select(puzzleParser.ParseGame); + var result = puzzleSolver.SumPossibleGameIds(games); + + Console.WriteLine($"The sum of all possible game ids is {result}."); + + return result; } }