Exemple #1
0
        public void Assignment()
        {
            IContext ctx = new SimpleContext();

            Node root = new SequenceNode("Root", null, false);

            root.Children.Add(new IntegerAssignmentCmd("VarA", 1234));
            root.Children.Add(new IntegerAssignmentCmd("VarB", 4321));


            Node p   = root;
            var  ret = p.Tick(ctx);

            Console.WriteLine("END-RUN: {0} VarA={1}, VarB={2}",
                              ret,
                              ctx.GetInteger("VarA"),
                              ctx.GetInteger("VarB"));

            Assert.AreEqual(ctx.GetInteger("VarA"), 1234);
            Assert.AreEqual(ctx.GetInteger("VarB"), 4321);
        }
Exemple #2
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));
            }
        }
Exemple #3
0
        public void Assignments()
        {
            Random r = new Random();
            var    c = new SimpleContext();

            for (int i = 0; i < 128; i++)
            {
                var q = r.Next();
                if (r.Next() % 2 == 0)
                {
                    q = -q;
                }
                var n = new IntegerAssignmentCmd("A" + i, q);
                n.Tick(c);

                Assert.AreEqual(q, c.GetInteger("A" + i));
            }
        }
Exemple #4
0
        IContext CreateCompare(long a, long b, Comparison c)
        {
            IContext ctx = new SimpleContext();

            Node root = new SequenceNode("Root", null, false);

            root.Children.Add(new IntegerAssignmentCmd("VarA", a));
            root.Children.Add(new IntegerAssignmentCmd("VarB", b));
            Node cmp = new IntegerCompareNode("compare", "VarA", c, "VarB");

            cmp.Children.Add(new IntegerAssignmentCmd("Result", 1));
            root.Children.Add(cmp);

            Node p = root;

            Console.WriteLine("BEGIN RUN {0} {1} {2}", a, c, b);
            var ret = p.Tick(ctx);

            Console.WriteLine("END-RUN: {0} C={1}", ret, ctx.GetInteger("C"));
            return(ctx);
        }