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));
        }
Exemple #7
0
        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));
        }
Exemple #8
0
        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));
        }
Exemple #9
0
        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));
        }
Exemple #10
0
        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));
        }
Exemple #15
0
        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));
 }
Exemple #18
0
        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));
        }
Exemple #20
0
        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));
        }
Exemple #21
0
        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
 }
Exemple #23
0
        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));
        }
Exemple #24
0
 public void EquateTestNullNull()
 {
     Assert.IsTrue(EquateGraphs.Equate <int, IEdge <int> >(null, null));
 }
Exemple #25
0
        public void EquateTestGraphNull()
        {
            var g = new BidirectionalGraph <int, IEdge <int> >();

            Assert.IsFalse(EquateGraphs.Equate <int, IEdge <int> >(g, null));
        }
Exemple #26
0
        public void EquateTestReferenceEquals()
        {
            var g = new BidirectionalGraph <int, IEdge <int> >();

            Assert.IsTrue(EquateGraphs.Equate <int, IEdge <int> >(g, g));
        }
Exemple #27
0
        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));
 }