public void EdgeCondensationSomeVertices()
        {
            var edge12 = new Edge <int>(1, 2);
            var edge13 = new Edge <int>(1, 3);
            var edge23 = new Edge <int>(2, 3);
            var edge38 = new Edge <int>(3, 8);
            var edge42 = new Edge <int>(4, 2);
            var edge43 = new Edge <int>(4, 3);
            var edge44 = new Edge <int>(4, 4);

            var edge45 = new Edge <int>(4, 5);

            var edge56 = new Edge <int>(5, 6);
            var edge57 = new Edge <int>(5, 7);
            var edge76 = new Edge <int>(7, 6);

            var edge71 = new Edge <int>(7, 1);

            var edge89 = new Edge <int>(8, 9);

            var edge82 = new Edge <int>(8, 2);

            var graph = new BidirectionalGraph <int, Edge <int> >();

            graph.AddVerticesAndEdgeRange(new[]
            {
                edge12, edge13, edge23, edge38, edge42, edge43, edge44,
                edge45, edge56, edge57, edge76, edge71, edge89, edge82
            });

            IMutableBidirectionalGraph <int, MergedEdge <int, Edge <int> > > condensedGraph =
                graph.CondensateEdges(v => v == 4 || v == 8);

            Assert.IsNotNull(condensedGraph);
            Assert.AreEqual(2, condensedGraph.VertexCount);
            Assert.AreEqual(6, condensedGraph.EdgeCount);
            CollectionAssert.AreEquivalent(new[] { 4, 8 }, condensedGraph.Vertices);
            CollectionAssert.AreEquivalent(new[] { edge82, edge23, edge38 }, condensedGraph.Edges.ElementAt(0).Edges);
            CollectionAssert.AreEquivalent(new[] { edge44 }, condensedGraph.Edges.ElementAt(1).Edges);
            CollectionAssert.AreEquivalent(new[] { edge43, edge38 }, condensedGraph.Edges.ElementAt(2).Edges);
            CollectionAssert.AreEquivalent(new[] { edge42, edge23, edge38 }, condensedGraph.Edges.ElementAt(3).Edges);
            CollectionAssert.AreEquivalent(new[] { edge45, edge57, edge71, edge13, edge38 }, condensedGraph.Edges.ElementAt(4).Edges);
            CollectionAssert.AreEquivalent(new[] { edge45, edge57, edge71, edge12, edge23, edge38 }, condensedGraph.Edges.ElementAt(5).Edges);
        }