public void TestModify()
        {
            string raw = @"test_demon =
            {
                group =
                {
                    base = 50

                    modifier =
                    {
                        value = 50
                        condition =
                        {
                            equal = {sub.a, 1}
                        }
                    }
                } 
            }";

            DataVisit.Visitor.InitVisitMap(typeof(TestData));
            DataVisit.Visitor.SetVisitData(TestData.inst);

            Parser.Semantic.Visitor.GetValueFunc = DataVisit.Visitor.Get;
            Parser.Semantic.Visitor.SetValueFunc = DataVisit.Visitor.Set;

            var       syntaxItem = SyntaxItem.RootParse(raw);
            TestDemon demo       = SemanticParser.DoParser <TestDemon>(syntaxItem.Find("test_demon"));

            Assert.AreEqual(100, demo.group.CalcValue());

            TestData.inst.sub.a = 2;
            Assert.AreEqual(50, demo.group.CalcValue());
        }
        public void TestEqual()
        {
            string    raw        = @"test_demon =
            {
                condition =
                {
                    equal = {1, 1}
                }
            }";
            var       syntaxItem = SyntaxItem.RootParse(raw);
            TestDemon demo       = SemanticParser.DoParser <TestDemon>(syntaxItem.Find("test_demon"));

            Assert.IsTrue(demo.condition.Rslt());

            raw        = @"test_demon =
            {
                condition =
                {
                    equal = {1, 12}
                }
            }";
            syntaxItem = SyntaxItem.RootParse(raw);
            demo       = SemanticParser.DoParser <TestDemon>(syntaxItem.Find("test_demon"));

            Assert.IsFalse(demo.condition.Rslt());
        }
Exemple #3
0
        public void TestReduce()
        {
            string raw = @"test_demon =
            {
                selected =
                {
                    reduce = {sub.a, 1}
                }
            }";

            DataVisit.Visitor.InitVisitMap(typeof(TestData));
            DataVisit.Visitor.SetVisitData(TestData.inst);

            Parser.Semantic.Visitor.GetValueFunc = DataVisit.Visitor.Get;
            Parser.Semantic.Visitor.SetValueFunc = DataVisit.Visitor.Set;

            var       syntaxItem = SyntaxItem.RootParse(raw);
            TestDemon demo       = SemanticParser.DoParser <TestDemon>(syntaxItem.Find("test_demon"));

            TestData.inst.sub.a = 1;

            demo.operation.Do();

            Assert.AreEqual(0, TestData.inst.sub.a);
        }
        public void TestAnd()
        {
            string raw = @"test_demon =
            {
                condition =
                {
                    and =
                    {
                        less = {1, 12}
                        greater = {1, 0}
                    }
                }
            }";

            var       syntaxItem = SyntaxItem.RootParse(raw);
            TestDemon demo       = SemanticParser.DoParser <TestDemon>(syntaxItem.Find("test_demon"));

            Assert.IsTrue(demo.condition.Rslt());


            raw = @"test_demon =
            {
                condition =
                {
                    and =
                    {
                        less = {1, 12}
                        greater = {1, 12}
                    }
                }
            }";

            syntaxItem = SyntaxItem.RootParse(raw);
            demo       = SemanticParser.DoParser <TestDemon>(syntaxItem.Find("test_demon"));

            Assert.IsFalse(demo.condition.Rslt());

            raw = @"test_demon =
            {
                condition =
                {
                    and =
                    {
                        less = {1, 0}
                        greater = {1, 12}
                    }
                }
            }";

            syntaxItem = SyntaxItem.RootParse(raw);
            demo       = SemanticParser.DoParser <TestDemon>(syntaxItem.Find("test_demon"));

            Assert.IsFalse(demo.condition.Rslt());
        }
        public void TestBaseValue()
        {
            string    raw        = @"test_demon =
            {
                group =
                {
                    base = 100
                } 
            }";
            var       syntaxItem = SyntaxItem.RootParse(raw);
            TestDemon demo       = SemanticParser.DoParser <TestDemon>(syntaxItem.Find("test_demon"));

            Assert.AreEqual(100, demo.group.CalcValue());
        }
Exemple #6
0
        public void TestRiskStart()
        {
            string raw = @"test_demon =
            {
                selected =
                {
                    risk.start = RISK_TEST
                }
            }";

            DataVisit.Visitor.InitVisitMap(typeof(TestData));
            DataVisit.Visitor.SetVisitData(TestData.inst);

            Parser.Semantic.Visitor.GetValueFunc = DataVisit.Visitor.Get;
            Parser.Semantic.Visitor.SetValueFunc = DataVisit.Visitor.Set;

            var       syntaxItem = SyntaxItem.RootParse(raw);
            TestDemon demo       = SemanticParser.DoParser <TestDemon>(syntaxItem.Find("test_demon"));

            demo.operation.Do();

            Assert.AreEqual("RISK_TEST", TestData.inst.risk.start);
        }