Example #1
0
 public void BothCompaniesNotInGraph()
 {
     companyGraph = new CompanyGraph.CompanyGraph();
     Assert.AreEqual(companyGraph.AreConnectedDepthFirst(VIK, SBTech), false);
     Assert.AreEqual(companyGraph.AreConnectedBreadthFirst(VIK, SBTech), false);
     Assert.AreEqual(companyGraph.AreConnectedDepthFirstIterative(VIK, SBTech), false);
 }
Example #2
0
        public void MixedConnections()
        {
            companyGraph = new CompanyGraph.CompanyGraph();

            companyGraph.Add(VIK, new List <Company> {
                Kodar, SBTech
            });
            companyGraph.Add(SBTech, new List <Company> {
                MentorMate, VIK
            });
            companyGraph.Add(MentorMate, new List <Company> {
                Zdravkova
            });
            companyGraph.Add(Non, new List <Company> {
                Zdravkova
            });


            Assert.AreEqual(companyGraph.AreConnectedDepthFirst(VIK, Zdravkova), true);
            Assert.AreEqual(companyGraph.AreConnectedDepthFirstIterative(VIK, Zdravkova), true);
            Assert.AreEqual(companyGraph.AreConnectedDepthFirst(VIK, Non), true);
            Assert.AreEqual(companyGraph.AreConnectedDepthFirstIterative(VIK, Non), true);
            Assert.AreEqual(companyGraph.AreConnectedBreadthFirst(VIK, MentorMate), true);
            Assert.AreEqual(companyGraph.AreConnectedDepthFirstIterative(VIK, MentorMate), true);
            Assert.AreEqual(companyGraph.AreConnectedBreadthFirst(VIK, Non), true);
            Assert.AreEqual(companyGraph.AreConnectedBreadthFirst(MentorMate, Zdravkova), true);
            Assert.AreEqual(companyGraph.AreConnectedDepthFirstIterative(MentorMate, Zdravkova), true);
            Assert.AreEqual(companyGraph.AreConnectedBreadthFirst(MentorMate, Zdravkova), true);
        }
Example #3
0
        public void RemovingACompany()
        {
            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.Remove(SBTech);
            companyGraph.Add(Unconnected, new List <Company> {
            });

            Assert.AreEqual(companyGraph.AreConnectedDepthFirst(VIK, Non), false);
            Assert.AreEqual(companyGraph.AreConnectedBreadthFirst(VIK, Non), false);
            Assert.AreEqual(companyGraph.AreConnectedDepthFirstIterative(VIK, Non), false);

            Assert.AreEqual(companyGraph.AreConnectedDepthFirst(MentorMate, Non), true);
            Assert.AreEqual(companyGraph.AreConnectedBreadthFirst(MentorMate, Non), true);
            Assert.AreEqual(companyGraph.AreConnectedDepthFirstIterative(MentorMate, Non), true);
        }
        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 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 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);
        }
Example #7
0
        public void OneCompanyNotInGraph()
        {
            companyGraph = new CompanyGraph.CompanyGraph();

            companyGraph.Add(VIK, new List <Company> {
            });

            Assert.AreEqual(companyGraph.AreConnectedDepthFirst(VIK, SBTech), false);
            Assert.AreEqual(companyGraph.AreConnectedBreadthFirst(VIK, SBTech), false);
            Assert.AreEqual(companyGraph.AreConnectedDepthFirstIterative(VIK, SBTech), false);
        }
Example #8
0
        public void SingleCompanyInGraph()
        {
            companyGraph = new CompanyGraph.CompanyGraph();

            companyGraph.Add(VIK, new List <Company> {
            });


            Assert.AreEqual(companyGraph.AreConnectedDepthFirst(VIK, VIK), true);
            Assert.AreEqual(companyGraph.AreConnectedBreadthFirst(VIK, VIK), true);
            Assert.AreEqual(companyGraph.AreConnectedDepthFirstIterative(VIK, VIK), true);
        }
