public void CanContains() { var q = new CappedQueue <int>(3); q.Enqueue(1); q.Enqueue(2); q.Enqueue(3); q.Enqueue(4); Assert.False(q.Contains(1)); Assert.True(q.Contains(2)); Assert.True(q.Contains(3)); Assert.True(q.Contains(4)); Assert.False(q.Contains(5)); var qq = new CappedQueue <string>(3); qq.Enqueue("one"); qq.Enqueue("two"); qq.Enqueue(null); Assert.True(qq.Contains("one")); Assert.True(qq.Contains("two")); Assert.True(qq.Contains(null)); Assert.False(qq.Contains("three")); }
/// <summary> /// Gets a random child assuring the new random is not the previous random picked. /// </summary> /// <returns></returns> private BehaviorNode GetRandomChild() { while (true) { int randomChildIndex = Random.Range(0, ChildrenNodes.Count); if (Agent.Memory.Contains(Agent.TargetProfessor)) { return(ChildrenNodes.First(node => node.Professor == Agent.TargetProfessor)); } if (ChildrenNodes[randomChildIndex] == _previousRandom || _memory.Contains(ChildrenNodes[randomChildIndex].Professor)) { continue; } return(ChildrenNodes[randomChildIndex]); } }