コード例 #1
0
        public void WireManagerIntegrationTestThree_TwoWirePaths_ReturnsFewestSteps()
        {
            IList <string> wirePathOne = new List <string> {
                "R75", "D30", "R83", "U83", "L12", "D49", "R71", "U7", "L72"
            };
            IList <string> wirePathTwo = new List <string> {
                "U62", "R66", "U55", "R34", "D71", "R55", "D58", "R83"
            };

            IDictionary <int, HashSet <int> > coordinates = cut.MapPoints(wirePathOne);
            IList <Point> intersectionPoints = cut.LocateIntersectionPoints(coordinates, wirePathTwo);

            cut.SetFirstWireStepsToIntersectionPoints(intersectionPoints, wirePathOne);
            int fewestSteps = cut.FewestTotalSteps(intersectionPoints);

            Assert.AreEqual(610, fewestSteps);
        }
コード例 #2
0
        public void Initialize()
        {
            IList <string> wirePaths   = FileUtil.ReadAllLines("day_3_wire_paths.txt");
            IList <string> wirePathOne = wirePaths[0].Split(",");
            IList <string> wirePathTwo = wirePaths[1].Split(",");

            IDictionary <int, HashSet <int> > coordinates = wireManager.MapPoints(wirePathOne);
            IList <Point> intersectionPoints = wireManager.LocateIntersectionPoints(coordinates, wirePathTwo);

            wireManager.SetFirstWireStepsToIntersectionPoints(intersectionPoints, wirePathOne);

            int closestDistance = wireManager.ClosestManhattanDistance(intersectionPoints);
            int fewestSteps     = wireManager.FewestTotalSteps(intersectionPoints);

            WriteClosestDistanceAndFewestSteps(closestDistance, fewestSteps);
        }