Esempio n. 1
0
        public void TestGraphSerializationWithLightEdges()
        {
            using (var tempStorage = new TempFileStorage(canGetFileNames: true, rootPath: TestOutputDirectory))
            {
                MutableDirectedGraph graph;
                NodeId[]             nodes;

                CreateGraphWithLightEdges(out graph, out nodes);

                string fileName = tempStorage.GetUniqueFileName();
                using (FileStream fileStream = File.Open(fileName, FileMode.Create))
                {
                    var writer = new BuildXLWriter(debug: false, stream: fileStream, leaveOpen: false, logStats: false);
                    graph.Serialize(writer);
                }

                MutableDirectedGraph newGraph;

                using (FileStream fileStream = File.Open(fileName, FileMode.Open))
                {
                    var reader = new BuildXLReader(debug: false, stream: fileStream, leaveOpen: false);
                    newGraph = MutableDirectedGraph.Deserialize(reader);
                }

                XAssert.AreEqual(newGraph.NodeCount, nodes.Length);
                XAssert.AreEqual(newGraph.EdgeCount, 5);

                XAssert.IsTrue(newGraph.ContainsEdge(nodes[0], nodes[1], isLight: true));
                XAssert.IsTrue(newGraph.ContainsEdge(nodes[0], nodes[1], isLight: false));
                XAssert.IsFalse(newGraph.ContainsEdge(nodes[1], nodes[0], isLight: true));
                XAssert.IsFalse(newGraph.ContainsEdge(nodes[1], nodes[0], isLight: false));
                XAssert.IsFalse(newGraph.ContainsEdge(nodes[1], nodes[3], isLight: true));
            }
        }
Esempio n. 2
0
        public async Task TestGraphSerialization()
        {
            using (var stream = new MemoryStream())
            {
                MutableDirectedGraph graph;
                NodeId[]             nodes;

                CreateGraph(out graph, out nodes);

                var writer = new BuildXLWriter(debug: false, stream: stream, leaveOpen: true, logStats: false);
                graph.Serialize(writer);

                MutableDirectedGraph newMutableGraph;
                stream.Position = 0;
                var reader = new BuildXLReader(debug: false, stream: stream, leaveOpen: true);
                newMutableGraph = MutableDirectedGraph.Deserialize(reader);

                DeserializedDirectedGraph newImmutableDirectedGraph;
                stream.Position           = 0;
                newImmutableDirectedGraph = await DeserializedDirectedGraph.DeserializeAsync(reader);

                XAssert.IsTrue(newMutableGraph.ContainsEdge(nodes[11], nodes[8]));
                XAssert.IsFalse(newMutableGraph.ContainsEdge(nodes[11], nodes[2]));

                TestGraphSerializationPerformCommonValidations(newImmutableDirectedGraph, nodes, graph);
                TestGraphSerializationPerformCommonValidations(newMutableGraph, nodes, graph);
            }
        }