Skip to content

Commit 85043cb

Browse files
author
linzhijun
committed
添加单元测试
1 parent fbd432f commit 85043cb

File tree

3 files changed

+271
-132
lines changed

3 files changed

+271
-132
lines changed

csharp/ToolGood.Algorithm2.WebTest/Pages/Test.cshtml

Lines changed: 3 additions & 126 deletions
Original file line numberDiff line numberDiff line change
@@ -18,132 +18,9 @@
1818
<ol id="qunit-tests"></ol>
1919
</body>
2020
<script src="/qunit/qunit.js"></script>
21-
<script>
22-
23-
QUnit.module('test', function () {
24-
QUnit.test('Test', async function (assert) {
25-
await new Promise(resolve => setTimeout(resolve, 300));
26-
27-
engine = new AlgorithmEngine();
28-
29-
var c = engine.TryEvaluate("2+3", 0);
30-
assert.equal(5, c);
31-
c = engine.TryEvaluate("(2)+3", 0);
32-
assert.equal(5, c);
33-
c = engine.TryEvaluate("2+3*2+10/2*4", 0);
34-
assert.equal(28, c);
35-
36-
c = engine.TryEvaluate("if(2+3*2+10/2*4,1", 0);
37-
assert.equal(0, c);
38-
39-
c = engine.TryEvaluate("2.1e3 + 10", 0);
40-
assert.equal(2110, c);
41-
42-
c = engine.TryEvaluate("2.1e+03 + 10", 0);
43-
assert.equal(2110, c);
44-
45-
c = engine.TryEvaluate("2.1e+3 + 10", 0);
46-
assert.equal(2110, c);
47-
48-
var d = engine.TryEvaluate("2.1e-3 + 10", 0.0);
49-
assert.equal(10.0021, d);
50-
51-
52-
var e = engine.TryEvaluate("e", 0.0);
53-
assert.equal(Math.round(Math.E, 10), Math.round(e, 10));
54-
e = engine.TryEvaluate("pi", 0.0);
55-
assert.equal(Math.round(Math.PI, 10), Math.round(e, 10));
56-
57-
var b = engine.TryEvaluate("true", false);
58-
assert.equal(true, b);
59-
b = engine.TryEvaluate("false", true);
60-
assert.equal(false, b);
61-
62-
var b1 = engine.TryEvaluate("if(true,1,2)", 0);
63-
assert.equal(1, b1);
64-
65-
b1 = engine.TryEvaluate("if(false,1,2)", 0);
66-
assert.equal(2, b1);
67-
68-
var b2 = engine.TryEvaluate("pi*4", 0.0);
69-
assert.equal(Math.round(Math.PI * 4, 10), Math.round(b2, 10));
70-
b2 = engine.TryEvaluate("e*4", 0.0);
71-
assert.equal(Math.round(Math.E * 4, 10), Math.round(b2, 10));
72-
73-
var s = engine.TryEvaluate("'aa'&'bb'", "");
74-
assert.equal("aabb", s);
75-
76-
s = engine.TryEvaluate("'3'+2", "");
77-
assert.equal("5", s);
78-
79-
var r = engine.TryEvaluate("count(Array(1,2,3,4))", 0);
80-
assert.equal(4, r);
81-
82-
83-
r = engine.TryEvaluate("(1=1)*9+2", 0);
84-
assert.equal(11, r);;
85-
r = engine.TryEvaluate("(1=2)*9+2", 0);
86-
assert.equal(2, r);;
87-
88-
var dt = engine.TryEvaluate("'2016-1-1'+1", new Date());
89-
assert.equal("2016-01-02 00:00:00", dt);
90-
dt = engine.TryEvaluate("'2016-1-1'+9*'1:0'", new Date());
91-
assert.equal("2016-01-01 09:00:00", dt);
92-
93-
94-
var value = engine.TryEvaluate("1 > (-2)", false);
95-
assert.equal(value, true);
96-
97-
98-
value = engine.TryEvaluate("(-1) > (-2)", false);
99-
assert.equal(value, true);
100-
101-
102-
value = engine.TryEvaluate("-1 > (-2)", false);
103-
assert.equal(value, true);
104-
105-
value = engine.TryEvaluate("-1 > -2", false);
106-
assert.equal(value, true);
107-
108-
var value2 = engine.TryEvaluate("-1 > -2", false);
109-
assert.equal(value2, true);
110-
111-
112-
var value3 = engine.TryEvaluate("-7 < -2", false);
113-
assert.equal(value3, true);
114-
115-
var t1 = engine.TryEvaluate("-7 < -2 ?1 : 2", 0);
116-
assert.equal(t1, 1);
117-
t1 = engine.TryEvaluate("-7 < -2 ?1 : 2", 0);
118-
assert.equal(t1, 1);
119-
120-
t1 = engine.TryEvaluate("-7 < -2 ?1 :2", 0);
121-
assert.equal(t1, 1);
122-
t1 = engine.TryEvaluate("-7 < -2 ? 1 : 2", 0);
123-
assert.equal(t1, 1);
124-
t1 = engine.TryEvaluate("-7 < -2 ?1 : 2", 0);
125-
assert.equal(t1, 1);
126-
127-
t1 = engine.TryEvaluate("-7 < -2 ?1 : 2", 0);
128-
assert.equal(t1, 1);
129-
130-
t1 = engine.TryEvaluate("(!(-7 < -2))?1:2", 0);
131-
assert.equal(t1, 2);
132-
t1 = engine.TryEvaluate("1>2?1:2", 0);
133-
assert.equal(t1, 2);
134-
135-
t1 = engine.TryEvaluate("1!=2?1:2", 0);
136-
assert.equal(t1, 1);
137-
138-
var t2 = engine.TryEvaluate("Asc('abcABC123')", "");
139-
assert.equal(t2, "abcABC123");
140-
});
141-
});
142-
143-
144-
</script>
145-
@* <script src="/test/test.js"></script>
146-
<script src="/test/test-csharp.js"></script>
21+
22+
<script src="/test/test.js"></script>
23+
@* <script src="/test/test-csharp.js"></script>
14724
<script src="/test/test-datetime.js"></script>
14825
<script src="/test/test-flow.js"></script>
14926
<script src="/test/test-math.js"></script>
Lines changed: 262 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,262 @@
1+

