public void SizeTest()
        {
            Graph.Classes.Graph graph = new Graph.Classes.Graph();
            Node parent = new Node();

            parent.Value = "A";

            LinkedList <Tuple <Node, int> > originList = new LinkedList <Tuple <Node, int> >();
            Tuple <Node, int> origin = new Tuple <Node, int>(parent, 0);

            originList.AddFirst(origin);

            graph.AdjacencyList.AddFirst(originList);

            Node child = new Node();

            child.Value = "B";

            graph.AddEdge(parent, new Tuple <Node, int>(child, 5));

            Node c = new Node();

            c.Value = "C";

            graph.AddEdge(parent, new Tuple <Node, int>(c, 4));

            int count = graph.Size();

            Assert.Equal(3, count);
        }
        public void NeighborsCountTest()
        {
            Graph.Classes.Graph graph = new Graph.Classes.Graph();
            Node parent = new Node();

            parent.Value = "A";

            LinkedList <Tuple <Node, int> > originList = new LinkedList <Tuple <Node, int> >();
            Tuple <Node, int> origin = new Tuple <Node, int>(parent, 0);

            originList.AddFirst(origin);

            graph.AdjacencyList.AddFirst(originList);

            Node child = new Node();

            child.Value = "B";

            graph.AddEdge(parent, new Tuple <Node, int>(child, 5));

            Node c = new Node();

            c.Value = "C";

            graph.AddEdge(parent, new Tuple <Node, int>(c, 4));

            var nodeList = graph.GetNeighbors(parent);

            Assert.Equal(2, nodeList.Count);
        }
        public void GetNeigborsCollectionTest(string expected, int index)
        {
            Graph.Classes.Graph graph = new Graph.Classes.Graph();
            Node parent = new Node();

            parent.Value = "A";

            LinkedList <Tuple <Node, int> > originList = new LinkedList <Tuple <Node, int> >();
            Tuple <Node, int> origin = new Tuple <Node, int>(parent, 0);

            originList.AddFirst(origin);

            graph.AdjacencyList.AddFirst(originList);

            Node child = new Node();

            child.Value = "B";

            graph.AddEdge(parent, new Tuple <Node, int>(child, 5));

            Node c = new Node();

            c.Value = "C";

            graph.AddEdge(parent, new Tuple <Node, int>(c, 4));

            var nodeList = graph.GetNeighbors(parent);

            Assert.Equal(expected, nodeList[index].Item1.Value);
        }
        static void Main(string[] args)
        {
            Console.WriteLine("Hello Graphs");
            Console.WriteLine("");

            List <object> listTest = new List <object>();

            listTest.Add("soloNode");
            Graph.Classes.Graph graph = new Graph.Classes.Graph(listTest);
            graph.AddEdge("Apple", "Banana", 10);
            graph.AddEdge("Dog", "Cat", 22);
            graph.AddEdge("xBox", "PlayStation", 7);
            Console.WriteLine("Creating a new graph with 7 nodes and 3 edges");
            Console.WriteLine($"Return size of graph:  {graph.Size()}");

            Dictionary <object, int> toNeighbor   = graph.GetNeighbors("Dog");
            Dictionary <object, int> fromNeighbor = graph.GetNeighbors("xBox");

            //Console.WriteLine($"Return neighbor of graph from Dog node:");
            foreach (var item in toNeighbor.Values)
            {
                //Console.WriteLine(item);
            }

            Console.WriteLine("Return all vertices in the graph:  ");
            foreach (var item in graph.Vertices)
            {
                Console.WriteLine(item.Value);
            }

            Console.ReadLine();
        }
        static void Main(string[] args)
        {
            Console.WriteLine("Hello World!");
            Graph.Classes.Graph graph = new Graph.Classes.Graph();
            Node parent = new Node();

            parent.Value = "A";

            LinkedList <Tuple <Node, int> > originList = new LinkedList <Tuple <Node, int> >();
            Tuple <Node, int> origin = new Tuple <Node, int>(parent, 0);

            originList.AddFirst(origin);

            graph.AdjacencyList.AddFirst(originList);

            Node child = new Node();

            child.Value = "B";

            graph.AddEdge(parent, new Tuple <Node, int>(child, 5));

            Node c = new Node();

            c.Value = "C";

            graph.AddEdge(parent, new Tuple <Node, int>(c, 4));


            foreach (var item in graph.AdjacencyList)
            {
                foreach (var node in item)
                {
                    Console.Write(node.Item2);
                    Console.WriteLine(node.Item1.Value);
                }
            }

            var nodeList = graph.GetNodes();

            foreach (var item in nodeList)
            {
                Console.Write(item.Value);
            }

            var neighbor = graph.GetNeighbors(parent);

            foreach (var item in neighbor)
            {
                Console.Write(item.Item1.Value);
                Console.WriteLine(item.Item2);
            }

            var count = graph.Size();

            Console.WriteLine(count);
            Console.ReadKey();
        }
        public void GetEdgeTestMoney()
        {
            Graph.Classes.Graph graphItinerary = new Graph.Classes.Graph();

            Node Pandora = new Node();

            Pandora.Value = "Pandora";

            Node Arendelle = new Node();

            Arendelle.Value = "Arendelle";

            Node Metroville = new Node();

            Metroville.Value = "Metroville";

            Node Monstropolis = new Node();

            Monstropolis.Value = "Monstropolis";

            Node Narnia = new Node();

            Narnia.Value = "Narnia";

            Node Naboo = new Node();

            Naboo.Value = "Naboo";

            LinkedList <Tuple <Node, int> > originList = new LinkedList <Tuple <Node, int> >();
            Tuple <Node, int> origin = new Tuple <Node, int>(Pandora, 0);

            originList.AddFirst(origin);
            graphItinerary.AdjacencyList.AddFirst(originList);

            graphItinerary.AddEdge(Pandora, new Tuple <Node, int>(Arendelle, 150));
            graphItinerary.AddEdge(Pandora, new Tuple <Node, int>(Metroville, 82));

            graphItinerary.AddEdge(Arendelle, new Tuple <Node, int>(Metroville, 99));
            graphItinerary.AddEdge(Arendelle, new Tuple <Node, int>(Monstropolis, 42));

            graphItinerary.AddEdge(Monstropolis, new Tuple <Node, int>(Metroville, 105));
            graphItinerary.AddEdge(Monstropolis, new Tuple <Node, int>(Naboo, 73));

            graphItinerary.AddEdge(Naboo, new Tuple <Node, int>(Metroville, 26));
            graphItinerary.AddEdge(Naboo, new Tuple <Node, int>(Narnia, 250));

            graphItinerary.AddEdge(Narnia, new Tuple <Node, int>(Metroville, 37));

            Node[] cities = new Node[3] {
                Pandora, Metroville, Narnia
            };
            var output = GetEdge(graphItinerary, cities);

            Assert.Equal("$119.00", output.Item2);
        }
        public void GetSizeOne()
        {
            List <object> listTest = new List <object>();

            Graph.Classes.Graph graph = new Graph.Classes.Graph(listTest);
            graph.AddEdge("Apple", "Banana", 10);
            graph.Size();

            Assert.Equal(2, graph.Size());
        }
        public void GetNeighbots(object to, object from, int weight)
        {
            List <object> listTest = new List <object>();

            Graph.Classes.Graph graph = new Graph.Classes.Graph(listTest);
            graph.AddEdge(to, from, weight);

            Dictionary <object, int> toNeighbor   = graph.GetNeighbors(to);
            Dictionary <object, int> fromNeighbor = graph.GetNeighbors(from);

            Assert.True(toNeighbor.ContainsValue(weight) && fromNeighbor.ContainsValue(weight));
        }
        public void GetSizeThree()
        {
            List <object> listTest = new List <object>();

            listTest.Add("Dog");
            listTest.Add("Cat");
            listTest.Add("Chocolate");
            listTest.Add("Banana");
            Graph.Classes.Graph graph = new Graph.Classes.Graph(listTest);
            graph.AddEdge("Peach", "Orange", 10);
            graph.Size();

            Assert.Equal(6, graph.Size());
        }
        public void NullTest()
        {
            Graph.Classes.Graph graph = new Graph.Classes.Graph();
            Node parent = new Node();

            parent.Value = "A";

            Node child = new Node();

            child.Value = "B";

            graph.AddEdge(parent, new Tuple <Node, int>(child, 5));

            Assert.Empty(graph.AdjacencyList);
        }
        public void AddEdgeTestBAddedtoA()
        {
            Graph.Classes.Graph graph = new Graph.Classes.Graph();
            Node parent = new Node();

            parent.Value = "A";
            LinkedList <Tuple <Node, int> > originList = new LinkedList <Tuple <Node, int> >();
            Tuple <Node, int> origin = new Tuple <Node, int>(parent, 0);

            originList.AddFirst(origin);
            graph.AdjacencyList.AddFirst(originList);
            Node child = new Node();

            child.Value = "B";

            graph.AddEdge(parent, new Tuple <Node, int>(child, 5));

            Assert.Equal(parent, graph.AdjacencyList.Last.Value.Last.Value.Item1);
        }
        public void SizeTestLarge()
        {
            Graph.Classes.Graph graph = new Graph.Classes.Graph();
            Node parent = new Node();

            parent.Value = "A";

            LinkedList <Tuple <Node, int> > originList = new LinkedList <Tuple <Node, int> >();
            Tuple <Node, int> origin = new Tuple <Node, int>(parent, 0);

            originList.AddFirst(origin);

            graph.AdjacencyList.AddFirst(originList);

            Node child = new Node();

            child.Value = "B";

            graph.AddEdge(parent, new Tuple <Node, int>(child, 5));

            Node c = new Node();

            c.Value = "C";

            Node d = new Node();

            d.Value = "D";

            Node e = new Node();

            e.Value = "E";

            Node f = new Node();

            f.Value = "F";

            Node g = new Node();

            g.Value = "G";

            Node h = new Node();

            h.Value = "H";

            Node i = new Node();

            i.Value = "I";

            Node j = new Node();

            j.Value = "J";

            graph.AddEdge(parent, new Tuple <Node, int>(c, 4));
            graph.AddEdge(parent, new Tuple <Node, int>(d, 4));
            graph.AddEdge(parent, new Tuple <Node, int>(e, 4));
            graph.AddEdge(parent, new Tuple <Node, int>(f, 4));
            graph.AddEdge(parent, new Tuple <Node, int>(g, 4));
            graph.AddEdge(parent, new Tuple <Node, int>(h, 4));
            graph.AddEdge(parent, new Tuple <Node, int>(i, 4));
            graph.AddEdge(parent, new Tuple <Node, int>(j, 4));

            int count = graph.Size();

            Assert.Equal(10, count);
        }
