public void ParseCoordinates_CoordinateInput_ReturnsCoordinate(string input, Coordinate expectedOutput) { // Arrange & Act var result = MoonMap.ParseCoordinate(input); // Assert result.ShouldBeEquivalentTo(expectedOutput); }
/// <summary> /// --- Day 12: The N-Body Problem --- /// https://adventofcode.com/2019/day/12 /// </summary> /// <param name="args"></param> public static void Main(string[] args) { if (args.Any(x => x.Equals("--help"))) { Console.WriteLine($"Provide the path to the position of moons .txt file (default: `{DefaultFilePath}`)"); Environment.Exit(Environment.ExitCode); } var moonCoordinateInput = args.FirstOrDefault(x => x.EndsWith(".txt")) ?? DefaultFilePath; var moonCoordinates = File.ReadAllLines(moonCoordinateInput) .Select(MoonMap.ParseCoordinate) .ToList(); var newCoordinates = MoonMap.SimulateSteps(moonCoordinates, 1000); Console.WriteLine($"Total energy: {MoonMap.CalculateEnergy(newCoordinates)}"); }
public void SimulateSteps_Coordinates_ReturnsNewCoordinates() { // Arrange var moonCoordinates = new List <Coordinate> { new Coordinate(-1, 0, 2), new Coordinate(2, -10, -7), new Coordinate(4, -8, 8), new Coordinate(3, 5, -1) }; // Act var result = MoonMap.SimulateSteps(moonCoordinates, 1); // Assert result.ShouldBeEquivalentTo(new List <Coordinate> { new Coordinate { X = (2, 3), Y = (-1, -1), Z = (1, -1) },