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); }
public UndirectedGraph <TVertex, TEdge> Clone() { return(new UndirectedGraph <TVertex, TEdge>( _adjacentEdges.Clone(), EdgeEqualityComparer, EdgeCount, EdgeCapacity, AllowParallelEdges)); }