public void CloneTest1() { MainOrganization.Models.Beliefs.On = true; _knowledge = new Knowledge(Network, MainOrganization.Models, "1", 1); var clone = (Knowledge)_knowledge.Clone(); Assert.AreEqual(_knowledge.Length, clone.Length); Assert.AreEqual(_knowledge.AssociatedBelief, clone.AssociatedBelief); }
private void Visit(FlowNode node, Knowledge knowledge) { // Memoize the results so we don't do more work than necessary. This is // also required to handle loops without hanging. Result result = new Result(node, knowledge); if (results.Contains(result)) { return; } results.Add(result); // Add to the knowledge flowing through this path, but stop if flow stops knowledge = knowledge.Clone(); if (!node.Update(knowledge)) { return; } // Merge that knowledge into the total knowledge for this node if (node.knowledge != null) { node.knowledge.UnionWith(knowledge); } else { node.knowledge = knowledge.Clone(); } // Propagate flow to next links foreach (FlowNode next in node.next) { Visit(next, knowledge); } }
public override Predicate Clone() { KnowPredicate kp = new KnowPredicate(Knowledge.Clone()); return(kp); }