public Result First(List <string> input) { var station = new MonitoringStation(input); var position = station.FindBestPlace(); return(new Result(position.nr)); }
public async Task Part1_Example4() { // Arrange var subject = new MonitoringStation(); var input = @".#..##.###...####### ##.############..##. .#.######.########.# .###.#######.####.#. #####.##.#.##.###.## ..#####..#.######### #################### #.####....###.#.#.## ##.################# #####.##.###..####.. ..######..##.####### ####.##.####...##..# .#####..#.######.### ##...#.##########... #.##########.####### .####.#.###.###.#.## ....##.##.###..##### .#.#.###########.### #.#.#.#####.####.### ###.##.####.##.#..##"; // Act var result = await subject.SolvePart1Async(input.ToMemoryStream()); // Assert Assert.Equal(210.ToString(), result); }
public void TestPart2d() { var ms = new MonitoringStation(".#..##.###...#########.############..##..#.######.########.#.###.#######.####.#.#####.##.#.##.###.##..#####..#.##############################.####....###.#.#.####.######################.##.###..####....######..##.###########.##.####...##..#.#####..#.######.#####...#.##########...#.##########.#######.####.#.###.###.#.##....##.##.###..#####.#.#.###########.####.#.#.#####.####.######.##.####.##.#..##"); Assert.AreEqual(1009, ms.VaporiseOrder(201)); // Assert.AreEqual(1101, ms.VaporiseOrder(299)); }
public Result Second(List <string> input) { var station = new MonitoringStation(input); var value = station.RunLaser(); return(new Result(value)); }
public void TestDistance(double expected, double tol, double[] coord) { MonitoringStation ms = new MonitoringStation(); double d = ms.Distance(coord[0], coord[1], coord[2], coord[3]); Assert.That(Math.Abs(d - expected) <= tol, Is.EqualTo(true)); }
private void btn_day10_Click(object sender, RoutedEventArgs e) { MonitoringStation s = new MonitoringStation(); s.print(); Console.WriteLine("Button 10 clicked"); }
public void TestAngle(double expected, double tol, double[] coord) { MonitoringStation ms = new MonitoringStation(); double a = ms.Angle(coord[0], coord[1], coord[2], coord[3]); Console.WriteLine(a); Assert.That(Math.Abs(a - expected) <= tol, Is.EqualTo(true)); }
static void Main(string[] args) { var ms = new MonitoringStation("#..#.#.###.#...##.##.....#.#####.#.#.##.....##.###..#.###..###..#####..#####.#.#..#....#..##.##..#######.#####...#.###...##...#.#.###..###.#.#.#.######.....#.###..#.....##..##.#..#####...###.########.#..#####..#.#.#..###.###...##.##....##.###.###.##.#.#..####.....#.#..##..#..#.#..#####.######.##.#.#.#.#.#.#..###...##.##.###.##.#.###..####.##.#.#.####.#####.#.#..##...##..##..#.#.##.###...####.###.#.###.#.#..####.#####..#####.#.##..###..###..#..##...#.#.##.####...##....####.##.####..#..##.#.#....#..#..#..........#..#.#.####.###..###.###.#.#.#....##########.#######.#.##.##"); Console.WriteLine(ms.MaxVisible()); Console.WriteLine(ms.VaporiseOrder(200)); Console.ReadKey(); }
public string SolvePartOne(string[] input) { List <Asteroid> asteroids = GetAsteroidCoordinates(input); MonitoringStation ms = new MonitoringStation(); Asteroid a = ms.FindBestAsteroid(asteroids, out int observableAsteroids); return($"Best asteroid ({a.X},{a.Y}) can view {observableAsteroids} asteroids."); }
public TestResult Test2(List <string> input) { var station = new MonitoringStation(input); var value = station.RunLaser(); var expected = 802; bool succeded = value == expected; return(new TestResult(succeded, expected, value)); }
public TestResult Test(List <string> input) { var station = new MonitoringStation(input); var position = station.FindBestPlace(); var expected = 210; bool succeded = position.nr == expected; return(new TestResult(succeded, expected, position.nr)); }
public void TestPart2a() { var ms = new MonitoringStation(".#..##.###...#########.############..##..#.######.########.#.###.#######.####.#.#####.##.#.##.###.##..#####..#.##############################.####....###.#.#.####.######################.##.###..####....######..##.###########.##.####...##..#.#####..#.######.#####...#.##########...#.##########.#######.####.#.###.###.#.##....##.##.###..#####.#.#.###########.####.#.#.#####.####.######.##.####.##.#..##"); Assert.AreEqual(1112, ms.VaporiseOrder(1)); Assert.AreEqual(1201, ms.VaporiseOrder(2)); Assert.AreEqual(1202, ms.VaporiseOrder(3)); Assert.AreEqual(1208, ms.VaporiseOrder(10)); Assert.AreEqual(1600, ms.VaporiseOrder(20)); Assert.AreEqual(1609, ms.VaporiseOrder(50)); Assert.AreEqual(1016, ms.VaporiseOrder(100)); }
public string SolvePartTwo(string[] input, int toVaporize, int x, int y) { List <Asteroid> asteroids = GetAsteroidCoordinates(input); int index = asteroids.FindIndex(a => a.X == x && a.Y == y); Asteroid center = asteroids[index]; asteroids.RemoveAt(index); MonitoringStation ms = new MonitoringStation(); Asteroid lastVaporizedAsteroid = ms.Vaporize(center, asteroids, toVaporize); return((lastVaporizedAsteroid.X * 100 + lastVaporizedAsteroid.Y).ToString()); }
public async Task Part1_ConcreteExcercise() { // Arrange var subject = new MonitoringStation(); var input = @"#..#....#...#.#..#.......##.#.#### #......#..#.#..####.....#..#...##. .##.......#..#.#....#.#..#.#....#. ###..#.....###.#....##.....#...#.. ...#.##..#.###.......#....#....### .####...##...........##..#..#.##.. ..#...#.#.#.###....#.#...##.....#. ......#.....#..#...##.#..##.#..### ...###.#....#..##.#.#.#....#...### ..#.###.####..###.#.##..#.##.###.. ...##...#.#..##.#............##.## ....#.##.##.##..#......##......... .#..#.#..#.##......##...#.#.#...## .##.....#.#.##...#.#.#...#..###... #.#.#..##......#...#...#.......#.. #.......#..#####.###.#..#..#.#.#.. .#......##......##...#..#..#..###. #.#...#..#....##.#....#.##.#....#. ....#..#....##..#...##..#..#.#.##. #.#.#.#.##.#.#..###.......#....### ...#.#..##....###.####.#..#.#..#.. #....##..#...##.#.#.........##.#.. .#....#.#...#.#.........#..#...... ...#..###...#...#.#.#...#.#..##.## .####.##.#..#.#.#.#...#.##......#. .##....##..#.#.#.......#.....####. #.##.##....#...#..#.#..###..#.###. ...###.#..#.....#.#.#.#....#....#. ......#...#.........##....#....##. .....#.....#..#.##.#.###.#..##.... .#.....#.#.....#####.....##..#.... .####.##...#.......####..#....##.. .#.#.......#......#.##..##.#.#..## ......##.....##...##.##...##......"; // Act var result = await subject.SolvePart1Async(input.ToMemoryStream()); // Assert Assert.Equal(334.ToString(), result); }
public void TestStraightLine2() { var ms = new MonitoringStation("####...........#"); Assert.AreEqual(4, ms.MaxVisible()); }
public void TestGiven3() { var ms = new MonitoringStation("#.#...#.#..###....#..#....#...##.#.#.#.#....#.#.#..##..###.#..#...##....##....##......#....####.###."); Assert.AreEqual(35, ms.MaxVisible()); }
public void TestGiven5() { var ms = new MonitoringStation(".#..##.###...#########.############..##..#.######.########.#.###.#######.####.#.#####.##.#.##.###.##..#####..#.##############################.####....###.#.#.####.######################.##.###..####....######..##.###########.##.####...##..#.#####..#.######.#####...#.##########...#.##########.#######.####.#.###.###.#.##....##.##.###..#####.#.#.###########.####.#.#.#####.####.######.##.####.##.#..##"); Assert.AreEqual(210, ms.MaxVisible()); }
public async Task Part2_DetailedExample() { // Arrange var subject = new MonitoringStation(); var input = @".#..##.###...####### ##.############..##. .#.######.########.# .###.#######.####.#. #####.##.#.##.###.## ..#####..#.######### #################### #.####....###.#.#.## ##.################# #####.##.###..####.. ..######..##.####### ####.##.####...##..# .#####..#.######.### ##...#.##########... #.##########.####### .####.#.###.###.#.## ....##.##.###..##### .#.#.###########.### #.#.#.#####.####.### ###.##.####.##.#..##"; // Act var asteroids = await subject.GetAsteroidsAsync(input.ToMemoryStream()); var laser = subject.GetLaser(asteroids); var vaporized = subject.GetVaporizedAsteroids(asteroids, laser).ToList(); Assert.Equal(299, vaporized.Count); Assert.Equal(11, laser.Coord.X); Assert.Equal(13, laser.Coord.Y); // Assert Assert.Equal(11, vaporized[0].X); Assert.Equal(12, vaporized[0].Y); Assert.Equal(12, vaporized[1].X); Assert.Equal(1, vaporized[1].Y); Assert.Equal(12, vaporized[2].X); Assert.Equal(2, vaporized[2].Y); Assert.Equal(12, vaporized[9].X); Assert.Equal(8, vaporized[9].Y); Assert.Equal(16, vaporized[19].X); Assert.Equal(0, vaporized[19].Y); Assert.Equal(16, vaporized[49].X); Assert.Equal(9, vaporized[49].Y); Assert.Equal(10, vaporized[99].X); Assert.Equal(16, vaporized[99].Y); Assert.Equal(9, vaporized[198].X); Assert.Equal(6, vaporized[198].Y); Assert.Equal(8, vaporized[199].X); Assert.Equal(2, vaporized[199].Y); Assert.Equal(10, vaporized[200].X); Assert.Equal(9, vaporized[200].Y); Assert.Equal(11, vaporized[298].X); Assert.Equal(1, vaporized[298].Y); }
public void TestNegativeStraightLine() { var ms = new MonitoringStation("...#..#..#..#..."); Assert.AreEqual(2, ms.MaxVisible()); }
public void TestHorizontalLine() { var ms = new MonitoringStation("####............"); Assert.AreEqual(2, ms.MaxVisible()); }