Beispiel #1
0
        public void  MapPoints_ValidWirePath_ReturnsCoordinates()
        {
            IList <string> wirePath = new List <string> {
                "U2", "R3", "D2", "L1"
            };
            IDictionary <int, HashSet <int> > expectedCoordinates = new Dictionary <int, HashSet <int> >()
            {
                { 0, new HashSet <int> {
                      1, 2
                  } },
                { 1, new HashSet <int> {
                      2
                  } },
                { 2, new HashSet <int> {
                      0, 2
                  } },
                { 3, new HashSet <int> {
                      0, 1, 2
                  } },
            };

            IDictionary <int, HashSet <int> > coordinates = cut.MapPoints(wirePath);

            Assert.IsTrue(CheckCoordinateEquality(expectedCoordinates, coordinates));
        }
Beispiel #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);
        }