Пример #1
0
        public void Clone()
        {
            var dictionary = new VertexEdgeDictionary <int, EquatableEdge <int> >();

            VertexEdgeDictionary <int, EquatableEdge <int> > clonedDictionary = dictionary.Clone();

            CollectionAssert.IsEmpty(clonedDictionary);

            clonedDictionary = (VertexEdgeDictionary <int, EquatableEdge <int> >)((IVertexEdgeDictionary <int, EquatableEdge <int> >)dictionary).Clone();
            CollectionAssert.IsEmpty(clonedDictionary);

            clonedDictionary = (VertexEdgeDictionary <int, EquatableEdge <int> >)((ICloneable)dictionary).Clone();
            CollectionAssert.IsEmpty(clonedDictionary);

            dictionary.Add(1, new EdgeList <int, EquatableEdge <int> > {
                new EquatableEdge <int>(1, 2)
            });
            dictionary.Add(2, new EdgeList <int, EquatableEdge <int> > {
                new EquatableEdge <int>(2, 3)
            });
            dictionary.Add(3, new EdgeList <int, EquatableEdge <int> >());
            clonedDictionary = dictionary.Clone();
            CollectionAssert.AreEqual(dictionary, clonedDictionary);

            clonedDictionary = (VertexEdgeDictionary <int, EquatableEdge <int> >)((IVertexEdgeDictionary <int, EquatableEdge <int> >)dictionary).Clone();
            CollectionAssert.AreEqual(dictionary, clonedDictionary);

            clonedDictionary = (VertexEdgeDictionary <int, EquatableEdge <int> >)((ICloneable)dictionary).Clone();
            CollectionAssert.AreEqual(dictionary, clonedDictionary);
        }
Пример #2
0
 public UndirectedGraph <TVertex, TEdge> Clone()
 {
     return(new UndirectedGraph <TVertex, TEdge>(
                _adjacentEdges.Clone(),
                EdgeEqualityComparer,
                EdgeCount,
                EdgeCapacity,
                AllowParallelEdges));
 }