Skip to content

Commit a183b05

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

16 files changed

+309
-7
lines changed

csharp/ToolGood.Algorithm.WebAssembly/Program.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ public class Program
1010
{
1111
private static void Main(string[] args)
1212
{
13+
System.Text.Encoding.RegisterProvider(System.Text.CodePagesEncodingProvider.Instance);
1314
}
1415

1516
[JSInvokable]

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,10 @@
2020
<script src="/qunit/qunit.js"></script>
2121

2222
<script src="/test/test.js"></script>
23-
@* <script src="/test/test-csharp.js"></script>
23+
<script src="/test/test-csharp.js"></script>
2424
<script src="/test/test-datetime.js"></script>
2525
<script src="/test/test-flow.js"></script>
2626
<script src="/test/test-math.js"></script>
2727
<script src="/test/test-string.js"></script>
28-
<script src="/test/test-vlookup.js"></script> *@
28+
<script src="/test/test-vlookup.js"></script>
2929
</html>
Lines changed: 266 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,266 @@
1+
QUnit.module('test-csharp', function () {
2+
QUnit.test('UrlDecode', async function (assert) {
3+
await new Promise(resolve => setTimeout(resolve, 300));
4+
var engine = new AlgorithmEngine();
5+
var dt = engine.TryEvaluate("UrlDecode('%26%3d%e6%88%91%e4%b8%ad%e5%9b%bd%e4%ba%ba+%3e%7c%7c')", null);
6+
assert.equal(dt, "&=我中国人 >||");
7+
});
8+
QUnit.test('UrlEncode', async function (assert) {
9+
await new Promise(resolve => setTimeout(resolve, 300));
10+
var engine = new AlgorithmEngine();
11+
var dt = engine.TryEvaluate("UrlEncode('&=我中国人 >||')", null);
12+
assert.equal(dt, "%26%3d%e6%88%91%e4%b8%ad%e5%9b%bd%e4%ba%ba+%3e%7c%7c");
13+
});
14+
QUnit.test('HtmlEncode', async function (assert) {
15+
var engine = new AlgorithmEngine();
16+
var dt = engine.TryEvaluate("HtmlEncode('&=我中国人 >||')", null);
17+
assert.equal(dt, "&amp;=我中国人 &gt;||");
18+
});
19+
QUnit.test('HtmlDecode', async function (assert) {
20+
var engine = new AlgorithmEngine();
21+
var dt = engine.TryEvaluate("HtmlDecode('&amp;=我中国人 &gt;||')", null);
22+
assert.equal(dt, "&=我中国人 >||");
23+
});
24+
25+
QUnit.test('TextToBase64', async function (assert) {
26+
await new Promise(resolve => setTimeout(resolve, 300));
27+
28+
var engine = new AlgorithmEngine();
29+
var r = engine.TryEvaluate("TextToBase64('&=我中国人 >||')", "");
30+
assert.equal(r, "Jj3miJHkuK3lm73kurogPnx8");
31+
32+
r = engine.TryEvaluate("TextToBase64('&=我中国人 >||','GBK')", "");
33+
assert.equal(r, "Jj3O0tbQufrIyyA+fHw=");
34+
});
35+
36+
QUnit.test('TextToBase64Url', async function (assert) {
37+
await new Promise(resolve => setTimeout(resolve, 300));
38+
39+
var engine = new AlgorithmEngine();
40+
var r = engine.TryEvaluate("TextToBase64Url('&=我中国人 >||')", null);
41+
assert.equal(r, "Jj3miJHkuK3lm73kurogPnx8");
42+
43+
r = engine.TryEvaluate("TextToBase64Url('&=我中国人 >||','GBK')", null);
44+
assert.equal(r, "Jj3O0tbQufrIyyA-fHw");
45+
});
46+
QUnit.test('Base64ToText', async function (assert) {
47+
await new Promise(resolve => setTimeout(resolve, 300));
48+
49+
var engine = new AlgorithmEngine();
50+
var r = engine.TryEvaluate("Base64ToText('Jj3miJHkuK3lm73kurogPnx8')", null);
51+
assert.equal(r, "&=我中国人 >||");
52+
53+
r = engine.TryEvaluate("Base64ToText('Jj3O0tbQufrIyyA+fHw=','GBK')", null);
54+
assert.equal(r, "&=我中国人 >||");
55+
});
56+
QUnit.test('Base64UrlToText', async function (assert) {
57+
await new Promise(resolve => setTimeout(resolve, 300));
58+
59+
var engine = new AlgorithmEngine();
60+
var r = engine.TryEvaluate("Base64UrlToText('Jj3miJHkuK3lm73kurogPnx8')", null);
61+
assert.equal(r, "&=我中国人 >||");
62+
63+
r = engine.TryEvaluate("Base64UrlToText('Jj3O0tbQufrIyyA-fHw','GBK')", null);
64+
assert.equal(r, "&=我中国人 >||");
65+
});
66+
QUnit.test('Regex_test', async function (assert) {
67+
await new Promise(resolve => setTimeout(resolve, 300));
68+
69+
var engine = new AlgorithmEngine();
70+
engine.UseExcelIndex = false;
71+
var r = engine.TryEvaluate("Regex('abcd','a.*c')", null);
72+
assert.equal(r, "abc");
73+
});
74+
QUnit.test('IsRegex_test', async function (assert) {
75+
await new Promise(resolve => setTimeout(resolve, 300));
76+
77+
var engine = new AlgorithmEngine();
78+
var r = engine.TryEvaluate("IsRegex('abcd','a.*c')", false);
79+
assert.equal(r, true);
80+
r = engine.TryEvaluate("IsRegex('abcd','da.*c')", true);
81+
assert.equal(r, false);
82+
});
83+
QUnit.test('Guid', async function (assert) {
84+
await new Promise(resolve => setTimeout(resolve, 300));
85+
86+
var engine = new AlgorithmEngine();
87+
var r = engine.TryEvaluate("Guid()", "");
88+
assert.notEqual(r, null);
89+
90+
});
91+
QUnit.test('Md5', async function (assert) {
92+
await new Promise(resolve => setTimeout(resolve, 300));
93+
94+
var engine = new AlgorithmEngine();
95+
var dt = engine.TryEvaluate("Md5('&=我中国人 >||')", null);
96+
assert.equal(dt, "2E1CEFBDFA3677725B7856E02D225819");
97+
dt = engine.TryEvaluate("Md5('&=我中国人 >||','GGG')", null);
98+
assert.equal(dt, null);
99+
dt = engine.TryEvaluate("Sha1('&=我中国人 >||')", null);
100+
assert.equal(dt, "F2C250C58F3A40DC54B5A47F0F6B1187AD5AC2EE");
101+
dt = engine.TryEvaluate("Sha256('&=我中国人 >||')", null);
102+
assert.equal(dt, "FA5BF04D13AEF750D62040E492479A16B6B10888D0B19923A1E7B9339990632A");
103+
dt = engine.TryEvaluate("Sha512('&=我中国人 >||')", null);
104+
assert.equal(dt, "FFEAC98C39D76CD86A3AB8ECEF16BE23166F68E1A3C5C9809A8AD2CE417170465286E4CF6FFA17924613CD7477533B9109A5DD504A2462F9DB693D56AD365C14");
105+
//dt = engine.TryEvaluate("Crc8('&=我中国人 >||')", null);
106+
//assert.equal(dt, "8F");
107+
//dt = engine.TryEvaluate("Crc16('&=我中国人 >||')", null);
108+
//assert.equal(dt, "DA5A0000");
109+
dt = engine.TryEvaluate("Crc32('&=我中国人 >||')", null);
110+
assert.equal(dt, "60649EFF");
111+
dt = engine.TryEvaluate("HmacMd5('&=我中国人 >||','12')", null);
112+
assert.equal(dt, "CF3923196E21B1E270FD72B089B092BB");
113+
dt = engine.TryEvaluate("HmacSha1('&=我中国人 >||','12')", null);
114+
assert.equal(dt, "EB4D4FC2AA5637060FD12004DF845801D8902105");
115+
dt = engine.TryEvaluate("HmacSha256('&=我中国人 >||','12')", null);
116+
assert.equal(dt, "3E25E0D14039E8258BBBBD15F7E3B91BB497A8966C12E1DEA3D651BF03CB4B97");
117+
dt = engine.TryEvaluate("HmacSha512('&=我中国人 >||','12')", null);
118+
assert.equal(dt, "4E9CE785C46569965C7C712A841EC7382C64D918D49F992EDB3504BED9C3A5EFBB1C8F712968F6B904417E07F9D72E707FCF148D55A4D3EDF1A9866B7BAC2049");
119+
});
120+
QUnit.test('IndexOf', async function (assert) {
121+
await new Promise(resolve => setTimeout(resolve, 300));
122+
123+
var engine = new AlgorithmEngine();
124+
var r = engine.TryEvaluate("Guid()", "");
125+
});
126+
127+
QUnit.test('Split', async function (assert) {
128+
await new Promise(resolve => setTimeout(resolve, 300));
129+
130+
var engine = new AlgorithmEngine();
131+
var dt = engine.TryEvaluate("Split('1,2,3,4',',')[3]", null);
132+
assert.equal(dt, "3");
133+
});
134+
135+
QUnit.test('TrimStart', async function (assert) {
136+
await new Promise(resolve => setTimeout(resolve, 300));
137+
138+
var engine = new AlgorithmEngine();
139+
var dt = engine.TryEvaluate("TrimStart(' 123 ')", null);
140+
assert.equal(dt, "123 ");
141+
142+
dt = engine.TryEvaluate("TrimStart(' 123 ',' 1')", null);
143+
assert.equal(dt, "23 ");
144+
});
145+
146+
QUnit.test('TrimEnd', async function (assert) {
147+
await new Promise(resolve => setTimeout(resolve, 300));
148+
149+
var engine = new AlgorithmEngine();
150+
var dt = engine.TryEvaluate("TrimEnd(' 123 ')", null);
151+
assert.equal(dt, " 123");
152+
153+
dt = engine.TryEvaluate("TrimEnd(' 123 ','3 ')", null);
154+
assert.equal(dt, " 12");
155+
});
156+
157+
QUnit.test('Join', async function (assert) {
158+
await new Promise(resolve => setTimeout(resolve, 300));
159+
160+
var engine = new AlgorithmEngine();
161+
var dt = engine.TryEvaluate("Join(',',1,2,5,6)", null);
162+
assert.equal(dt, "1,2,5,6");
163+
dt = engine.TryEvaluate("Join(',',1,2,5,6,split('7,8,9',','))", null);
164+
assert.equal(dt, "1,2,5,6,7,8,9");
165+
});
166+
167+
QUnit.test('Substring', async function (assert) {
168+
await new Promise(resolve => setTimeout(resolve, 300));
169+
170+
var engine = new AlgorithmEngine();
171+
var dt = engine.TryEvaluate("Substring('123456789',1,2)", null);
172+
assert.equal(dt, "12");
173+
});
174+
QUnit.test('StartsWith', async function (assert) {
175+
await new Promise(resolve => setTimeout(resolve, 300));
176+
177+
var engine = new AlgorithmEngine();
178+
var dt = engine.TryEvaluate("StartsWith('123456789','12')", false);
179+
assert.equal(dt, true);
180+
dt = engine.TryEvaluate("StartsWith('123456789','127')", true);
181+
assert.equal(dt, false);
182+
});
183+
QUnit.test('EndsWith', async function (assert) {
184+
await new Promise(resolve => setTimeout(resolve, 300));
185+
186+
var engine = new AlgorithmEngine();
187+
var dt = engine.TryEvaluate("EndsWith('123456789','89')", false);
188+
assert.equal(dt, true);
189+
dt = engine.TryEvaluate("EndsWith('123456789','127')", true);
190+
assert.equal(dt, false);
191+
});
192+
QUnit.test('IsNullOrEmpty', async function (assert) {
193+
await new Promise(resolve => setTimeout(resolve, 300));
194+
195+
var engine = new AlgorithmEngine();
196+
var dt = engine.TryEvaluate("IsNullOrEmpty('')", false);
197+
assert.equal(dt, true);
198+
dt = engine.TryEvaluate("IsNullOrEmpty(' ')", true);
199+
assert.equal(dt, false);
200+
});
201+
QUnit.test('IsNullOrWhiteSpace', async function (assert) {
202+
await new Promise(resolve => setTimeout(resolve, 300));
203+
204+
var engine = new AlgorithmEngine();
205+
var dt = engine.TryEvaluate("IsNullOrWhiteSpace('')", false);
206+
assert.equal(dt, true);
207+
dt = engine.TryEvaluate("IsNullOrWhiteSpace(' ')", false);
208+
assert.equal(dt, true);
209+
dt = engine.TryEvaluate("IsNullOrWhiteSpace(' f ')", true);
210+
assert.equal(dt, false);
211+
});
212+
QUnit.test('RemoveStart', async function (assert) {
213+
await new Promise(resolve => setTimeout(resolve, 300));
214+
215+
var engine = new AlgorithmEngine();
216+
var dt = engine.TryEvaluate("RemoveStart('123456789','12')", null);
217+
assert.equal(dt, "3456789");
218+
dt = engine.TryEvaluate("RemoveStart('123456789','127')", null);
219+
assert.equal(dt, "123456789");
220+
});
221+
QUnit.test('RemoveEnd', async function (assert) {
222+
await new Promise(resolve => setTimeout(resolve, 300));
223+
224+
var engine = new AlgorithmEngine();
225+
var dt = engine.TryEvaluate("RemoveEnd('123456789','89')", null);
226+
assert.equal(dt, "1234567");
227+
dt = engine.TryEvaluate("RemoveEnd('123456789','127')", null);
228+
assert.equal(dt, "123456789");
229+
});
230+
QUnit.test('Json', async function (assert) {
231+
await new Promise(resolve => setTimeout(resolve, 300));
232+
233+
var engine = new AlgorithmEngine();
234+
var dt = engine.TryEvaluate("json('{\"Name\":\"William Shakespeare\",\"Age\":51,\"Birthday\":\"04/26/1564 00:00:00\"}').Age", null);
235+
assert.equal(dt.ToString(), "51");
236+
dt = engine.TryEvaluate("json('{\"Name\":\"William Shakespeare\",\"Age\":51,\"Birthday\":\"04/26/1564 00:00:00\"}')[Birthday]", null);
237+
assert.equal(dt, "04/26/1564 00:00:00");
238+
239+
dt = engine.TryEvaluate("json('[1,2,3]')[1]", null);
240+
assert.equal(dt, "1");
241+
242+
dt = engine.TryEvaluate("json('{\"Name\":\"William Shakespeare \",\"Age\":51,\"Birthday\":\"04/26/1564 00:00:00\"}')[Name].Trim()", null);
243+
assert.equal(dt, "William Shakespeare");
244+
245+
246+
dt = engine.TryEvaluate("json('{\"Name1\":\"William Shakespeare \",\"Age\":51,\"Birthday\":\"04/26/1564 00:00:00\"}')['Name'& 1].Trim().substring(2,3)", null);
247+
assert.equal(dt, "ill");
248+
249+
dt = engine.TryEvaluate("json('12346{\"Name1\":\"William Shakespeare \",\"Age\":51,\"Birthday\":\"04/26/1564 00:00:00\"}')['Name'& 1].Trim().substring(2,3)", null);
250+
assert.equal(dt, null);
251+
252+
dt = engine.TryEvaluate("json('[1,2,3,4,5,6]')[1].Trim()", null);
253+
assert.equal(dt, "1");
254+
255+
dt = engine.TryEvaluate("json('[1,2,3,4,5,6]22')[1].Trim()", null);
256+
assert.equal(dt, null);
257+
258+
dt = engine.TryEvaluate("json('22[1,2,3,4,5,6]')[1].Trim()", null);
259+
assert.equal(dt, null);
260+
});
261+
262+
263+
});
264+
265+
266+
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
QUnit.module('test-datetime', function () {
2+
QUnit.test('Test', async function (assert) {
3+
await new Promise(resolve => setTimeout(resolve, 300));
4+
assert.equal(1, 1);
5+
6+
});
7+
});
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
QUnit.module('test-flow', function () {
2+
QUnit.test('Test', async function (assert) {
3+
await new Promise(resolve => setTimeout(resolve, 300));
4+
assert.equal(1, 1);
5+
6+
});
7+
});
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
QUnit.module('test-math', function () {
2+
QUnit.test('Test', async function (assert) {
3+
await new Promise(resolve => setTimeout(resolve, 300));
4+
assert.equal(1, 1);
5+
6+
});
7+
});
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
QUnit.module('test-string', function () {
2+
QUnit.test('Test', async function (assert) {
3+
await new Promise(resolve => setTimeout(resolve, 300));
4+
assert.equal(1, 1);
5+
6+
});
7+
});
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
QUnit.module('test-vlookup', function () {
2+
QUnit.test('Test', async function (assert) {
3+
await new Promise(resolve => setTimeout(resolve, 300));
4+
assert.equal(1, 1);
5+
6+
});
7+
});
Binary file not shown.
Binary file not shown.

0 commit comments

Comments
 (0)