예제 #1
0
        public void Until()
        {
            var ctx   = new SimpleContext();
            var items = new Result [] { Result.Error, Result.Failure, Result.Processing, Result.Success, Result.Unknown };

            foreach (var i in items)
            {
                var res = new HashSet <Result> ();
                res.Add(i);
                var rep = new RepeaterNode("Repeat", new AlwaysCmd(i), 10, res);
                var x   = rep.Tick(ctx);
                while (Result.Processing == x)
                {
                    x = rep.Tick(ctx);
                }
                Assert.AreEqual(Result.Success, x);
            }
        }
예제 #2
0
        public void Tick_AlwaysReturnsTrue(NodeStatus status)
        {
            var blackboard = this.GetBlackboard();
            var action     = new ActionNode <TestBlackboard>((TestBlackboard bb) =>
            {
                return(status);
            });
            var repeaterNode = new RepeaterNode <TestBlackboard>(action);

            Assert.AreEqual(NodeStatus.Running, repeaterNode.Tick(blackboard));
        }
예제 #3
0
        public void Repeat()
        {
            var ctx  = new SimpleContext();
            var init = 0;            //DateTime.UtcNow.Ticks % 0xFFFFFF;

            for (int i = 1; i < 128; i++)
            {
                ctx.SetInteger("A" + i, init);
                var chg = new IntegerChangeCmd("A" + i, 1);
                var rep = new RepeaterNode("Repeat", chg, i);
                while (Result.Processing == rep.Tick(ctx))
                {
                }

                Assert.AreEqual(init + i, ctx.GetInteger("A" + i));
            }
        }