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