Example #1
0
        public void TestRotation()
        {
            const string input = @".#....#####...#..
                                   ##...##.#####..##
                                   ##...#...#.#####.
                                   ..#.....#...###..
                                   ..#.#.....#....##";

            var asteroids = MonitorStation.Parse(input);

            var station = MonitorStation.GetBestStation(asteroids);

            Assert.AreEqual(Tuple.Create(8, 3), station);

            var firstAsteroidDestroyed = MonitorStation.DestroyAsteroid(asteroids, 1);

            Assert.AreEqual(Tuple.Create(8, 1), firstAsteroidDestroyed);

            var secondAsteroidDestroyed = MonitorStation.DestroyAsteroid(asteroids, 2);

            Assert.AreEqual(Tuple.Create(9, 0), secondAsteroidDestroyed);

            var ninthAsteroidDestroyed = MonitorStation.DestroyAsteroid(asteroids, 9);

            Assert.AreEqual(Tuple.Create(15, 1), ninthAsteroidDestroyed);

            var nthAsteroidDestroyed = MonitorStation.DestroyAsteroid(asteroids, 36);

            Assert.AreEqual(Tuple.Create(14, 3), nthAsteroidDestroyed);
        }
Example #2
0
        public void TestStation()
        {
            var parsedInput = MonitorStation.Parse(_testInput);

            var station = MonitorStation.GetBestStation(parsedInput);

            Assert.AreEqual(Tuple.Create(3, 4), station);
        }
Example #3
0
        public void TestParseStation()
        {
            var field = MonitorStation.Parse(_testInput);

            var expected = new List <Tuple <int, int> >
            {
                Tuple.Create(1, 0),
                Tuple.Create(4, 0),
                Tuple.Create(0, 2),
                Tuple.Create(1, 2),
                Tuple.Create(2, 2),
                Tuple.Create(3, 2),
                Tuple.Create(4, 2),
                Tuple.Create(4, 3),
                Tuple.Create(3, 4),
                Tuple.Create(4, 4)
            };

            Assert.AreEqual(expected, field);
        }