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)); }
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); }