public void TestNode() { var func = new Function(); var setValueAtKey = new SetValueAtKey(); var hasKey = new HasKey(); var dictVar = new Variable(DictType.Instance, new Dictionary<string, dynamic> { { "tata", "tutu" } }); var boolVar = new Variable(Scalar.Boolean, false); uint setValueAtID = func.addInstruction(setValueAtKey); uint getDictID = func.addInstruction(new Getter(dictVar)); uint hasKeyID = func.addInstruction(hasKey); uint setBoolVarID = func.addInstruction(new Setter(boolVar)); func.LinkInstructionData(getDictID, "reference", setValueAtID, "reference"); func.setEntryPoint(setValueAtID); setValueAtKey.SetInputValue("key", "toto"); setValueAtKey.SetInputValue("value", 3.42); hasKey.SetInputValue("key", "toto"); func.LinkInstructionData(getDictID, "reference", hasKeyID, "reference"); func.LinkInstructionData(hasKeyID, "result", setBoolVarID, "value"); func.LinkInstructionExecution(setValueAtID, 0, setBoolVarID); Assert.IsFalse(dictVar.Value.ContainsKey("toto")); func.Call(); Assert.IsTrue(dictVar.Value.ContainsKey("toto")); Assert.IsTrue(dictVar.Value["toto"] == 3.42); Assert.IsTrue(boolVar.Value); }
public object Visit(HasKey e) { if (e.modality != Statement.Modality.IS) { return(CreateNull()); } return(CreateNull()); }
public void ShouldProvideTheDefaultValueOfTheProperty() { var key1 = new HasKey<Organization, int>(organization => organization.Id); object value = key1.Value(); value.Should().Be().EqualTo(0); var key2 = new HasKey<Organization, string>(organization => organization.Code); key2.Value().Should().Be().Null(); }
public void Update_KeyEquatable() { var changes = new List <NotifyCollectionChangedEventArgs>(); var c = new ObservableCollection <HasKey>(Enumerable.Range(0, 10).Select(i => new HasKey(i.ToString(), i))); c.CollectionChanged += (s, e) => changes.Add(e); var updated = c.ToList(); updated[7] = new HasKey("7a", 7); c.Update(updated); Assert.AreEqual(1, changes.Count); Assert.AreEqual(NotifyCollectionChangedAction.Replace, changes.Single().Action); Assert.AreEqual("7a", c[7].Content); }
public override object Visit(HasKey e) { UnionDepth.Add(e.DataRoles.Count + e.Roles.Count); return(base.Visit(e)); }
public override object Visit(HasKey e) { StringBuilder[] side = new StringBuilder[] { new StringBuilder(), new StringBuilder() }; var conc = owlNC.getIRIFromId((e.C as CNL.DL.Atomic).id, EntityKind.Concept); for (int i = 0; i <= 1; i++) { side[i].Append("(?X" + i.ToString() + " rdf:type <" + conc + ">)"); } int varid = 0; foreach (var r in e.Roles) { for (int i = 0; i <= 1; i++) { side[i].Append(", "); if (r is CNL.DL.Atomic) { var q = owlNC.getIRIFromId((r as CNL.DL.Atomic).id, EntityKind.Role); side[i].Append("(?X" + i.ToString() + " <" + q + "> " + "?Y" + varid.ToString() + "X" + i.ToString() + ")"); } else if (r is CNL.DL.RoleInversion) { var rr = (r as CNL.DL.RoleInversion).R; if (rr is CNL.DL.Atomic) { var q = owlNC.getIRIFromId((rr as CNL.DL.Atomic).id, EntityKind.Role); side[i].Append("(?Y" + varid.ToString() + "X" + i.ToString() + " <" + q + "> ?X" + i.ToString() + ")"); } } } varid++; } foreach (var r in e.DataRoles) { for (int i = 0; i <= 1; i++) { side[i].Append(", "); if (r is CNL.DL.Atomic) { var q = owlNC.getIRIFromId((r as CNL.DL.Atomic).id, EntityKind.DataRole); side[i].Append("(?X" + i.ToString() + " <" + q + "> " + "?Y" + varid.ToString() + "X" + i.ToString() + ")"); } } varid++; } // for sameas var idx = Interlocked.Increment(ref prp_key_cnt).ToString().ToString(); sb.Append("[prp-key-1-" + idx + ": "); id2stmt.Add("prp-key-1-" + idx, e); sb.Append(side.First() + "," + side.Last() + ", notEqual(?X0, ?X1)"); for (int z = 0; z < varid; z++) { sb.Append(", equal("); for (int i = 0; i <= 1; i++) { if (i > 0) { sb.Append(" ,"); } sb.Append("?Y" + z.ToString() + "X" + i.ToString()); } sb.Append(")"); } sb.Append(" -> (?X0 owl:sameAs ?X1)"); appendDebugString(sb, e); sb.AppendLine("]"); //for different var idx2 = Interlocked.Increment(ref prp_key_cnt).ToString(); sb.Append("[prp-key-2-" + idx2 + ": "); id2stmt.Add("prp-key-2-" + idx2, e); sb.Append(side.First() + "," + side.Last() + ", notEqual(?X0, ?X1)"); sb.Append(", pairwizeDifferentAtleastOnce("); bool first = true; for (int z = 0; z < varid; z++) { for (int i = 0; i <= 1; i++) { if (!first) { sb.Append(" ,"); } else { first = false; } sb.Append("?Y" + z.ToString() + "X" + i.ToString()); } } sb.Append(")"); sb.Append(" -> (?X0 owl:differentFrom ?X1)"); appendDebugString(sb, e); sb.AppendLine("]"); return(null); }