public void Add_FilledNameSearchTree_False(string name, string value)
 {
     var tree = new NameSearchTree<string>();
     Assert.Throws<DuplicatedKeyException>(() =>
     {
         tree.Add(Name.BuildName(name), value);
         tree.Add(Name.BuildName(name), String.Empty);
     });
 }
Beispiel #2
0
        public void SwapPerspective(Name oldPerspective, Name newPerspective)
        {
            var currentKeys = m_registry.Keys.ToArray();
            foreach (var key in currentKeys)
            {
                var evt = m_registry[key];
                m_registry[key] = evt.SwapPerspective(oldPerspective, newPerspective);
            }

            var newIndexes = new NameSearchTree<List<uint>>();
            foreach (var p in m_typeIndexes)
            {
                var k = p.Key.SwapTerms(oldPerspective, newPerspective);
                newIndexes[k] = p.Value;
            }
            m_typeIndexes = newIndexes;
        }
 public void Test_NameSearchTree_Count(NameSearchTree <int> nst, int expectedCount)
 {
     Assert.AreEqual(nst.Count, expectedCount);
 }
        public void Add_EmptyNameSearchTree_True(string name, string value)
        {
            var tree = new NameSearchTree <string>();

            tree.Add(Name.BuildName(name), value);
        }
Beispiel #5
0
 private KB()
 {
     m_knowledgeStorage  = new NameSearchTree <KnowledgeEntry>();
     m_dynamicProperties = new NameSearchTree <DynamicKnowledgeEntry>();
     RegistNativeDynamicProperties(this);
 }
        public void SetObjectData(ISerializationData dataHolder, ISerializationContext context)
        {
            AppraisalWeight = dataHolder.GetValue<short>("AppraisalWeight");
            var rules = dataHolder.GetValue<AppraisalRule[]>("Rules");

            if(Rules==null)
                Rules = new NameSearchTree<HashSet<AppraisalRule>>();
            else
                Rules.Clear();

            foreach (var r in rules)
            {
                r.Id = Guid.NewGuid();
                AddEmotionalReaction(r);
            }
        }
Beispiel #7
0
 public WorldModelAsset()
 {
     actions       = new Dictionary <Name, List <Effect> >();
     priorityRules = new Dictionary <Name, int>();
     actionNames   = new NameSearchTree <Name>();
 }
 public void NameDictionary_Invalid_Unify(NameSearchTree<int> dict, Name expression, SubstitutionSet bindings)
 {
     var result = dict.Unify(expression, bindings);
     Assert.That(!result.Any(),"The unification returned valid results.");
 }
 public void Remove_EmptyNameSearchTree_False(string name, string value)
 {
     var tree = new NameSearchTree<string>();
     var removeSuccess = tree.Remove(Name.BuildName(name));
     Assert.That(!removeSuccess);
 }
Beispiel #10
0
 private KB()
 {
     m_knowledgeStorage = new NameSearchTree<KnowledgeEntry>();
     m_dynamicProperties = new NameSearchTree<DynamicKnowledgeEntry>();
     RegistNativeDynamicProperties(this);
 }
Beispiel #11
0
        public void SetPerspective(Name newPerspective)
        {
            if(!newPerspective.IsPrimitive)
                throw new ArgumentException("Only primitive symbols are allowed to be perspectives.");

            if(newPerspective == Name.NIL_SYMBOL)
                throw new ArgumentException("NIL symbol cannot be used as a perspective.");

            if (newPerspective == Name.SELF_SYMBOL)
                throw new ArgumentException("SELF symbol cannot be set as a default a perspectives.");

            if (newPerspective==Perspective)
                return;

            if(GetAllPerspectives().Contains(newPerspective))
                throw new ArgumentException($"The is already beliefs containing perspectives for {newPerspective}. Changing to the requested perspective would result in belief conflicts.");

            //Modify believes to reflect perspective changes
            var newStorage = new NameSearchTree<KnowledgeEntry>();
            foreach (var entry in m_knowledgeStorage)
            {
                var newProperty = entry.Key.SwapTerms(Perspective, newPerspective);
                newStorage.Add(newProperty,entry.Value);
            }
            m_knowledgeStorage.Clear();
            m_knowledgeStorage = newStorage;
            Perspective = newPerspective;
        }
Beispiel #12
0
        public void SetObjectData(ISerializationData dataHolder, ISerializationContext context)
        {
            if(m_knowledgeStorage == null)
                m_knowledgeStorage = new NameSearchTree<KnowledgeEntry>();
            else
                m_knowledgeStorage.Clear();

            if(m_dynamicProperties==null)
                m_dynamicProperties = new NameSearchTree<DynamicKnowledgeEntry>();
            else
                m_dynamicProperties.Clear();
            RegistNativeDynamicProperties(this);

            Perspective = dataHolder.GetValue<Name>("Perspective");
            var knowledge = dataHolder.GetValueGraphNode("Knowledge");
            var it = ((IObjectGraphNode) knowledge).GetEnumerator();
            while (it.MoveNext())
            {
                var perspective = String2Perspective(it.Current.FieldName);
                var holder = (IObjectGraphNode) it.Current.FieldNode;
                foreach (var field in holder)
                {
                    var property = (Name) field.FieldName;
                    var value = field.FieldNode.RebuildObject<Name>();
                    if(value==null)
                        continue;

                    Tell(property,value,perspective);
                }
            }
        }
