Пример #1
0
        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");
        }
Пример #2
0
        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));
        }
Пример #3
0
        /// <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);
        }
Пример #4
0
        /// <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);
        }