示例#1
0
        public void ClosestManhattanDistance_ListOfIntersectionPoints_ReturnsClosestPoint()
        {
            IList <Point> intersectionPoints = new List <Point>()
            {
                new Point(10, 10, 0),
                new Point(20, 40, 0),
                new Point(15, 30, 0),
                new Point(2, 10, 0),
            };

            int closesDistance = cut.ClosestManhattanDistance(intersectionPoints);

            Assert.AreEqual(12, closesDistance);
        }
示例#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);
        }