Beispiel #13
0
 public ReactiveAppraisalDerivator()
 {
     this.AppraisalWeight = DEFAULT_APPRAISAL_WEIGHT;
     this.Rules           = new NameSearchTree <HashSet <AppraisalRule> >();
 }
Beispiel #14
0
		private KB()
		{
			m_knowledgeStorage = new NameSearchTree<KnowledgeEntry>();
            CreateRegistry();
			BindToRegistry(this);
		}
 public void Contains_NameSearchTreeThatContainsName_True(string name, string value)
 {
     var tree = new NameSearchTree<string>();
     tree.Add(Name.BuildName(name), value);
     Assert.That(tree.ContainsKey(Name.BuildName(name)));
 }
 public void Depth_EmptyNameSearchTree_0()
 {
     var tree = new NameSearchTree<string>();
     Assert.That(tree.Depth == 0);
 }
 public void Remove_NameSearchTreeThatContainsName_True(string name, string value)
 {
     var tree = new NameSearchTree<string>();
     tree.Add(Name.BuildName(name), value);
     var removeSuccess = tree.Remove(Name.BuildName(name));
     Assert.That(removeSuccess);
 }
        public void NameDictionary_Valid_Unify(NameSearchTree<int> dict, Name expression, SubstitutionSet bindings,
			IEnumerable<Pair<int, SubstitutionSet>> expectedResults)
        {
            var result = dict.Unify(expression, bindings);
            var resultDict = result.ToDictionary(p => p.Item1, p => p.Item2);
            var expectDict = expectedResults.ToDictionary(p => p.Item1, p => p.Item2);

            Assert.AreEqual(expectDict.Count, resultDict.Count, "Number of results mismatch");

            foreach (var pair in resultDict)
            {
                SubstitutionSet t;
                Assert.That(expectDict.TryGetValue(pair.Key, out t), "Unable to find entry");
                Assert.That(t.Equals(pair.Value), "Binding list is not equal to the expected");
            }
        }
        public void Special_Test_For_Bug_22_11_2017()
        {
            var tree = new NameSearchTree<byte>();

            var n1 = (Name) "Speak(-,end,Meanings(a(b),c(d)),t)";
            var n2 = (Name)"Speak(-,end,Meanings(a(c),e),t)";
            var test1 = (Name)"Speak(-,end,*,t)";

            tree.Add(n1,0);
            tree.Add(n2, 0);
            Assert.IsTrue(tree.Unify(test1).All(r => r.Item1 == 0));
        }
 public SocialImportanceAsset()
 {
     m_kB = null;
     m_attributionRules = new HashSet <AttributionRule>();
     m_cachedSI         = new NameSearchTree <NameSearchTree <float> >();
 }
 public void Test_NameSearchTree_Count(NameSearchTree<int> nst, int expectedCount)
 {
     Assert.AreEqual(nst.Count,expectedCount);
 }
 public ReactiveAppraisalDerivator()
 {
     this.AppraisalWeight = DEFAULT_APPRAISAL_WEIGHT;
     this.Rules = new NameSearchTree<HashSet<AppraisalRule>>();
 }
 public void Add_EmptyNameSearchTree_True(string name, string value)
 {
     var tree = new NameSearchTree<string>();
     tree.Add(Name.BuildName(name), value);
 }
        public void Depth_EmptyNameSearchTree_0()
        {
            var tree = new NameSearchTree <string>();

            Assert.That(tree.Depth == 0);
        }
 public void Contains_EmptySearchTree_False(string name, string value)
 {
     var tree = new NameSearchTree<string>();
     Assert.That(!tree.ContainsKey(Name.BuildName(name)));
 }
        public void NameDictionary_Invalid_Unify(NameSearchTree <int> dict, Name expression, SubstitutionSet bindings)
        {
            var result = dict.Unify(expression, bindings);

            Assert.That(!result.Any(), "The unification returned valid results.");
        }
 private static NameSearchTree<int> BuildInput()
 {
     NameSearchTree<int> dict = new NameSearchTree<int>();
     for (int i = 0; i < inputStrings.Length; i++)
     {
         dict.Add(Name.BuildName(inputStrings[i]), i);
     }
     return dict;
 }
        public void Contains_EmptySearchTree_False(string name, string value)
        {
            var tree = new NameSearchTree <string>();

            Assert.That(!tree.ContainsKey(Name.BuildName(name)));
        }
Beispiel #29
0
        public void SetObjectData(ISerializationData dataHolder, ISerializationContext context)
        {
            Tick = dataHolder.GetValue<ulong>("Tick");

            m_eventGUIDCounter = 0;
            if (m_registry == null)
                m_registry = new Dictionary<uint, BaseEvent>();
            else
                m_registry.Clear();

            if(m_typeIndexes==null)
                m_typeIndexes=new NameSearchTree<List<uint>>();
            else
                m_typeIndexes.Clear();

            var recs = dataHolder.GetValue<BaseEvent[]>("records");
            if (recs == null)
                return;

            foreach (var r in recs)
            {
                if (m_eventGUIDCounter < r.Id)
                    m_eventGUIDCounter = r.Id;

                AddRecord(r);
            }
            m_eventGUIDCounter++;
        }