private void btn_day6_Click(object sender, RoutedEventArgs e) { UniversalOrbitMap map = new UniversalOrbitMap(); Console.WriteLine("Task 1 answer = " + map.solveTask1()); Console.WriteLine("Task 2 answer = " + map.solveTask2()); }
private static void Day06_B() { const string defaultFilename = "UniversalOrbitMap.txt"; try { string fullFilename = Path.Combine(Environment.CurrentDirectory, "Day06", defaultFilename); Console.WriteLine(); Console.WriteLine($"Loading universal orbit map from '{fullFilename}'..."); Console.WriteLine(); var factory = new Factory(); UniversalOrbitMap orbitMap = factory.CreateUniversalOrbitMapFromFile(fullFilename); Console.WriteLine($"There are #{orbitMap.Objects.Count} space objects defined on the map."); Console.WriteLine(); int numberOfOrbits = orbitMap.NumberOfOrbits; Console.WriteLine($"There #{numberOfOrbits} direct or indirect defined orbits."); Console.WriteLine(); string spaceObject1 = "YOU"; string spaceObject2 = "SAN"; (bool hasB, int minimumOrbitalTransfer) = orbitMap.MinimumOrbitalTransfer(spaceObject1, spaceObject2); Console.WriteLine($"The minimum orbital transfer(s) to go from '{spaceObject1}' to '{spaceObject2}' is(are) #{minimumOrbitalTransfer} [found: '{hasB}']."); Console.WriteLine(); } catch (Exception ex) { Console.WriteLine($"An error occured '{ex.Message}'.{Environment.NewLine}Details: '{ex}'"); } }
// == == == == == Puzzle 2 == == == == == public static string Puzzle2(string input) { var orbits = input.Split(Environment.NewLine); var uom = new UniversalOrbitMap(orbits); return(uom.FindMinimumOrbitalTransfersRequired("YOU", "SAN").ToString()); }
// == == == == == Puzzle 1 == == == == == public static string Puzzle1(string input) { var orbits = input.Split(Environment.NewLine); var uom = new UniversalOrbitMap(orbits); return(uom.CalculateTotalNumberOfOrbits().ToString()); }
public async Task Part2_DetailedExample() { // Arrange var subject = new UniversalOrbitMap(); var input = @"COM)B B)C C)D D)E E)F B)G G)H D)I E)J J)K K)L K)YOU I)SAN"; // Act var result = await subject.SolvePart2Async(input.ToMemoryStream()); // Assert Assert.Equal("4", result); }
private static void Day06_A() { const string defaultFilename = "UniversalOrbitMap.txt"; try { string fullFilename = Path.Combine(Environment.CurrentDirectory, "Day06", defaultFilename); Console.WriteLine(); Console.WriteLine($"Loading universal orbit map from '{fullFilename}'..."); Console.WriteLine(); var factory = new Factory(); UniversalOrbitMap orbitMap = factory.CreateUniversalOrbitMapFromFile(fullFilename); Console.WriteLine($"There are #{orbitMap.Objects.Count} space objects defined on the map."); Console.WriteLine(); int numberOfOrbits = orbitMap.NumberOfOrbits; Console.WriteLine($"There #{numberOfOrbits} direct or indirect defined orbits."); Console.WriteLine(); } catch (Exception ex) { Console.WriteLine($"An error occured '{ex.Message}'.{Environment.NewLine}Details: '{ex}'"); } }
public void PuzzleOne() { var lines = File.ReadAllLines("tests/y2019/Day6.Input.txt"); var map = UniversalOrbitMap.CreateMapFromLines(lines); Assert.Equal(268504, map.CountOrbits()); }
public void PuzzleTwo() { var lines = File.ReadAllLines("tests/y2019/Day6.Input.txt"); var map = UniversalOrbitMap.CreateMapFromLines(lines); var path = map.GetPathBetween("SAN", "YOU"); Assert.Equal(409, path.Count() - 1); }
public void Test2() { string input = "COM)B,B)C,C)D,D)E,E)F,B)G,G)H,D)I,E)J,J)K,K)L,K)YOU,I)SAN"; string[] inputs = input.Split(','); UniversalOrbitMap orbitMap = new UniversalOrbitMap(inputs); Assert.AreEqual(4, orbitMap.OrbitTransfersRequired("YOU", "SAN")); }
public void UniversalOrbitMap_AllPlanetsOf_Works() { var orbits = UniversalOrbitMap.Parse(testOrbits); var allPlanetsQuery = from planet in orbits.AllPlanetsOf("L") select planet; Assert.Equal( new string[] { "K", "J", "E", "D", "C", "B", "COM" }, allPlanetsQuery.ToArray() ); }
public void UniversalOrbitMap_Parse_Works() { var orbits = UniversalOrbitMap.Parse(testOrbits); Assert.Equal("COM", orbits.PlanetOf("B")); Assert.Equal("E", orbits.PlanetOf("J")); Assert.Equal("E", orbits.PlanetOf("F")); Assert.Equal(new HashSet <string> { "E", "I" }, orbits.MoonsOf("D")); }
public void TotalNumberOfDirectAndIndirectOrbits() { var map = new List <string> { "COM)B", "B)C", "C)D", "D)E", "E)F", "B)G", "G)H", "D)I", "E)J", "J)K", "K)L" }; var universalOrbitMap = new UniversalOrbitMap(map); var total = universalOrbitMap.GetTotalNumberDirectAndIndirectOrbits(); Assert.AreEqual(42, total); }
public async Task Part1_ConcrateExcercise() { // Arrange var subject = new UniversalOrbitMap(); using var input = File.OpenRead("Day6/Input.txt"); // Act var result = await subject.SolvePart1Async(input); // Assert Assert.Equal("160040", result); }
public void Test1() { string input = "COM)B,B)C,C)D,D)E,E)F,B)G,G)H,D)I,E)J,J)K,K)L"; string[] inputs = input.Split(','); UniversalOrbitMap orbitMap = new UniversalOrbitMap(inputs); Assert.AreEqual(3, orbitMap.ObjectsInSpace["D"].GetOrbits()); Assert.AreEqual(7, orbitMap.ObjectsInSpace["L"].GetOrbits()); Assert.AreEqual(0, orbitMap.ObjectsInSpace["COM"].GetOrbits()); Assert.AreEqual(42, orbitMap.GetTotalOrbits()); }
public void UniversalOrbitMap_Add_Works() { var orbits = new UniversalOrbitMap(); orbits.Add("A", "B"); orbits.Add("A", "C"); Assert.Equal("A", orbits.PlanetOf("B")); Assert.Equal("A", orbits.PlanetOf("C")); Assert.Equal(new HashSet <string> { "B", "C" }, orbits.MoonsOf("A")); }
private Tree <String> CreateNextSample() { var lines = new[] { "COM)B", "B)C", "C)D", "D)E", "E)F", "B)G", "G)H", "D)I", "E)J", "J)K", "K)L", "K)YOU", "I)SAN" }; return(UniversalOrbitMap.CreateMapFromLines(lines)); }
public void TreeConstruct() { var lines = new[] { "COM)B", "B)C", "C)D", "D)E", "E)F", "B)G", "G)H", "D)I", "E)J", "J)K", "K)L", }; var map = UniversalOrbitMap.CreateMapFromLines(lines); Assert.Equal(42, map.CountOrbits()); }
public async Task Part1_DetailedExampleNotOrderedInput() { // Arrange var subject = new UniversalOrbitMap(); var input = @"G)H B)C C)D D)E COM)B E)F J)K D)I E)J B)G K)L"; // Act var result = await subject.SolvePart1Async(input.ToMemoryStream()); // Assert Assert.Equal("42", result); }
public void TestInitialize() { _universalOrbitMap = new UniversalOrbitMap(); }
public void UniversalOrbitMap_Checksum_Works() { var orbits = UniversalOrbitMap.Parse(testOrbits); Assert.Equal(42, orbits.Checksum()); }
public void TestCleanup() { _universalOrbitMap = null; }
public void UniversalOrbitMap_MinimalTransfersCount_Works() { var orbits = UniversalOrbitMap.Parse(testOrbits2); Assert.Equal(4, orbits.MinimalTransfersCount()); }
public NavSystem() { _universalOrbitMap = new UniversalOrbitMap(DownloadMap()); }