public void BinarySerialization_ClusteredGraph([NotNull] ClusteredAdjacencyGraph <int, EquatableEdge <int> > graph) { ClusteredAdjacencyGraph <int, EquatableEdge <int> > deserializedGraph = SerializeDeserialize <int, EquatableEdge <int>, ClusteredAdjacencyGraph <int, EquatableEdge <int> > >(graph); Assert.IsTrue(EquateGraphs.Equate(graph, deserializedGraph)); }
public void GraphMLSerialization_EdgeListGraph([NotNull] EdgeListGraph <int, EquatableEdge <int> > graph) { AdjacencyGraph <int, EquatableEdge <int> > deserializedGraph = SerializeDeserialize <EdgeListGraph <int, EquatableEdge <int> >, AdjacencyGraph <int, EquatableEdge <int> > >(graph); Assert.IsTrue(EquateGraphs.Equate(graph, deserializedGraph)); }
public void BinarySerialization_BidirectionalGraph([NotNull] BidirectionalGraph <int, EquatableEdge <int> > graph) { BidirectionalGraph <int, EquatableEdge <int> > deserializedGraph = SerializeDeserialize <int, EquatableEdge <int>, BidirectionalGraph <int, EquatableEdge <int> > >(graph); Assert.IsTrue(EquateGraphs.Equate(graph, deserializedGraph)); var arrayGraph = new ArrayBidirectionalGraph <int, EquatableEdge <int> >(graph); ArrayBidirectionalGraph <int, EquatableEdge <int> > deserializedGraph2 = SerializeDeserialize <int, EquatableEdge <int>, ArrayBidirectionalGraph <int, EquatableEdge <int> > >(arrayGraph); Assert.IsTrue(EquateGraphs.Equate(arrayGraph, deserializedGraph2)); var reversedGraph = new ReversedBidirectionalGraph <int, EquatableEdge <int> >(graph); ReversedBidirectionalGraph <int, EquatableEdge <int> > deserializedGraph3 = SerializeDeserialize <int, SReversedEdge <int, EquatableEdge <int> >, ReversedBidirectionalGraph <int, EquatableEdge <int> > >(reversedGraph); Assert.IsTrue(EquateGraphs.Equate(reversedGraph, deserializedGraph3)); var undirectedBidirectionalGraph = new UndirectedBidirectionalGraph <int, EquatableEdge <int> >(graph); UndirectedBidirectionalGraph <int, EquatableEdge <int> > deserializedGraph4 = SerializeDeserialize <int, EquatableEdge <int>, UndirectedBidirectionalGraph <int, EquatableEdge <int> > >(undirectedBidirectionalGraph); Assert.IsTrue(EquateGraphs.Equate(undirectedBidirectionalGraph, deserializedGraph4)); }
public void BinarySerialization_CompressedGraph([NotNull] CompressedSparseRowGraph <int> graph) { CompressedSparseRowGraph <int> deserializedGraph = SerializeDeserialize <int, SEquatableEdge <int>, CompressedSparseRowGraph <int> >(graph); Assert.IsTrue(EquateGraphs.Equate(graph, deserializedGraph)); }
public void BinarySerialization_BidirectionalMatrixGraph([NotNull] BidirectionalMatrixGraph <EquatableEdge <int> > graph) { BidirectionalMatrixGraph <EquatableEdge <int> > deserializedGraph = SerializeDeserialize <int, EquatableEdge <int>, BidirectionalMatrixGraph <EquatableEdge <int> > >(graph); Assert.IsTrue(EquateGraphs.Equate(graph, deserializedGraph)); }
public void BinarySerialization_EdgeListGraph([NotNull] EdgeListGraph <int, EquatableEdge <int> > graph) { EdgeListGraph <int, EquatableEdge <int> > deserializedGraph = SerializeDeserialize <int, EquatableEdge <int>, EdgeListGraph <int, EquatableEdge <int> > >(graph); Assert.IsTrue(EquateGraphs.Equate(graph, deserializedGraph)); }
public void BinarySerialization_EdgeListGraph_Complex([NotNull] EdgeListGraph <EquatableTestVertex, EquatableTestEdge> graph) { EdgeListGraph <EquatableTestVertex, EquatableTestEdge> deserializedGraph = SerializeDeserialize <EquatableTestVertex, EquatableTestEdge, EdgeListGraph <EquatableTestVertex, EquatableTestEdge> >(graph); Assert.IsTrue(EquateGraphs.Equate(graph, deserializedGraph)); }
public void BinarySerialization_CompressedGraph_Complex([NotNull] CompressedSparseRowGraph <EquatableTestVertex> graph) { CompressedSparseRowGraph <EquatableTestVertex> deserializedGraph = SerializeDeserialize <EquatableTestVertex, SEquatableEdge <EquatableTestVertex>, CompressedSparseRowGraph <EquatableTestVertex> >(graph); Assert.IsTrue(EquateGraphs.Equate(graph, deserializedGraph)); }
public void BinarySerialization_BidirectionalGraph_Complex([NotNull] BidirectionalGraph <EquatableTestVertex, EquatableTestEdge> graph) { BidirectionalGraph <EquatableTestVertex, EquatableTestEdge> deserializedGraph = SerializeDeserialize <EquatableTestVertex, EquatableTestEdge, BidirectionalGraph <EquatableTestVertex, EquatableTestEdge> >(graph); Assert.IsTrue(EquateGraphs.Equate(graph, deserializedGraph)); var arrayGraph = new ArrayBidirectionalGraph <EquatableTestVertex, EquatableTestEdge>(graph); ArrayBidirectionalGraph <EquatableTestVertex, EquatableTestEdge> deserializedGraph2 = SerializeDeserialize <EquatableTestVertex, EquatableTestEdge, ArrayBidirectionalGraph <EquatableTestVertex, EquatableTestEdge> >(arrayGraph); Assert.IsTrue(EquateGraphs.Equate(arrayGraph, deserializedGraph2)); var reversedGraph = new ReversedBidirectionalGraph <EquatableTestVertex, EquatableTestEdge>(graph); ReversedBidirectionalGraph <EquatableTestVertex, EquatableTestEdge> deserializedGraph3 = SerializeDeserialize <EquatableTestVertex, SReversedEdge <EquatableTestVertex, EquatableTestEdge>, ReversedBidirectionalGraph <EquatableTestVertex, EquatableTestEdge> >(reversedGraph); Assert.IsTrue(EquateGraphs.Equate(reversedGraph, deserializedGraph3)); var undirectedBidirectionalGraph = new UndirectedBidirectionalGraph <EquatableTestVertex, EquatableTestEdge>(graph); UndirectedBidirectionalGraph <EquatableTestVertex, EquatableTestEdge> deserializedGraph4 = SerializeDeserialize <EquatableTestVertex, EquatableTestEdge, UndirectedBidirectionalGraph <EquatableTestVertex, EquatableTestEdge> >(undirectedBidirectionalGraph); Assert.IsTrue(EquateGraphs.Equate(undirectedBidirectionalGraph, deserializedGraph4)); }
public void BinarySerialization_ClusteredGraph_Complex([NotNull] ClusteredAdjacencyGraph <EquatableTestVertex, EquatableTestEdge> graph) { ClusteredAdjacencyGraph <EquatableTestVertex, EquatableTestEdge> deserializedGraph = SerializeDeserialize <EquatableTestVertex, EquatableTestEdge, ClusteredAdjacencyGraph <EquatableTestVertex, EquatableTestEdge> >(graph); Assert.IsTrue(EquateGraphs.Equate(graph, deserializedGraph)); }
public void GraphMLSerialization_BidirectionalGraph([NotNull] BidirectionalGraph <int, EquatableEdge <int> > graph) { AdjacencyGraph <int, EquatableEdge <int> > deserializedGraph = SerializeDeserialize <BidirectionalGraph <int, EquatableEdge <int> >, AdjacencyGraph <int, EquatableEdge <int> > >(graph); Assert.IsTrue(EquateGraphs.Equate(graph, deserializedGraph)); var arrayGraph = new ArrayBidirectionalGraph <int, EquatableEdge <int> >(graph); AdjacencyGraph <int, EquatableEdge <int> > deserializedGraph2 = SerializeDeserialize <ArrayBidirectionalGraph <int, EquatableEdge <int> >, AdjacencyGraph <int, EquatableEdge <int> > >(arrayGraph); Assert.IsTrue(EquateGraphs.Equate(arrayGraph, deserializedGraph2)); var reversedGraph = new ReversedBidirectionalGraph <int, EquatableEdge <int> >(graph); BidirectionalGraph <int, EquatableEdge <int> > deserializedGraph3 = SerializeDeserialize_Reversed <ReversedBidirectionalGraph <int, EquatableEdge <int> >, BidirectionalGraph <int, EquatableEdge <int> > >(reversedGraph); Assert.IsTrue( EquateGraphs.Equate( graph, deserializedGraph3, EqualityComparer <int> .Default, LambdaEqualityComparer <EquatableEdge <int> > .Create( (edge1, edge2) => Equals(edge1.Source, edge2.Target) && Equals(edge1.Target, edge2.Source), edge => edge.GetHashCode()))); var undirectedBidirectionalGraph = new UndirectedBidirectionalGraph <int, EquatableEdge <int> >(graph); UndirectedGraph <int, EquatableEdge <int> > deserializedGraph4 = SerializeDeserialize <UndirectedBidirectionalGraph <int, EquatableEdge <int> >, UndirectedGraph <int, EquatableEdge <int> > >(undirectedBidirectionalGraph); Assert.IsTrue(EquateGraphs.Equate(undirectedBidirectionalGraph, deserializedGraph4)); }
public void GraphMLSerialization_CompressedGraph([NotNull] CompressedSparseRowGraph <int> graph) { AdjacencyGraph <int, SEquatableEdge <int> > deserializedGraph = SerializeDeserialize_SEdge <CompressedSparseRowGraph <int>, AdjacencyGraph <int, SEquatableEdge <int> > >(graph); Assert.IsTrue(EquateGraphs.Equate(graph, deserializedGraph)); }
public void BinarySerialization_AdjacencyGraph(AdjacencyGraph <int, EquatableEdge <int> > graph) { AdjacencyGraph <int, EquatableEdge <int> > deserializedGraph = SerializeDeserialize <int, EquatableEdge <int>, AdjacencyGraph <int, EquatableEdge <int> > >(graph); Assert.IsTrue(EquateGraphs.Equate(graph, deserializedGraph)); }
public void GraphMLSerialization_BidirectionalMatrixGraph([NotNull] BidirectionalMatrixGraph <EquatableEdge <int> > graph) { AdjacencyGraph <int, EquatableEdge <int> > deserializedGraph = SerializeDeserialize <BidirectionalMatrixGraph <EquatableEdge <int> >, AdjacencyGraph <int, EquatableEdge <int> > >(graph); Assert.IsTrue(EquateGraphs.Equate(graph, deserializedGraph)); }
public void BinarySerialization_AdapterGraph_Complex([NotNull] AdjacencyGraph <EquatableTestVertex, EquatableTestEdge> graph) { var bidirectionalAdapterGraph = new BidirectionalAdapterGraph <EquatableTestVertex, EquatableTestEdge>(graph); BidirectionalAdapterGraph <EquatableTestVertex, EquatableTestEdge> deserializedGraph = SerializeDeserialize <EquatableTestVertex, EquatableTestEdge, BidirectionalAdapterGraph <EquatableTestVertex, EquatableTestEdge> >(bidirectionalAdapterGraph); Assert.IsTrue(EquateGraphs.Equate(graph, deserializedGraph)); }
public void BinarySerialization_AdapterGraph([NotNull] AdjacencyGraph <int, EquatableEdge <int> > graph) { var bidirectionalAdapterGraph = new BidirectionalAdapterGraph <int, EquatableEdge <int> >(graph); BidirectionalAdapterGraph <int, EquatableEdge <int> > deserializedGraph = SerializeDeserialize <int, EquatableEdge <int>, BidirectionalAdapterGraph <int, EquatableEdge <int> > >(bidirectionalAdapterGraph); Assert.IsTrue(EquateGraphs.Equate(graph, deserializedGraph)); }
public bool EquateWithComparer( IVertexAndEdgeListGraph <int, Edge <int> > g, IVertexAndEdgeListGraph <int, Edge <int> > h, IEqualityComparer <int> vertexEquality, IEqualityComparer <Edge <int> > edgeEquality) { return(EquateGraphs.Equate(g, h, vertexEquality, edgeEquality)); }
public void EquateTestVertexCount() { var g = new BidirectionalGraph <int, IEdge <int> >(); var f = new BidirectionalGraph <int, IEdge <int> >(); Assert.IsTrue(EquateGraphs.Equate <int, IEdge <int> >(g, f)); f.AddVertex(1); Assert.IsFalse(EquateGraphs.Equate <int, IEdge <int> >(g, f)); }
public void BinarySerialization_AdjacencyGraph([NotNull] AdjacencyGraph <int, EquatableEdge <int> > graph) { AdjacencyGraph <int, EquatableEdge <int> > deserializedGraph1 = SerializeDeserialize <int, EquatableEdge <int>, AdjacencyGraph <int, EquatableEdge <int> > >(graph); Assert.IsTrue(EquateGraphs.Equate(graph, deserializedGraph1)); var arrayGraph = new ArrayAdjacencyGraph <int, EquatableEdge <int> >(graph); ArrayAdjacencyGraph <int, EquatableEdge <int> > deserializedGraph2 = SerializeDeserialize <int, EquatableEdge <int>, ArrayAdjacencyGraph <int, EquatableEdge <int> > >(arrayGraph); Assert.IsTrue(EquateGraphs.Equate(arrayGraph, deserializedGraph2)); }
public void BinarySerialization_UndirectedGraph_Simple([NotNull] UndirectedGraph <int, EquatableEdge <int> > graph) { UndirectedGraph <int, EquatableEdge <int> > deserializedGraph1 = SerializeDeserialize <int, EquatableEdge <int>, UndirectedGraph <int, EquatableEdge <int> > >(graph); Assert.IsTrue(EquateGraphs.Equate(graph, deserializedGraph1)); var arrayGraph = new ArrayUndirectedGraph <int, EquatableEdge <int> >(graph); ArrayUndirectedGraph <int, EquatableEdge <int> > deserializedGraph2 = SerializeDeserialize <int, EquatableEdge <int>, ArrayUndirectedGraph <int, EquatableEdge <int> > >(arrayGraph); Assert.IsTrue(EquateGraphs.Equate(graph, deserializedGraph2)); }
public void BinarySerialization_AdjacencyGraph_Complex([NotNull] AdjacencyGraph <EquatableTestVertex, EquatableTestEdge> graph) { AdjacencyGraph <EquatableTestVertex, EquatableTestEdge> deserializedGraph1 = SerializeDeserialize <EquatableTestVertex, EquatableTestEdge, AdjacencyGraph <EquatableTestVertex, EquatableTestEdge> >(graph); Assert.IsTrue(EquateGraphs.Equate(graph, deserializedGraph1)); var arrayGraph = new ArrayAdjacencyGraph <EquatableTestVertex, EquatableTestEdge>(graph); ArrayAdjacencyGraph <EquatableTestVertex, EquatableTestEdge> deserializedGraph2 = SerializeDeserialize <EquatableTestVertex, EquatableTestEdge, ArrayAdjacencyGraph <EquatableTestVertex, EquatableTestEdge> >(arrayGraph); Assert.IsTrue(EquateGraphs.Equate(arrayGraph, deserializedGraph2)); }
public void EquateWithComparer_Throws() { // ReSharper disable ReturnValueOfPureMethodIsNotUsed // ReSharper disable AssignNullToNotNullAttribute Assert.Throws <ArgumentNullException>( () => EquateGraphs.Equate <int, Edge <int> >(null, null, EqualityComparer <int> .Default, null)); Assert.Throws <ArgumentNullException>( () => EquateGraphs.Equate <int, Edge <int> >(null, null, null, EqualityComparer <Edge <int> > .Default)); Assert.Throws <ArgumentNullException>( () => EquateGraphs.Equate <int, Edge <int> >(null, null, null, null)); // ReSharper restore AssignNullToNotNullAttribute // ReSharper restore ReturnValueOfPureMethodIsNotUsed }
public void EquateTestEdgeCount() { var g = new BidirectionalGraph <int, IEdge <int> >(); var f = new BidirectionalGraph <int, IEdge <int> >(); g.AddVertex(1); g.AddVertex(2); f.AddVertex(1); f.AddVertex(2); Assert.IsTrue(EquateGraphs.Equate <int, IEdge <int> >(g, f)); g.AddEdge(new EquatableEdge <int>(1, 2)); Assert.IsFalse(EquateGraphs.Equate <int, IEdge <int> >(g, f)); }
public void EquateTestNullNull() { Assert.IsTrue(EquateGraphs.Equate <int, IEdge <int> >(null, null)); }
public void EquateTestGraphNull() { var g = new BidirectionalGraph <int, IEdge <int> >(); Assert.IsFalse(EquateGraphs.Equate <int, IEdge <int> >(g, null)); }
public void EquateTestReferenceEquals() { var g = new BidirectionalGraph <int, IEdge <int> >(); Assert.IsTrue(EquateGraphs.Equate <int, IEdge <int> >(g, g)); }
public void GraphMLSerialization_HeaderCheck(bool emitDeclarationOnSerialize, bool emitDeclarationOnDeserialize) { var graph = new EquatableTestGraph { String = "graph", Int = 42 }; var vertex1 = new EquatableTestVertex("v1") { StringDefault = "foo", String = "string", Int = 10, Long = 20, Float = 25.0F, Double = 30.0, Bool = true }; var vertex2 = new EquatableTestVertex("v2") { StringDefault = "bar", String = "string2", Int = 110, Long = 120, Float = 125.0F, Double = 130.0, Bool = true }; graph.AddVertex(vertex1); graph.AddVertex(vertex2); var edge1 = new EquatableTestEdge(vertex1, vertex2, "e_1") { String = "edge", Int = 90, Long = 100, Float = 25.0F, Double = 110.0, Bool = true }; graph.AddEdge(edge1); EquatableTestGraph serializedGraph = VerifySerialization( graph, g => { using (var writer = new StringWriter()) { var settings = new XmlWriterSettings { Indent = true }; using (XmlWriter xmlWriter = XmlWriter.Create(writer, settings)) { var serializer = new GraphMLSerializer <EquatableTestVertex, EquatableTestEdge, EquatableTestGraph> { EmitDocumentDeclaration = emitDeclarationOnDeserialize }; serializer.Serialize( xmlWriter, g, vertex => vertex.ID, edge => edge.ID); } return(writer.ToString()); } }, xml => { using (var reader = new StringReader(xml)) { var serializer = new GraphMLDeserializer <EquatableTestVertex, EquatableTestEdge, EquatableTestGraph> { EmitDocumentDeclaration = emitDeclarationOnDeserialize }; #if SUPPORTS_XML_DTD_PROCESSING var settings = new XmlReaderSettings { ValidationFlags = XmlSchemaValidationFlags.ReportValidationWarnings, XmlResolver = new GraphMLXmlResolver(), DtdProcessing = DtdProcessing.Ignore }; using (XmlReader xmlReader = XmlReader.Create(reader, settings)) { #else var xmlReader = new XmlTextReader(reader); { xmlReader.ProhibitDtd = false; xmlReader.XmlResolver = null; #endif var g = new EquatableTestGraph(); serializer.Deserialize( xmlReader, g, id => new EquatableTestVertex(id), (source, target, id) => new EquatableTestEdge(source, target, id)); return(g); } } }); Assert.IsTrue( EquateGraphs.Equate( graph, serializedGraph)); }
public bool Equate( IVertexAndEdgeListGraph <int, Edge <int> > g, IVertexAndEdgeListGraph <int, Edge <int> > h) { return(EquateGraphs.Equate(g, h)); }