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 , "&=我中国人 >||" ) ;
18+ } ) ;
19+ QUnit . test ( 'HtmlDecode' , async function ( assert ) {
20+ var engine = new AlgorithmEngine ( ) ;
21+ var dt = engine . TryEvaluate ( "HtmlDecode('&=我中国人 >||')" , 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+
0 commit comments