static void Main() { //TODO: replace this test data with the real data var ben = new Programmer("Ben"); ben.Skills.Add(Skills.CSharp); ben.Skills.Add(Skills.Java); var adrian = new Programmer("Adrian"); adrian.Skills.Add(Skills.CSharp); adrian.Skills.Add(Skills.Ruby); ben.Recommendations.Add(adrian); var programmers = new List<Programmer>() { adrian, ben }; var formatter = new SimpleFormatter(); var report = formatter.Format(programmers); Console.Write(report); Console.ReadLine(); }
public ParsedProgrammer(Programmer programmer) { if (programmer == null) { throw new ArgumentNullException("programmer"); } this.programmer = programmer; }
private static IEnumerable<Programmer> Case1() { var a = new Programmer("A"); var b = new Programmer("B"); a.Recommendations.Add(b); b.Recommendations.Add(a); return new[] {a, b}; }
public void TestThat_diplays_a_single_programmer() { var simpleFormatter = new SimpleFormatter(); var adrian = new Programmer("Adrian"); var programmer = new Programmer("Ben"); programmer.Skills.Add(Skills.CSharp); programmer.Recommendations.Add(adrian); var report = simpleFormatter.Format(new[] {programmer}); StringAssert.Contains("Ben", report); StringAssert.Contains("CSharp", report); StringAssert.Contains("Adrian", report); }
public void CalculateRightRank() { var A = new Programmer("A"); var B = new Programmer("B"); var C = new Programmer("C"); var D = new Programmer("D"); B.Recommendations.Add(A); C.Recommendations.Add(A); A.Recommendations.Add(C); B.Recommendations.Add(C); D.Recommendations.Add(C); var network = new List<Programmer> { A,B,C,D }; var rankEngine = new RankEngine(); rankEngine.CalculateRank(network); Assert.That(network.Single(x=>x.Name=="D").Rank,Is.EqualTo(0.15)); }
public void JonnyHasNoRecommendations() { var jonny = new Programmer("Jonny"); var jack = new Programmer("Jack"); var matt = new Programmer("Matt"); jonny.Recommendations.Add(jack); jonny.Recommendations.Add(matt); var network = new List<Programmer> {jonny, jack, matt}; var engine = new IncomingReccomandationEngine(); Dictionary<Programmer, int> incomingResults = engine.CalculateIncomingRecommendations(network); Assert.That(incomingResults[jonny], Is.EqualTo(0)); Assert.That(incomingResults[jack], Is.EqualTo(1)); Assert.That(incomingResults[matt], Is.EqualTo(1)); }
private static IEnumerable<Programmer> Case2() { var a = new Programmer("A"); var b = new Programmer("B"); var c = new Programmer("C"); var d = new Programmer("D"); a.Recommendations.Add(b); a.Recommendations.Add(c); b.Recommendations.Add(c); c.Recommendations.Add(a); d.Recommendations.Add(c); return new[] {a, b, c, d}; }