Example #9
0
        public void BranchedConnections()
        {
            companyGraph = new CompanyGraph.CompanyGraph();

            companyGraph.Add(VIK, new List <Company> {
                Kodar
            });
            companyGraph.Add(VIK, new List <Company> {
                SBTech
            });
            companyGraph.Add(VIK, new List <Company> {
                MentorMate
            });

            companyGraph.Add(SBTech, new List <Company> {
                Zdravkova
            });
            companyGraph.Add(SBTech, new List <Company> {
                Non
            });
            companyGraph.Add(SBTech, new List <Company> {
                Tesla
            });

            companyGraph.Add(Unconnected, new List <Company> {
            });

            Assert.AreEqual(companyGraph.AreConnectedDepthFirst(VIK, Non), true);
            Assert.AreEqual(companyGraph.AreConnectedBreadthFirst(VIK, Non), true);
            Assert.AreEqual(companyGraph.AreConnectedDepthFirstIterative(VIK, Non), true);

            Assert.AreEqual(companyGraph.AreConnectedDepthFirst(VIK, Zdravkova), true);
            Assert.AreEqual(companyGraph.AreConnectedBreadthFirst(VIK, Zdravkova), true);
            Assert.AreEqual(companyGraph.AreConnectedDepthFirstIterative(VIK, Zdravkova), true);

            Assert.AreEqual(companyGraph.AreConnectedBreadthFirst(MentorMate, Zdravkova), true);
            Assert.AreEqual(companyGraph.AreConnectedDepthFirst(MentorMate, Zdravkova), true);
            Assert.AreEqual(companyGraph.AreConnectedDepthFirstIterative(MentorMate, Zdravkova), true);

            Assert.AreEqual(companyGraph.AreConnectedBreadthFirst(Unconnected, Zdravkova), false);
            Assert.AreEqual(companyGraph.AreConnectedDepthFirst(Unconnected, Zdravkova), false);
            Assert.AreEqual(companyGraph.AreConnectedDepthFirstIterative(Unconnected, Zdravkova), false);
        }
Example #10
0
        public void LinearConnections()
        {
            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> {
            });

            Assert.AreEqual(companyGraph.AreConnectedDepthFirst(VIK, Non), true);
            Assert.AreEqual(companyGraph.AreConnectedBreadthFirst(VIK, Non), true);
            Assert.AreEqual(companyGraph.AreConnectedDepthFirstIterative(VIK, Non), true);

            Assert.AreEqual(companyGraph.AreConnectedDepthFirst(Non, VIK), true);
            Assert.AreEqual(companyGraph.AreConnectedBreadthFirst(Non, VIK), true);
            Assert.AreEqual(companyGraph.AreConnectedDepthFirstIterative(Non, VIK), true);

            Assert.AreEqual(companyGraph.AreConnectedDepthFirst(Zdravkova, Kodar), true);
            Assert.AreEqual(companyGraph.AreConnectedBreadthFirst(Zdravkova, Kodar), true);
            Assert.AreEqual(companyGraph.AreConnectedDepthFirstIterative(Zdravkova, Kodar), true);

            Assert.AreEqual(companyGraph.AreConnectedDepthFirst(Zdravkova, Unconnected), false);
            Assert.AreEqual(companyGraph.AreConnectedBreadthFirst(Zdravkova, Unconnected), false);
            Assert.AreEqual(companyGraph.AreConnectedDepthFirstIterative(Zdravkova, Unconnected), false);
        }
        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);
        }
Example #12
0
        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
            });

            Assert.AreEqual(companyGraph.AreConnectedDepthFirst(VIK, Zdravkova), true);
            Assert.AreEqual(companyGraph.AreConnectedBreadthFirst(VIK, Zdravkova), true);
            Assert.AreEqual(companyGraph.AreConnectedDepthFirstIterative(VIK, Zdravkova), true);

            Assert.AreEqual(companyGraph.AreConnectedDepthFirst(VIK, Non), true);
            Assert.AreEqual(companyGraph.AreConnectedBreadthFirst(VIK, Non), true);
            Assert.AreEqual(companyGraph.AreConnectedDepthFirstIterative(VIK, Non), true);

            Assert.AreEqual(companyGraph.AreConnectedDepthFirst(Kodar, Non), true);
            Assert.AreEqual(companyGraph.AreConnectedBreadthFirst(Kodar, Non), true);
            Assert.AreEqual(companyGraph.AreConnectedDepthFirstIterative(Kodar, Non), true);
        }
Example #13
0
        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
            };
        }