2+
QUnit.module('test', function () {
3+
QUnit.test('Test', async function (assert) {
4+
await new Promise(resolve => setTimeout(resolve, 300));
5+
6+
engine = new AlgorithmEngine();
7+
8+
var c = engine.TryEvaluate("2+3", 0);
9+
assert.equal(5, c);
10+
c = engine.TryEvaluate("(2)+3", 0);
11+
assert.equal(5, c);
12+
c = engine.TryEvaluate("2+3*2+10/2*4", 0);
13+
assert.equal(28, c);
14+
15+
c = engine.TryEvaluate("if(2+3*2+10/2*4,1", 0);
16+
assert.equal(0, c);
17+
18+
c = engine.TryEvaluate("2.1e3 + 10", 0);
19+
assert.equal(2110, c);
20+
21+
c = engine.TryEvaluate("2.1e+03 + 10", 0);
22+
assert.equal(2110, c);
23+
24+
c = engine.TryEvaluate("2.1e+3 + 10", 0);
25+
assert.equal(2110, c);
26+
27+
var d = engine.TryEvaluate("2.1e-3 + 10", 0.0);
28+
assert.equal(10.0021, d);
29+
30+
31+
var e = engine.TryEvaluate("e", 0.0);
32+
assert.equal(Math.round(Math.E, 10), Math.round(e, 10));
33+
e = engine.TryEvaluate("pi", 0.0);
34+
assert.equal(Math.round(Math.PI, 10), Math.round(e, 10));
35+
36+
var b = engine.TryEvaluate("true", false);
37+
assert.equal(true, b);
38+
b = engine.TryEvaluate("false", true);
39+
assert.equal(false, b);
40+
41+
var b1 = engine.TryEvaluate("if(true,1,2)", 0);
42+
assert.equal(1, b1);
43+
44+
b1 = engine.TryEvaluate("if(false,1,2)", 0);
45+
assert.equal(2, b1);
46+
47+
var b2 = engine.TryEvaluate("pi*4", 0.0);
48+
assert.equal(Math.round(Math.PI * 4, 10), Math.round(b2, 10));
49+
b2 = engine.TryEvaluate("e*4", 0.0);
50+
assert.equal(Math.round(Math.E * 4, 10), Math.round(b2, 10));
51+
52+
var s = engine.TryEvaluate("'aa'&'bb'", "");
53+
assert.equal("aabb", s);
54+
55+
s = engine.TryEvaluate("'3'+2", "");
56+
assert.equal("5", s);
57+
58+
var r = engine.TryEvaluate("count(Array(1,2,3,4))", 0);
59+
assert.equal(4, r);
60+
61+
62+
r = engine.TryEvaluate("(1=1)*9+2", 0);
63+
assert.equal(11, r);;
64+
r = engine.TryEvaluate("(1=2)*9+2", 0);
65+
assert.equal(2, r);;
66+
67+
var dt = engine.TryEvaluate("'2016-1-1'+1", new Date());
68+
assert.equal("2016-01-02 00:00:00", dt);
69+
dt = engine.TryEvaluate("'2016-1-1'+9*'1:0'", new Date());
70+
assert.equal("2016-01-01 09:00:00", dt);
71+
72+
73+
var value = engine.TryEvaluate("1 > (-2)", false);
74+
assert.equal(value, true);
75+
76+
77+
value = engine.TryEvaluate("(-1) > (-2)", false);
78+
assert.equal(value, true);
79+
80+
81+
value = engine.TryEvaluate("-1 > (-2)", false);
82+
assert.equal(value, true);
83+
84+
value = engine.TryEvaluate("-1 > -2", false);
85+
assert.equal(value, true);
86+
87+
var value2 = engine.TryEvaluate("-1 > -2", false);
88+
assert.equal(value2, true);
89+
90+
91+
var value3 = engine.TryEvaluate("-7 < -2", false);
92+
assert.equal(value3, true);
93+
94+
var t1 = engine.TryEvaluate("-7 < -2 ?1 : 2", 0);
95+
assert.equal(t1, 1);
96+
t1 = engine.TryEvaluate("-7 < -2 ?1 : 2", 0);
97+
assert.equal(t1, 1);
98+
99+
t1 = engine.TryEvaluate("-7 < -2 ?1 :2", 0);
100+
assert.equal(t1, 1);
101+
t1 = engine.TryEvaluate("-7 < -2 ? 1 : 2", 0);
102+
assert.equal(t1, 1);
103+
t1 = engine.TryEvaluate("-7 < -2 ?1 : 2", 0);
104+
assert.equal(t1, 1);
105+
106+
t1 = engine.TryEvaluate("-7 < -2 ?1 : 2", 0);
107+
assert.equal(t1, 1);
108+
109+
t1 = engine.TryEvaluate("(!(-7 < -2))?1:2", 0);
110+
assert.equal(t1, 2);
111+
t1 = engine.TryEvaluate("1>2?1:2", 0);
112+
assert.equal(t1, 2);
113+
114+
t1 = engine.TryEvaluate("1!=2?1:2", 0);
115+
assert.equal(t1, 1);
116+
117+
var t2 = engine.TryEvaluate("Asc('abcABC123')", "");
118+
assert.equal(t2, "abcABC123");
119+
});
120+
121+
QUnit.test('base_test', async function (assert) {
122+
await new Promise(resolve => setTimeout(resolve, 300));
123+
124+
engine = new AlgorithmEngine();
125+
var t = engine.TryEvaluate("1+(3*2+2)/2", 0);
126+
assert.equal(5, t);
127+
128+
t = engine.TryEvaluate("(8-3)*(3+2)", 0);
129+
assert.equal(25, t);
130+
131+
t = engine.TryEvaluate("(8-3)*(3+2) % 7", 0);
132+
assert.equal(4, t);
133+
134+
var b = engine.TryEvaluate("1=1", false);
135+
assert.equal(true, b);
136+
137+
b = engine.TryEvaluate("1=2", true);
138+
assert.equal(false, b);
139+
140+
b = engine.TryEvaluate("1<>2", false);
141+
assert.equal(true, b);
142+
143+
b = engine.TryEvaluate("1!=2", false);
144+
assert.equal(true, b);
145+
146+
b = engine.TryEvaluate("1>2", true);
147+
assert.equal(false, b);
148+
149+
b = engine.TryEvaluate("1<2", false);
150+
assert.equal(true, b);
151+
152+
b = engine.TryEvaluate("1<=2", false);
153+
assert.equal(true, b);
154+
155+
b = engine.TryEvaluate("1>=2", true);
156+
assert.equal(false, b);
157+
158+
b = engine.TryEvaluate("'1'='1'", false);
159+
assert.equal(true, b);
160+
b = engine.TryEvaluate("'e'='e'", false);
161+
assert.equal(true, b);
162+
b = engine.TryEvaluate("'1'='2'", true);
163+
assert.equal(false, b);
164+
b = engine.TryEvaluate("'1'!='2'", false);
165+
assert.equal(true, b);
166+
});
167+
168+
QUnit.test('base_test3', async function (assert) {
169+
await new Promise(resolve => setTimeout(resolve, 300));
170+
171+
engine = new AlgorithmEngine();
172+
173+
var c = engine.TryEvaluate("(2)+/*123456*/3", 0);
174+
assert.equal(5, c);
175+
176+
c = engine.TryEvaluate("2+3//eee", 0);
177+
assert.equal(5, c);
178+
179+
c = engine.TryEvaluate("(2)+/*123456*/3 ee22+22", 0);
180+
assert.equal(0, c);
181+
});
182+
183+
QUnit.test('base_test4', async function (assert) {
184+
await new Promise(resolve => setTimeout(resolve, 300));
185+
186+
engine = new AlgorithmEngine();
187+
188+
var c = engine.TryEvaluate("'4dd'&'55' rr", "");
189+
assert.equal("", c);
190+
});
191+
192+
QUnit.test('base_test5', async function (assert) {
193+
await new Promise(resolve => setTimeout(resolve, 300));
194+
195+
engine = new AlgorithmEngine();
196+
197+
var c = engine.TryEvaluate("'4dd'&'55'.left(1)", "");
198+
assert.equal("4dd5", c);
199+
});
200+
201+
QUnit.test('Cylinder_Test', async function (assert) {
202+
await new Promise(resolve => setTimeout(resolve, 300));
203+
204+
c = new AlgorithmEngine();
205+
var data = { '半径': 3, '直径': 6, '高': 10 };
206+
207+
var t = c.TryEvaluate("[半径]*[半径]*pi()", 0.0, data); //圆底面积
208+
var t2 = c.TryEvaluate("半径*半径*pi()", 0.0, data); //圆底面积
209+
210+
var t4 = c.TryEvaluate("@半径*@半径*pi()", 0.0, data); //圆底面积
211+
var t5 = c.TryEvaluate("#半径#*#半径#*pi()", 0.0, data); //圆底面积
212+
var t6 = c.TryEvaluate("【半径】*【半径】*pi()", 0.0, data); //圆底面积
213+
var t7 = c.TryEvaluate("【半径】*【半径】*pi()", 0.0, data); //圆底面积
214+
215+
assert.equal(t, t2);
216+
//assert.equal(t, t3);
217+
assert.equal(t, t4);
218+
assert.equal(t, t5);
219+
assert.equal(t, t6);
220+
assert.equal(t, t7);
221+
222+
223+
224+
t = c.TryEvaluate("[直径]*pi()", 0.0, data); //圆的长
225+
t = c.TryEvaluate("[半径]*[半径]*pi()*[高]", 0.0, data); //圆的体积
226+
227+
t = c.TryEvaluate("['半径']*[半径]*pi()*[高]", 0.0, data); //圆的体积
228+
229+
//t = c.TryEvaluate("求面积(10)", 0.0, data); //圆的体积
230+
//assert.equal(10 * 10 * Math.PI, t, 10, data);
231+
232+
233+
var json = {'灰色':'L','canBookCount':905,'saleCount':91,'specId':'43b0e72e98731aed69e1f0cc7d64bf4d'};
234+
235+
var tt = c.TryEvaluate("['灰色']", "", json); //圆的体积
236+
assert.equal("L", tt);
237+
238+
239+
var tt2 = c.EvaluateFormula("'圆'-[半径]-高", '-', data);
240+
assert.equal("圆-3-10", tt2);
241+
});
242+
243+
244+
QUnit.test('Test5555', async function (assert) {
245+
await new Promise(resolve => setTimeout(resolve, 300));
246+
247+
engine = new AlgorithmEngine();
248+
var data = { '半径': 3, '直径': 6, '高': 10 };
249+
250+
251+
var t = c.GetSimplifiedFormula("[半径]*[半径]*pi()", data); // 圆底面积
252+
assert.equal("3 * 3 * 3.14159265358979", t);
253+
254+
var t2 = c.GetSimplifiedFormula("半径*if(半径>2,1,3)", data);
255+
assert.equal("3 * 1", t2);
256+
257+
var t24 = c.GetSimplifiedFormula("半径*if(半径>2,1+4,3)", data);
258+
assert.equal("3 * 5", t24);
259+
});
260+
});
261+
262+

0 commit comments

Comments
 (0)