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()); }
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()); }
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); }