private static void TestSelectorOfSequences() { var bb = new BlackBoard(); var main = new SelectorTask("Main Selector"); var s1 = new SequenceTask("Sequence 1"); var s2 = new SequenceTask("Sequence 2"); var s3 = new SequenceTask("Sequence 3"); s1.AddChildTask(new TestSuccessLeaf("1")); s1.AddChildTask(new TestSuccessLeaf("2")); s1.AddChildTask(new AlwaysTrueTask(new TestFailureLeaf("3"))); s2.AddChildTask(new TestSuccessLeaf("1")); s2.AddChildTask(new TestFailureLeaf("2")); s2.AddChildTask(new TestSuccessLeaf("3")); s3.AddChildTask(new TestSuccessLeaf("1")); s3.AddChildTask(new TestSuccessLeaf("2")); s3.AddChildTask(new TestSuccessLeaf("3")); main.AddChildTask(s1); main.AddChildTask(s2); main.AddChildTask(s3); SetTimer(main, bb); }
public TaskStatus SelectorWithOneChildAfterOneTickReturns(TaskStatus taskStatus) { var task = new StatusActionTask(taskStatus); var sequenceTask = new SelectorTask(new List <ITask> { task }); return(sequenceTask.Tick()); }
public void SelectorContinuesToReturnResultAfterMultipleTicks( [Values(TaskStatus.Success, TaskStatus.Failure)] TaskStatus taskStatus) { var task = new StatusActionTask(taskStatus); var sequenceTask = new SelectorTask(new List <ITask> { task }); Assert.AreEqual(taskStatus, sequenceTask.Tick()); Assert.AreEqual(taskStatus, sequenceTask.Tick()); Assert.AreEqual(taskStatus, sequenceTask.Tick()); }
public void SelectorWithMultipleChildrenReturningSuccessReturnsSuccessImmediately() { var childTasks = new List <ITask>(); childTasks.Add(new StatusActionTask(TaskStatus.Success)); childTasks.Add(new StatusActionTask(TaskStatus.Success)); childTasks.Add(new StatusActionTask(TaskStatus.Success)); childTasks.Add(new StatusActionTask(TaskStatus.Success)); var selectorTask = new SelectorTask(childTasks); Assert.AreEqual(TaskStatus.Success, selectorTask.Tick()); }
public void SelectorWithAllChildrenIncompleteReturnsIncomplete() { var childTasks = new List <ITask>(); childTasks.Add(new StatusActionTask(TaskStatus.Incomplete)); childTasks.Add(new StatusActionTask(TaskStatus.Incomplete)); childTasks.Add(new StatusActionTask(TaskStatus.Incomplete)); var selectorTask = new SelectorTask(childTasks); Assert.AreEqual(TaskStatus.Incomplete, selectorTask.Tick()); Assert.AreEqual(TaskStatus.Incomplete, selectorTask.Tick()); Assert.AreEqual(TaskStatus.Incomplete, selectorTask.Tick()); }
private static void TestSimpleSelector() { var bb = new BlackBoard(); var selector = new SelectorTask("Main Sequence"); selector.AddChildTask(new TestFailureLeaf("Fail 1")); selector.AddChildTask(new TestFailureLeaf("Fail 2")); selector.AddChildTask(new TestSuccessLeaf("Success 3")); selector.AddChildTask(new TestFailureLeaf("Fail 4")); selector.AddChildTask(new TestFailureLeaf("Fail 5")); SetTimer(selector, bb); }
public void SelectorWithChildReturningSuccessReturnsSuccessAfterThatChildIsTicked() { var childTasks = new List <ITask>(); childTasks.Add(new StatusActionTask(TaskStatus.Failure)); childTasks.Add(new StatusActionTask(TaskStatus.Failure)); childTasks.Add(new StatusActionTask(TaskStatus.Failure)); childTasks.Add(new StatusActionTask(TaskStatus.Success)); childTasks.Add(new StatusActionTask(TaskStatus.Success)); childTasks.Add(new StatusActionTask(TaskStatus.Success)); var selectorTask = new SelectorTask(childTasks); Assert.AreEqual(TaskStatus.Incomplete, selectorTask.Tick()); Assert.AreEqual(TaskStatus.Incomplete, selectorTask.Tick()); Assert.AreEqual(TaskStatus.Incomplete, selectorTask.Tick()); Assert.AreEqual(TaskStatus.Success, selectorTask.Tick()); }
protected override BehaviorTask createTask() { SelectorTask pTask = new SelectorTask(); return(pTask); }
protected override BehaviorTask createTask() { SelectorTask pTask = new SelectorTask(); return pTask; }