public async Task WriteRead() { var file = new FileInfo( Path.Combine(Files.AppData.NqFileTests.FullName, nameof(WriteRead) + ".nt")); var rdf = new RdfData(new NodeFactory()); var g = rdf.GetFullGraph("graph:1") .Assert(rdf.Uri("sub1:/"), rdf.Uri("pred1:/"), rdf.New("basic text")); file.Directory.EnsureDelete(); var t = new NTripleFile(file); await t.Write(g); file.Refresh(); Assert.IsTrue(file.Exists); Assert.IsTrue(file.Length > 0, "wrote some data"); //copy current so it doesn't delete. var gCopy = g.Query.ToList(); g.Clear(); await t.Read(g); IEqualityComparer <Quad> eq = new SameQuad(); var gDiffs = g.Query.Except(gCopy, eq).ToList(); Assert.IsFalse(gDiffs.Any(), "No difference"); }
public void SameQuad_() { var f = new NodeFactory(); var q1 = new Quad(f.BlankSelf(), f.Uri("x:/s"), f.Uri("x:/p"), f.New("a")); var q2 = new Quad(q1.Graph, q1.Subject, f.Uri("x:/p"), q1.Object); var target = new SameQuad(); Assert.IsTrue(target.Equals(q1, q2)); }
/// <inheritdoc /> public int Replace(IEnumerable <Quad> newQuads, IEnumerable <Quad> oldQuads) { var compare = new SameQuad(); var found = _data.Where(x => oldQuads.Contains(x, compare)) .ToArray(); foreach (var item in found) { _data.Remove(item); } _data.AddRange(newQuads); return(found.Length); }
/// <inheritdoc /> public int Retract(params Quad[] items) { var compare = new SameQuad(); var qryRefEqual = _data .Where(x => items.Contains(x, compare)) .ToArray(); foreach (var item in qryRefEqual) { _data.Remove(item); } return(qryRefEqual.Length); }