Skip to content

Commit 1a8eb63

Browse files
author
linzhijun
committed
增加 解析计算的方法和类
1 parent f8fa1e0 commit 1a8eb63

8 files changed

Lines changed: 2057 additions & 519 deletions

File tree

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
using PetaTest;
2+
using System;
3+
using System.Collections.Generic;
4+
using System.Text;
5+
using ToolGood.Algorithm.Enums;
6+
using ToolGood.Algorithm.Internals;
7+
8+
namespace ToolGood.Algorithm.Test.ConditionTrees
9+
{
10+
[TestFixture]
11+
public class CalculateTreeTest
12+
{
13+
[Test]
14+
public void Test1()
15+
{
16+
string txt = "A1+1";
17+
var t1 = CalculateTree.Parse(txt);
18+
Assert.AreEqual(t1.Type, CalculateTreeType.Add);
19+
Assert.AreEqual("A1+1", txt.Substring(t1.Start, t1.End - t1.Start + 1));
20+
Assert.AreEqual("A1+1", t1.ConditionString);
21+
22+
23+
txt = "A1-(1+1)";
24+
t1 = CalculateTree.Parse(txt);
25+
Assert.AreEqual(t1.Type, CalculateTreeType.Sub);
26+
Assert.AreEqual("1+1", t1.Nodes[1].ConditionString);
27+
28+
29+
txt = "A1*(1+1)";
30+
t1 = CalculateTree.Parse(txt);
31+
Assert.AreEqual(t1.Type, CalculateTreeType.Mul);
32+
33+
txt = "A1/(1+1)";
34+
t1 = CalculateTree.Parse(txt);
35+
Assert.AreEqual(t1.Type, CalculateTreeType.Div);
36+
37+
38+
txt = "A1%(1+1)";
39+
t1 = CalculateTree.Parse(txt);
40+
Assert.AreEqual(t1.Type, CalculateTreeType.Mod);
41+
42+
txt = "A1&(1+1)";
43+
t1 = CalculateTree.Parse(txt);
44+
Assert.AreEqual(t1.Type, CalculateTreeType.Connect);
45+
46+
txt = "A1(1+1)";
47+
t1 = CalculateTree.Parse(txt);
48+
Assert.AreEqual(t1.Type, CalculateTreeType.String);
49+
50+
txt = "A1(1+1)-";
51+
t1 = CalculateTree.Parse(txt);
52+
Assert.AreEqual(t1.Type, CalculateTreeType.Error);
53+
54+
txt = "-1+(1+1)";
55+
t1 = CalculateTree.Parse(txt);
56+
Assert.AreEqual(t1.Type, CalculateTreeType.Add);
57+
58+
txt = "-1";
59+
t1 = CalculateTree.Parse(txt);
60+
Assert.AreEqual(t1.Type, CalculateTreeType.String);
61+
}
62+
63+
}
64+
}

0 commit comments

Comments
 (0)