コード例 #1
0
        public void CountTest()
        {
            string input = @"
!A[?],
!A[?],
!C[count(@A)];";
            var    p     = new ResedaParser();

            p.dispTree(input);
            var         term = p.Generate(input);
            OutputEvent c    = (OutputEvent)term.subProcess.structuredData[2];

            System.Diagnostics.Debug.WriteLine(term.subProcess.ToSource());
            var term2 = p.Generate(term.subProcess.ToSource());

            Assert.AreEqual(term.ToSource(), term2.ToSource());
            c.Execute();
            System.Diagnostics.Debug.WriteLine(c.ToSource());
            System.Diagnostics.Debug.WriteLine(c.marking.value);
            Assert.AreEqual(c.marking.value.ToString(), "2");
        }
コード例 #2
0
        public void FreshIdTest()
        {
            string input = @"
!A[?],
!B[?],
!C[freshid()];";
            var    p     = new ResedaParser();

            p.dispTree(input);
            var         term = p.Generate(input);
            InputEvent  a    = (InputEvent)term.subProcess.structuredData[0];
            InputEvent  b    = (InputEvent)term.subProcess.structuredData[1];
            OutputEvent c    = (OutputEvent)term.subProcess.structuredData[2];

            System.Diagnostics.Debug.WriteLine(term.subProcess.ToSource());
            var term2 = p.Generate(term.subProcess.ToSource());

            Assert.AreEqual(term.ToSource(), term2.ToSource());
            c.Execute();
            System.Diagnostics.Debug.WriteLine(c.ToSource());
            System.Diagnostics.Debug.WriteLine(c.marking.value);
            Assert.AreEqual(c.marking.value.ToString(), "0");
            c.Execute();
            Assert.AreEqual(c.marking.value.ToString(), "1");
            a.Execute(3);
            c.Execute();
            Assert.AreEqual(c.marking.value.ToString(), "4");

            b.Execute(1);
            c.Execute();
            Assert.AreEqual(c.marking.value.ToString(), "5");

            b.Execute(10);
            c.Execute();
            Assert.AreEqual(c.marking.value.ToString(), "11");
        }