Exemplo n.º 1
0
        public void ParseCoordinates_CoordinateInput_ReturnsCoordinate(string input, Coordinate expectedOutput)
        {
            // Arrange & Act
            var result = MoonMap.ParseCoordinate(input);

            // Assert
            result.ShouldBeEquivalentTo(expectedOutput);
        }
Exemplo n.º 2
0
        /// <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)}");
        }
Exemplo n.º 3
0
        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)
                },