public void FailureTest() { BT_Failure failure = new BT_Failure(); ResultContainer result = failure.Next(); Assert.AreEqual(BT_Result.FAILURE, result.Result); }
public void SequenceTest2() { // sequence algorithm test // // 1 __ success1 __ ex1 // root - sequence -| // 2 --- failure __ ex2 // | // 3 --- success2 --- ex3 // // ex1 : should be activated once // ex2 : should be activated twice // ex3 : should not be activated BT_Root root = new BT_Root(); BT_Sequence sequence = new BT_Sequence(); BT_Success success1 = new BT_Success(); BT_Success success2 = new BT_Success(); BT_Failure failure = new BT_Failure(); BT_Execute ex1 = new BT_Execute(); BT_Execute ex2 = new BT_Execute(); BT_Execute ex3 = new BT_Execute(); root.AddChild(sequence); sequence.AddChild(success1); sequence.AddChild(failure); sequence.AddChild(success2); success1.AddChild(ex1); failure.AddChild(ex2); success2.AddChild(ex3); bool isOK1 = false, isOK2 = false, isOK3 = false; ex1.AddEvent(() => { isOK1 = !isOK1; }); ex2.AddEvent(() => { isOK2 = !isOK2; }); ex3.AddEvent(() => { isOK3 = !isOK3; }); root.Next(); Assert.AreEqual(true, isOK1); Assert.AreEqual(false, isOK2); Assert.AreEqual(false, isOK3); root.Next(); Assert.AreEqual(true, isOK1); Assert.AreEqual(true, isOK2); Assert.AreEqual(false, isOK3); root.Next(); Assert.AreEqual(true, isOK1); Assert.AreEqual(false, isOK2); Assert.AreEqual(false, isOK3); }
public void SelectorTest2() { // selector algorithm test // // 1 __ failure __ ex1 //root - selector -| // 2 | -- ex2 -- succcess // 3 ----ex3 // // ex1 : should be activated // ex2 : should be activated // ex3 : should not be activated BT_Root root = new BT_Root(); BT_Selector selector = new BT_Selector(); BT_Failure failure = new BT_Failure(); BT_Execute ex1 = new BT_Execute(); BT_Execute ex2 = new BT_Execute(); BT_Execute ex3 = new BT_Execute(); BT_Success success = new BT_Success(); root.AddChild(selector); selector.AddChild(failure); selector.AddChild(ex2); selector.AddChild(ex3); failure.AddChild(ex1); ex2.AddChild(success); bool isOK1 = false, isOK2 = false, isOK3 = true; ex1.AddEvent(() => { isOK1 = true; }); ex2.AddEvent(() => { isOK2 = true; }); ex3.AddEvent(() => { isOK3 = false; }); root.Next(); Assert.AreEqual(true, isOK1); Assert.AreEqual(true, isOK2); Assert.AreEqual(true, isOK3); }
public void SelectorTest1() { // selector stopable test // // 1 _ failure1 _ ex1 //root - selector-| // 2 - failure2 - ex2 // // ex1: should be activated // ex2: should be activated bool isOK1 = false; bool isOK2 = false; BT_Root root = new BT_Root(); BT_Selector s = new BT_Selector(); BT_Failure failure1 = new BT_Failure(); s.AddChild(failure1); BT_Failure failure2 = new BT_Failure(); s.AddChild(failure2); BT_Execute ex1 = new BT_Execute(); ex1.AddEvent(() => { isOK1 = true; }); failure1.AddChild(ex1); BT_Execute ex2 = new BT_Execute(); ex2.AddEvent(() => { isOK2 = true; }); failure2.AddChild(ex2); root.AddChild(s); root.Next(); Assert.AreEqual(true, isOK1); Assert.AreEqual(true, isOK2); }