public void Run() { Console.WriteLine("Choose file:"); // Prompt Console.WriteLine("1 - routes.txt"); // Prompt Console.WriteLine("2 - movies.txt"); // Prompt //Console.WriteLine("3 - largeG.zip"); // Prompt Console.WriteLine("or quit"); // Prompt var fileNumber = Console.ReadLine(); string fileName; char delimiter; string source; List <string> names; switch (fileNumber) { case "1": fileName = "routes.txt"; delimiter = '\u0020'; source = "JFK"; names = new List <string> { "LAS", "DFW", "EWR" }; break; case "2": fileName = "movies.txt"; delimiter = '/'; source = "Bacon, Kevin"; names = new List <string> { "Kidman, Nicole", "Grant, Cary" }; break; //case "3": // fieName = "largeG.zip"; // break; case "quit": return; default: return; } var @in = new In($"Files\\Graphs\\{fileName}"); var lines = !fileName.EndsWith("zip") ? @in.ReadAllLines() : @in.ReadAllLinesFromZip(); var degreesOfSeparation = new DegreesOfSeparation(lines, delimiter, source); Console.WriteLine($"{source}"); foreach (var name in names) { Console.WriteLine($"{name}"); degreesOfSeparation.Find(name); } Console.ReadLine(); }
public void Should_calculate_degrees_of_separation_between_developer_and_itself_is_0() { var programmer1 = new Programmer("Programemr1", new string[] {}, null); var degreesOfSeparation = new DegreesOfSeparation(new[] { programmer1 }); var degrees = degreesOfSeparation.Between(programmer1, programmer1); Assert.That(degrees, Is.EqualTo(0)); }
public void Should_build_network_using_programmers_recommended_bys() { var programmer1 = BuildProgrammer("Programmer1"); var programmer2 = BuildProgrammer("Programmer2"); programmer1.Recommends(programmer2); var degreesOfSeparation = new DegreesOfSeparation(new[] { programmer1, programmer2 }); var between = degreesOfSeparation.Between(programmer1, programmer2); Assert.That(between, Is.EqualTo(1)); }
public void Should_calculate_degrees_of_separation_between_developer_and_direct_relation_is_1() { var programmer1 = new Programmer("Programemr1", new string[] {}, null); var programmer2 = new Programmer("Programmer2", new string[] {}, null); programmer1.Recommends(programmer2); var degreesOfSeparation = new DegreesOfSeparation(new[] { programmer1, programmer2 }); var degrees = degreesOfSeparation.Between(programmer1, programmer2); Assert.That(degrees, Is.EqualTo(1)); }
public void Should_build_network_with_two_degrees_of_separation() { var programmer1 = BuildProgrammer("Programmer1"); var programmer2 = BuildProgrammer("Programmer2"); var programmer3 = BuildProgrammer("Programmer3"); programmer1.Recommends(programmer2); programmer2.Recommends(programmer3); var degreesOfSeparation = new DegreesOfSeparation(new[] { programmer1, programmer2, programmer3 }); var between = degreesOfSeparation.Between(programmer1, programmer3); Assert.That(between, Is.EqualTo(2)); }
public void Should_only_add_each_programmer_to_the_queue_once() { var programmer1 = BuildProgrammer("Programmer1"); var programmer2 = BuildProgrammer("Programmer2"); var programmer3 = BuildProgrammer("Programmer3"); programmer1.Recommends(programmer2); programmer1.Recommends(programmer3); programmer3.Recommends(programmer2); var degreesOfSeparation = new DegreesOfSeparation(new[] { programmer1, programmer2, programmer3 }); var between = degreesOfSeparation.Between(programmer1, programmer3); Assert.That(between, Is.EqualTo(1)); }
public void Should_build_network_with_three_degrees_of_separation_and_recommended_by_connections() { var jill = BuildProgrammer("Jill"); var bill = BuildProgrammer("Bill"); var ed = BuildProgrammer("Ed"); var rick = BuildProgrammer("Rick"); bill.Recommends(jill); ed.Recommends(bill); ed.Recommends(rick); rick.Recommends(ed); var degreesOfSeparation = new DegreesOfSeparation(new[] { jill, bill, ed, rick }); var between = degreesOfSeparation.Between(jill, rick); Assert.That(between, Is.EqualTo(3)); }
public void Should_build_network_provided_in_pronet_xml() { var jill = BuildProgrammer("Jill"); var bill = BuildProgrammer("Bill"); var ed = BuildProgrammer("Ed"); var rick = BuildProgrammer("Rick"); var nick = BuildProgrammer("Nick"); var dave = BuildProgrammer("Dave"); var stu = BuildProgrammer("Stu"); var frank = BuildProgrammer("Frank"); var liz = BuildProgrammer("Liz"); var jason = BuildProgrammer("Jason"); bill.Recommends(jason); bill.Recommends(jill); bill.Recommends(nick); bill.Recommends(stu); dave.Recommends(jill); ed.Recommends(liz); ed.Recommends(rick); ed.Recommends(bill); frank.Recommends(nick); jason.Recommends(dave); jason.Recommends(liz); jill.Recommends(nick); liz.Recommends(bill); nick.Recommends(stu); rick.Recommends(ed); stu.Recommends(frank); var degreesOfSeparation = new DegreesOfSeparation(new[] { jill, bill, ed, rick, nick, dave, stu, frank, liz, jason }); var between = degreesOfSeparation.Between(jill, rick); Assert.That(between, Is.EqualTo(3)); }