Skip to content

Commit 8c72ea9

Browse files
committed
修改 README
1 parent b75d3c5 commit 8c72ea9

9 files changed

Lines changed: 35 additions & 28 deletions

File tree

README-EN.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,12 +92,15 @@ Note: `find` is an Excel formula , find (the string to be searched, the string t
9292
c.TryEvaluate("[半径]*[半径]*pi()*[高]", 0.0); //Volume of circle 圆的体积
9393
c.TryEvaluate("['半径']*[半径]*pi()*[高]", 0.0); //Volume of circle 圆的体积
9494
c.EvaluateFormula("'圆'-[半径]-高", '-'); // Return: 圆-3-10
95-
95+
c.GetSimplifiedFormula("半径*if(半径>2,1+4,3)"); // Return: 3 * 5
9696
```
9797
Parameters are defined in square brackets, such as `[parameter name]`.
9898

9999
Note: You can also use `AddParameter`, `AddParameterFromJson` to add methods, and use `DiyFunction`+= to customize functions.
100100

101+
Note 2: use `AlgorithmEngineHelper.GetDiyNames` get `parameter name` and `custom function name`.
102+
103+
101104
## Multi formula
102105
``` csharp
103106
ConditionCache multiConditionCache = new ConditionCache();

README.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,13 +91,16 @@ bool转数值,假为`0`,真为`1`。bool转字符串,假为`FALSE`,真
9191
c.TryEvaluate("[半径]*[半径]*pi()*[高]", 0.0); //Volume of circle 圆的体积
9292
c.TryEvaluate("['半径']*[半径]*pi()*[高]", 0.0); //Volume of circle 圆的体积
9393
c.EvaluateFormula("'圆'-[半径]-高", '-'); // Return: 圆-3-10
94+
c.GetSimplifiedFormula("半径*if(半径>2,1+4,3)"); // Return: 3 * 5
9495
9596
```
9697

9798
参数以方括号定义,如 `[参数名]`
9899

99100
注:还可以使用`AddParameter``AddParameterFromJson`添加方法,使用`DiyFunction`+=来自定义函数。
100101

102+
注2:使用 `AlgorithmEngineHelper.GetDiyNames` 获取`参数名``自定义方法名`
103+
101104
## 多公式
102105
``` csharp
103106
ConditionCache multiConditionCache = new ConditionCache();

csharp/ToolGood.Algorithm2.Test/AlgorithmEngineHelper/AlgorithmEngineHelperTest.cs

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -6,44 +6,43 @@
66
using System.Threading.Tasks;
77
using ToolGood.Algorithm;
88

9-
namespace ToolGood.Algorithm2.Test.AlgorithmEngineHelper
9+
10+
namespace ToolGood.Algorithm2.Test.AlgorithmEngineHelper2
1011
{
1112
[TestFixture]
1213
public class AlgorithmEngineHelperTest
1314
{
1415
[Test]
1516
public void Test()
1617
{
17-
var helper=new ToolGood.Algorithm.AlgorithmEngineHelper();
18-
DiyNameInfo p = helper.GetDiyNames("[dd]");
18+
DiyNameInfo p = AlgorithmEngineHelper.GetDiyNames("[dd]");
1919
Assert.AreEqual("dd", p.Parameters[0]);
2020

21-
DiyNameInfo p2 = helper.GetDiyNames("{ddd}");
21+
DiyNameInfo p2 = AlgorithmEngineHelper.GetDiyNames("{ddd}");
2222
Assert.AreEqual("ddd", p2.Parameters[0]);
2323

24-
DiyNameInfo p3 = helper.GetDiyNames("【dd】");
24+
DiyNameInfo p3 = AlgorithmEngineHelper.GetDiyNames("【dd】");
2525
Assert.AreEqual("dd", p3.Parameters[0]);
2626

27-
DiyNameInfo p4 = helper.GetDiyNames("@ddd+2");
27+
DiyNameInfo p4 = AlgorithmEngineHelper.GetDiyNames("@ddd+2");
2828
Assert.AreEqual("ddd", p4.Parameters[0]);
2929

30-
DiyNameInfo p5 = helper.GetDiyNames("ddd(d1,22)");
30+
DiyNameInfo p5 = AlgorithmEngineHelper.GetDiyNames("ddd(d1,22)");
3131
Assert.AreEqual("ddd", p5.Functions[0]);
3232
Assert.AreEqual("d1", p5.Parameters[0]);
3333

34-
DiyNameInfo p6 = helper.GetDiyNames("长");
34+
DiyNameInfo p6 = AlgorithmEngineHelper.GetDiyNames("长");
3535
Assert.AreEqual("长", p6.Parameters[0]);
3636

37-
DiyNameInfo p7 = helper.GetDiyNames("#ddd#+2");
37+
DiyNameInfo p7 = AlgorithmEngineHelper.GetDiyNames("#ddd#+2");
3838
Assert.AreEqual("ddd", p7.Parameters[0]);
3939

4040
}
4141

4242
[Test]
4343
public void Test2()
4444
{
45-
var helper = new ToolGood.Algorithm.AlgorithmEngineHelper();
46-
var b = helper.IsKeywords("false");
45+
var b = AlgorithmEngineHelper.IsKeywords("false");
4746
Assert.IsTrue(b);
4847

4948

csharp/ToolGood.Algorithm2/AlgorithmEngine.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -649,7 +649,7 @@ public DateTime TryEvaluate(string exp, DateTime def)
649649
try {
650650
if (Parse(exp)) {
651651
var obj = Evaluate();
652-
obj = obj.ToMyDate("It can't be converted to MyDate!");
652+
obj = obj.ToMyDate("It can't be converted to DateTime!");
653653
if (obj.IsError) {
654654
LastError = obj.ErrorMsg;
655655
return def;
@@ -672,7 +672,7 @@ public TimeSpan TryEvaluate(string exp, TimeSpan def)
672672
try {
673673
if (Parse(exp)) {
674674
var obj = Evaluate();
675-
obj = obj.ToMyDate("It can't be converted to MyDate!");
675+
obj = obj.ToMyDate("It can't be converted to TimeSpan!");
676676
if (obj.IsError) {
677677
LastError = obj.ErrorMsg;
678678
return def;

csharp/ToolGood.Algorithm2/AlgorithmEngineHelper.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -239,7 +239,7 @@ private static HashSet<string> GetLexerSet()
239239
/// </summary>
240240
/// <param name="parameter"></param>
241241
/// <returns></returns>
242-
public bool IsKeywords(string parameter)
242+
public static bool IsKeywords(string parameter)
243243
{
244244
var lexerSet = GetLexerSet();
245245
return lexerSet.Contains(CharUtil.StandardString(parameter));
@@ -251,7 +251,7 @@ public bool IsKeywords(string parameter)
251251
/// <param name="exp"></param>
252252
/// <returns></returns>
253253
/// <exception cref="Exception"></exception>
254-
public DiyNameInfo GetDiyNames(String exp)
254+
public static DiyNameInfo GetDiyNames(String exp)
255255
{
256256
if (string.IsNullOrWhiteSpace(exp)) {
257257
throw new Exception("Parameter exp invalid !");

java/toolgood.algorithm/README-EN.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,11 +97,13 @@ public class Cylinder extends AlgorithmEngine {
9797
c.TryEvaluate("[半径]*[半径]*pi()*[高]", 0.0); //圆的体积
9898
c.TryEvaluate("['半径']*[半径]*pi()*[高]", 0.0); //圆的体积
9999
c.EvaluateFormula("'圆'-[半径]-高", '-'); // Return: 圆-3-10
100+
c.GetSimplifiedFormula("半径*if(半径>2,1+4,3)"); // Return: 3 * 5
100101
```
101102
Parameters are defined in square brackets, such as `[parameter name]`.
102103

103104
Note: You can also use `AddParameter`, `AddParameterFromJson` to add methods, and use `DiyFunction` to customize functions.
104105

106+
Note 2: use `AlgorithmEngineHelper.GetDiyNames` get `parameter name` and `custom function name`.
105107

106108
## Multi formula
107109
``` java

java/toolgood.algorithm/README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,11 +94,13 @@ public class Cylinder extends AlgorithmEngine {
9494
c.TryEvaluate("[半径]*[半径]*pi()*[高]", 0.0); //圆的体积
9595
c.TryEvaluate("['半径']*[半径]*pi()*[高]", 0.0); //圆的体积
9696
c.EvaluateFormula("'圆'-[半径]-高", '-'); // Return: 圆-3-10
97+
c.GetSimplifiedFormula("半径*if(半径>2,1+4,3)"); // Return: 3 * 5
9798
```
9899
参数以方括号定义,如 `[参数名]`
99100

100101
注:还可以使用`AddParameter``AddParameterFromJson`添加方法,使用`DiyFunction`来自定义函数。
101102

103+
注2:使用 `AlgorithmEngineHelper.GetDiyNames` 获取`参数名``自定义方法名`
102104

103105
## 多公式
104106
``` java

java/toolgood.algorithm/src/main/java/toolgood/algorithm/AlgorithmEngineHelper.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -247,12 +247,12 @@ private static Set<String> GetLexerSet() {
247247
/// </summary>
248248
/// <param name="parameter"></param>
249249
/// <returns></returns>
250-
public boolean IsKeywords(String parameter) {
250+
public static boolean IsKeywords(String parameter) {
251251
Set<String> lexerSet = GetLexerSet();
252252
return lexerSet.contains(CharUtil.StandardString(parameter));
253253
}
254254

255-
public DiyNameInfo GetDiyNames(String exp) throws Exception {
255+
public static DiyNameInfo GetDiyNames(String exp) throws Exception {
256256
if (exp == null || exp.equals("")) {
257257
throw new Exception("Parameter exp invalid !");
258258
}

java/toolgood.algorithm/src/test/java/toolgood/algorithm/Tests3/AlgorithmEngineHelperTest.java

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -11,35 +11,33 @@ public class AlgorithmEngineHelperTest {
1111

1212
@Test
1313
public void Test() throws Exception {
14-
AlgorithmEngineHelper helper = new AlgorithmEngineHelper();
15-
DiyNameInfo p = helper.GetDiyNames("[dd]");
14+
DiyNameInfo p = AlgorithmEngineHelper.GetDiyNames("[dd]");
1615
assertEquals("dd", p.Parameters.get(0));
1716

18-
DiyNameInfo p2 = helper.GetDiyNames("{ddd}");
17+
DiyNameInfo p2 = AlgorithmEngineHelper.GetDiyNames("{ddd}");
1918
assertEquals("ddd", p2.Parameters.get(0));
2019

21-
DiyNameInfo p3 = helper.GetDiyNames("【dd】");
20+
DiyNameInfo p3 = AlgorithmEngineHelper.GetDiyNames("【dd】");
2221
assertEquals("dd", p3.Parameters.get(0));
2322

24-
DiyNameInfo p4 = helper.GetDiyNames("@ddd+2");
23+
DiyNameInfo p4 = AlgorithmEngineHelper.GetDiyNames("@ddd+2");
2524
assertEquals("ddd", p4.Parameters.get(0));
2625

27-
DiyNameInfo p5 = helper.GetDiyNames("ddd(d1,22)");
26+
DiyNameInfo p5 = AlgorithmEngineHelper.GetDiyNames("ddd(d1,22)");
2827
assertEquals("ddd", p5.Functions.get(0));
2928
assertEquals("d1", p5.Parameters.get(0));
3029

31-
DiyNameInfo p6 = helper.GetDiyNames("长");
30+
DiyNameInfo p6 = AlgorithmEngineHelper.GetDiyNames("长");
3231
assertEquals("长", p6.Parameters.get(0));
3332

34-
DiyNameInfo p7 = helper.GetDiyNames("#ddd#+2");
33+
DiyNameInfo p7 = AlgorithmEngineHelper.GetDiyNames("#ddd#+2");
3534
assertEquals("ddd", p7.Parameters.get(0));
3635

3736
}
3837

3938
@Test
4039
public void Test2() {
41-
AlgorithmEngineHelper helper = new AlgorithmEngineHelper();
42-
boolean b = helper.IsKeywords("true");
40+
boolean b = AlgorithmEngineHelper.IsKeywords("true");
4341
assertEquals(true, b);
4442

4543
}

0 commit comments

Comments
 (0)