public void WritingNTriplesVsTurtleNonAsciiCharsSpeed() { StringBuilder builder = new StringBuilder(); for (int i = 128; i <= 255; i++) { builder.Append((char)i); } INode n = new NodeFactory().CreateLiteralNode(builder.ToString()); const int repeatCount = 10000; // Write 10,000 times with NTriplesFormatter Stopwatch timer = new Stopwatch(); INodeFormatter formatter = new NTriplesFormatter(); System.IO.StringWriter strWriter = new System.IO.StringWriter(); timer.Start(); for (var i = 0; i < repeatCount; i++) { strWriter.WriteLine(formatter.Format(n)); } timer.Stop(); Console.WriteLine("NTriples Formatter Time Elapsed: " + timer.Elapsed); TimeSpan ntriplesTime = timer.Elapsed; timer.Reset(); // Write 10,000 times with NTriplesFormatter in RDF 1.1 mode formatter = new NTriplesFormatter(NTriplesSyntax.Rdf11); strWriter = new System.IO.StringWriter(); timer.Start(); for (var i = 0; i < repeatCount; i++) { strWriter.WriteLine(formatter.Format(n)); } timer.Stop(); Console.WriteLine("NTriples Formatter (RDF 1.1) Time Elapsed: " + timer.Elapsed); //TimeSpan ntriples11Time = timer.Elapsed; timer.Reset(); // Write and check round trip with Turtle and compare speed strWriter = new System.IO.StringWriter(); formatter = new UncompressedTurtleFormatter(); timer.Start(); for (var i = 0; i < repeatCount; i++) { strWriter.WriteLine(formatter.Format(n)); } timer.Stop(); Console.WriteLine("Turtle Write Time Elapsed: " + timer.Elapsed); TimeSpan turtleTime = timer.Elapsed; // Compare Speed Assert.IsTrue(turtleTime.CompareTo(ntriplesTime) == -1); }
private string ReportGraphDiff(GraphDiffReport gd) { var sb = new StringBuilder(); var formatter = new UncompressedTurtleFormatter(); var missingTriples = gd.RemovedTriples.ToList(); if (missingTriples.Any()) { sb.Append($"{missingTriples.Count} triples expected and not found:\n"); foreach (var t in missingTriples) { sb.Append("\t"); sb.AppendLine(t.ToString(formatter)); } } var unexpectedTriples = gd.AddedTriples.ToList(); if (unexpectedTriples.Any()) { sb.Append($"{unexpectedTriples.Count} triples found but not expected:\n"); foreach (var t in unexpectedTriples) { sb.Append("\t"); sb.AppendLine(t.ToString(formatter)); } } if (gd.RemovedMSGs.Any()) { var unexpectedGraphs = gd.RemovedMSGs.ToList(); sb.Append($"{unexpectedGraphs.Count} subgraphs expected and not found:\n"); foreach (var t in unexpectedGraphs.SelectMany(g => g.Triples)) { sb.Append("\t"); sb.AppendLine(t.ToString(formatter)); } } if (gd.AddedMSGs.Any()) { var missingGraphs = gd.AddedMSGs.ToList(); sb.Append($"{missingGraphs.Count} subgraphs unexpected:\n"); foreach (var t in missingGraphs.SelectMany(g => g.Triples)) { sb.Append("\t"); sb.AppendLine(t.ToString(formatter)); } } return(sb.ToString()); }