コード例 #1
0
        public void AdjacencyList_Filter_SelectesPartOfVertices()
        {
            int    vertex1 = 10;
            int    vertex2 = 20;
            int    vertex3 = 30;
            int    vertex4 = 40;
            string edge1   = "20-30";
            string edge2   = "30-40";

            AdjacencyList <int, string> adjacencyList = new AdjacencyList <int, string>();

            adjacencyList.AddVertex(vertex1);
            adjacencyList.AddVertex(vertex2);
            adjacencyList.AddVertex(vertex3);
            adjacencyList.AddVertex(vertex4);
            adjacencyList.AddEdge(vertex2, vertex3, edge1);
            adjacencyList.AddEdge(vertex3, vertex4, edge2);

            IGraph <int, string> filtered = adjacencyList.Filter((v1, v2, ed) => v1 == 20);

            Assert.Equal(2, filtered.NumVertices);
            Assert.True(filtered.HasVertex(vertex2));
            Assert.True(filtered.HasVertex(vertex3));
            Assert.Equal(edge1, filtered.FindEdge(vertex2, vertex3));
        }