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)); } }
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); } }