public void ManyCompaniesToOneFromDifferentConnections() { companyGraph = new CompanyGraph.CompanyGraph(); companyGraph.Add(VIK, new List <Company> { Kodar, SBTech, MentorMate }); companyGraph.Add(Kodar, new List <Company> { Zdravkova }); companyGraph.Add(SBTech, new List <Company> { Zdravkova }); companyGraph.Add(MentorMate, new List <Company> { Zdravkova }); companyGraph.Add(Zdravkova, new List <Company> { Non }); companyGraph.Add(MentorMate, new List <Company> { Non }); List <string> shortestPath = new List <string> { Zdravkova.Name, MentorMate.Name, VIK.Name }; List <string> shortestPathToNon = new List <string> { Non.Name, MentorMate.Name, VIK.Name }; Assert.AreEqual(companyGraph.FindShortestPath(VIK, Zdravkova), shortestPath); Assert.AreEqual(companyGraph.FindShortestPath(VIK, Non), shortestPathToNon); }
public void ShortestPathIsCorrectAfterRemovingACompany() { companyGraph = new CompanyGraph.CompanyGraph(); companyGraph.Add(VIK, new List <Company> { Kodar, SBTech, MentorMate }); companyGraph.Add(Kodar, new List <Company> { Zdravkova }); companyGraph.Add(SBTech, new List <Company> { Zdravkova }); companyGraph.Add(MentorMate, new List <Company> { Zdravkova }); companyGraph.Add(Zdravkova, new List <Company> { Non }); companyGraph.Add(MentorMate, new List <Company> { Non }); companyGraph.Remove(MentorMate); List <string> shortestPath = new List <string> { Zdravkova.Name, SBTech.Name, VIK.Name }; List <string> shortestPathToNon = new List <string> { Non.Name, Zdravkova.Name, SBTech.Name, VIK.Name }; Assert.AreEqual(companyGraph.FindShortestPath(VIK, Zdravkova), shortestPath); Assert.AreEqual(companyGraph.FindShortestPath(VIK, Non), shortestPathToNon); }
public void ShortestPathInLinearGraph() { companyGraph = new CompanyGraph.CompanyGraph(); companyGraph.Add(VIK, new List <Company> { Kodar }); companyGraph.Add(Kodar, new List <Company> { SBTech }); companyGraph.Add(SBTech, new List <Company> { MentorMate }); companyGraph.Add(MentorMate, new List <Company> { Zdravkova }); companyGraph.Add(Zdravkova, new List <Company> { Non }); companyGraph.Add(Unconnected, new List <Company> { }); List <string> shortestPath = new List <string> { VIK.Name, Kodar.Name, SBTech.Name, MentorMate.Name, Zdravkova.Name, Non.Name }; Assert.AreEqual(companyGraph.FindShortestPath(Non, VIK), shortestPath); }
public void ShortestPathInBranchedGraph() { companyGraph = new CompanyGraph.CompanyGraph(); companyGraph.Add(VIK, new List <Company> { Kodar, SBTech, MentorMate }); companyGraph.Add(SBTech, new List <Company> { Zdravkova, }); companyGraph.Add(SBTech, new List <Company> { Tesla }); companyGraph.Add(Tesla, new List <Company> { Non }); companyGraph.Add(Kodar, new List <Company> { Zdravkova }); companyGraph.Add(Zdravkova, new List <Company> { Non }); companyGraph.Add(MentorMate, new List <Company> { Non }); companyGraph.FindShortestPath(VIK, Non); companyGraph.Add(Unconnected, new List <Company> { }); List <string> shortestPath = new List <string> { Non.Name, MentorMate.Name, VIK.Name }; Assert.AreEqual(companyGraph.FindShortestPath(VIK, Non), shortestPath); }
static void Main(string[] args) { Company VIK = new Company() { ID = 1, Name = "VIK" }; Company Kodar = new Company() { ID = 2, Name = "Kodar" }; Company SBTech = new Company() { ID = 3, Name = "SB-Tech" }; Company MentorMate = new Company() { ID = 4, Name = "MentorMate" }; Company Zdravkova = new Company() { ID = 5, Name = "Zdravkova" }; Company Non = new Company() { ID = 6, Name = "Non" }; Company Tesla = new Company() { ID = 7, Name = "Tesla" }; Company Unconnected = new Company { ID = 8, Name = "Unconnected" }; CompanyGraph companyGraph = new CompanyGraph(); companyGraph.Add(VIK, new List <Company> { Kodar, SBTech, MentorMate }); companyGraph.Add(SBTech, new List <Company> { Zdravkova, }); companyGraph.Add(SBTech, new List <Company> { Tesla }); companyGraph.Add(Tesla, new List <Company> { Non }); companyGraph.Add(Kodar, new List <Company> { Zdravkova }); companyGraph.Add(Zdravkova, new List <Company> { Non }); companyGraph.Add(MentorMate, new List <Company> { Non }); Console.WriteLine(); companyGraph.FindShortestPath(VIK, VIK); companyGraph.Add(Unconnected, new List <Company> { }); List <string> shortestPath = new List <string> { Non.Name, MentorMate.Name, VIK.Name }; }