public void Blank_NewAutoNoCollide() { var f = new NodeFactory(); var g = f.BlankSelf(); var n1 = f.Blank(g, "auto#1"); var n2 = f.Blank(g); Assert.IsFalse(n1 == n2, "Auto blank not same if label matches"); }
public void Blank_ReuseAuto() { var f = new NodeFactory(); var g = f.BlankSelf(); var n1 = f.Blank(g); var n2 = f.Blank(g, n1.Value.Label); Assert.AreEqual(n1, n2, "matching auto matches node"); }
public void BlankNodes() { var f = new NodeFactory(); var g = f.BlankSelf(); var labeled = f.Blank(g, "anon"); Assert.IsTrue(labeled.GetValueString().EndsWith("anon"), "Expect blank with label."); var auto = f.Blank(g); Assert.IsTrue(auto.GetValueString().Contains(NodeFactory.BlankNodePrefix), "Has standard prefix."); Assert.IsTrue(f.Blank(g, "_:xxA").GetValueString().EndsWith("xxA"), "Blank node with label"); Assert.IsTrue(f.Blank(g, $"{NodeFactory.BlankNodePrefix}ABc") .GetValueString().EndsWith("ABc"), "blank node with full prefix"); }
public void SubjectCanBeUriOrBlank() { var f = new NodeFactory(); var g = f.BlankSelf(); var s1 = f.Blank(g, "_:node1"); Assert.AreEqual("node1", s1.Value.Label); var s2 = f.Blank(g); Assert.IsNotNull(s2.Value.Label, "generates new label"); var s3 = f.Uri("x:/someone#here"); Assert.IsNull(s3.Value.Label); Assert.IsNull(s3.Value.Scope); Assert.ThrowsException <InvalidUri>(() => f.Uri("23:/path")); }
public void BlankNode_ScopeToGraph() { var f = new NodeFactory(); //blanks in a scope can be found via same label. // but different scope, with same label in not the same blank. var g1 = f.BlankSelf(); var g2 = f.BlankSelf(); var b1 = f.Blank(g1, "A"); var b2 = f.Blank(g2, "A"); Assert.IsFalse(b1 == b2); //same scope and label will match. var b3 = f.Blank(g1, "A"); Assert.AreEqual(b1, b3); }
public void UsingBlankOrUri() { var f = new NodeFactory(); //a uri var uri = f.Uri("a:uri"); //a blank var blank = f.Blank(uri, "label"); //blank is scoped to uri Assert.AreEqual(uri, blank.Scope); //cannot create a uri node as object. var uri2 = new Uri("https://duckduckgo.com/"); Assert.ThrowsException <UriObjectNodeNotSupported>(() => f.New(uri2)); }
public void AddWithUpDownAndLet() { var f = new NodeFactory(); var rdf = new RdfData(f); var gId = f.BlankSelf("g1"); var g = rdf.GetGraph(gId).Update; // _:1 x:p1 "1". g.ForBlank("1", out _) .With(f.Uri("x:p1")) .Add(f.New("1")) // _:1 x:p2 "123" .Then().With(f.Uri("x:p2")).Add(f.New("123")) // _:1 x:p3 _:2 // _:2 x:p3 "fred" .Then().With(f.Uri("x:p3")).To(f.Blank(gId)) .With(f.Uri("x:p3")).Add(f.New("fred")) //get ref to _:2 .Then().Let(out _); }