Esempio n. 13
0
        static void Main(string[] args)
        {
            Console.WriteLine("Hello World!");
            Graph.Classes.Graph graphItinerary = new Graph.Classes.Graph();

            Node Pandora = new Node();

            Pandora.Value = "Pandora";

            Node Arendelle = new Node();

            Arendelle.Value = "Arendelle";

            Node Metroville = new Node();

            Metroville.Value = "Metroville";

            Node Monstropolis = new Node();

            Monstropolis.Value = "Monstropolis";

            Node Narnia = new Node();

            Narnia.Value = "Narnia";

            Node Naboo = new Node();

            Naboo.Value = "Naboo";

            LinkedList <Tuple <Node, int> > originList = new LinkedList <Tuple <Node, int> >();
            Tuple <Node, int> origin = new Tuple <Node, int>(Pandora, 0);

            originList.AddFirst(origin);
            graphItinerary.AdjacencyList.AddFirst(originList);

            graphItinerary.AddEdge(Pandora, new Tuple <Node, int>(Arendelle, 150));
            graphItinerary.AddEdge(Pandora, new Tuple <Node, int>(Metroville, 82));

            graphItinerary.AddEdge(Arendelle, new Tuple <Node, int>(Metroville, 99));
            graphItinerary.AddEdge(Arendelle, new Tuple <Node, int>(Monstropolis, 42));

            graphItinerary.AddEdge(Monstropolis, new Tuple <Node, int>(Metroville, 105));
            graphItinerary.AddEdge(Monstropolis, new Tuple <Node, int>(Naboo, 73));

            graphItinerary.AddEdge(Naboo, new Tuple <Node, int>(Metroville, 26));
            graphItinerary.AddEdge(Naboo, new Tuple <Node, int>(Narnia, 250));

            graphItinerary.AddEdge(Narnia, new Tuple <Node, int>(Metroville, 37));

            Node[] cities = new Node[3] {
                Pandora, Metroville, Narnia
            };

            for (int i = 0; i < cities.Length; i++)
            {
                Console.Write($"{cities[i].Value} ");
            }
            Console.WriteLine();
            var output = GetEdge(graphItinerary, cities);

            Console.WriteLine(output.Item1);
            Console.WriteLine(output.Item2);
            Console.ReadKey();
        }