Skip to content

Commit 7a95925

Browse files
committed
添加 单元测试
1 parent 52a3653 commit 7a95925

20 files changed

+1144
-29
lines changed

csharp/ToolGood.Algorithm2.WebTest/wwwroot/Test/test-csharp.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -236,7 +236,7 @@
236236

237237
var engine = new AlgorithmEngine();
238238
var dt = engine.TryEvaluate("json('{\"Name\":\"William Shakespeare\",\"Age\":51,\"Birthday\":\"04/26/1564 00:00:00\"}').Age", null);
239-
assert.equal(dt.ToString(), "51");
239+
assert.equal(dt, "51");
240240
dt = engine.TryEvaluate("json('{\"Name\":\"William Shakespeare\",\"Age\":51,\"Birthday\":\"04/26/1564 00:00:00\"}')[Birthday]", null);
241241
assert.equal(dt, "04/26/1564 00:00:00");
242242

Lines changed: 297 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,300 @@
1-
QUnit.module('test-datetime', function () {
2-
QUnit.test('Test', async function (assert) {
1+
Date.prototype.format = function (format) {
2+
var o = {
3+
"M+": this.getMonth() + 1, //month
4+
"d+": this.getDate(), //day
5+
"h+": this.getHours(), //hour
6+
"m+": this.getMinutes(), //minute
7+
"s+": this.getSeconds(), //second
8+
"q+": Math.floor((this.getMonth() + 3) / 3), //quarter
9+
"S": this.getMilliseconds() //millisecond
10+
}
11+
if (/(y+)/.test(format)) format = format.replace(RegExp.$1,
12+
(this.getFullYear() + "").substr(4 - RegExp.$1.length));
13+
for (var k in o) if (new RegExp("(" + k + ")").test(format))
14+
format = format.replace(RegExp.$1,
15+
RegExp.$1.length == 1 ? o[k] :
16+
("00" + o[k]).substr(("" + o[k]).length));
17+
return format;
18+
}
19+
QUnit.module('test-datetime', function () {
20+
QUnit.test('DATEVALUE_Test', async function (assert) {
321
await new Promise(resolve => setTimeout(resolve, 300));
4-
assert.equal(1, 1);
522

23+
var engine = new AlgorithmEngine();
24+
var dt = engine.TryEvaluate("DATEVALUE('2016-01-01')",new Date());
25+
assert.equal(dt, "2016-01-01 00:00:00");
26+
dt = engine.TryEvaluate("DATEVALUE('2016-01-01')", new Date());
27+
assert.equal(dt, "2016-01-01 00:00:00");
28+
29+
// chinese time 中国8时区
30+
dt = engine.TryEvaluate("DATEVALUE('1691234899000',0)", new Date());
31+
assert.equal(dt, "2023-08-05 11:28:19");// new Date(2023, 8, 5, 19, 28, 19));
32+
33+
34+
// chinese time
35+
dt = engine.TryEvaluate("DATEVALUE('1691234899',0)", new Date());
36+
assert.equal(dt, "2023-08-05 11:28:19");// new Date(2023, 8, 5, 19, 28, 19));
37+
38+
39+
engine.UseLocalTime = true;
40+
// chinese time
41+
dt = engine.TryEvaluate("DATEVALUE('1691234899000',0)", new Date());
42+
assert.equal(dt, "2023-08-05 19:28:19");// new Date(2023, 8, 5, 19, 28, 19));
43+
44+
// chinese time
45+
dt = engine.TryEvaluate("DATEVALUE('1691234899',0)", new Date());
46+
assert.equal(dt, "2023-08-05 19:28:19");// new Date(2023, 8, 5, 19, 28, 19));
47+
48+
// chinese time
49+
dt = engine.TryEvaluate("DATEVALUE('1691234899000')", new Date());
50+
assert.equal(dt, "2023-08-05 19:28:19");// new Date(2023, 8, 5, 19, 28, 19));
51+
52+
// chinese time
53+
dt = engine.TryEvaluate("DATEVALUE('1691234899')", new Date());
54+
assert.equal(dt, "2023-08-05 19:28:19");// new Date(2023, 8, 5, 19, 28, 19));
55+
56+
});
57+
58+
59+
QUnit.test('TIMESTAMP_Test', async function (assert) {
60+
await new Promise(resolve => setTimeout(resolve, 300));
61+
62+
var engine = new AlgorithmEngine();
63+
engine.UseLocalTime = true;
64+
65+
// chinese time
66+
var dt = engine.TryEvaluate("TIMESTAMP('2016-01-01')", 0);
67+
assert.equal(dt, 1451577600000);
68+
69+
dt = engine.TryEvaluate("TIMESTAMP('2016-01-01',0)", 0);
70+
assert.equal(dt, 1451577600000);
71+
72+
dt = engine.TryEvaluate("TIMESTAMP('2016-01-01',1)", 0);
73+
assert.equal(dt, 1451577600);
74+
});
75+
76+
QUnit.test('TIMEVALUE_test', async function (assert) {
77+
await new Promise(resolve => setTimeout(resolve, 300));
78+
79+
var engine = new AlgorithmEngine();
80+
var dt = engine.TryEvaluate("TIMEVALUE('12:12:12')", "");
81+
assert.equal(dt, "12:12:12");
82+
});
83+
84+
QUnit.test('DATE_test', async function (assert) {
85+
await new Promise(resolve => setTimeout(resolve, 300));
86+
87+
var engine = new AlgorithmEngine();
88+
var dt = engine.TryEvaluate("DATE(2016,1,1)", new Date());
89+
assert.equal(dt, "2016-01-01 00:00:00");
90+
});
91+
92+
QUnit.test('time_test', async function (assert) {
93+
await new Promise(resolve => setTimeout(resolve, 300));
94+
95+
var engine = new AlgorithmEngine();
96+
var dt = engine.TryEvaluate("time(11,12,13)", "");
97+
assert.equal(dt, "11:12:13");
98+
99+
});
100+
101+
QUnit.test('Now_test', async function (assert) {
102+
await new Promise(resolve => setTimeout(resolve, 300));
103+
104+
var engine = new AlgorithmEngine();
105+
var dt = engine.TryEvaluate("now()", new Date());
106+
assert.equal(new Date(dt).format('yyyy-MM-dd hh:mm:ss'), new Date().format('yyyy-MM-dd hh:mm:ss'));
107+
});
108+
109+
QUnit.test('Today_test', async function (assert) {
110+
await new Promise(resolve => setTimeout(resolve, 300));
111+
var engine = new AlgorithmEngine();
112+
var dt = engine.TryEvaluate("Today()", new Date());
113+
assert.equal(new Date(dt).format('yyyy-MM-dd hh:mm:ss'), new Date().format('yyyy-MM-dd 00:00:00'));
114+
});
115+
116+
QUnit.test('year_Test', async function (assert) {
117+
await new Promise(resolve => setTimeout(resolve, 300));
118+
var engine = new AlgorithmEngine();
119+
var dt = engine.TryEvaluate("year(now())", 0);
120+
assert.equal(dt, new Date().getFullYear());
121+
});
122+
123+
QUnit.test('Month_test', async function (assert) {
124+
await new Promise(resolve => setTimeout(resolve, 300));
125+
var engine = new AlgorithmEngine();
126+
var dt = engine.TryEvaluate("Month(now())", 0);
127+
assert.equal(dt, new Date().getMonth()+1);
128+
});
129+
130+
QUnit.test('Day_test', async function (assert) {
131+
await new Promise(resolve => setTimeout(resolve, 300));
132+
var engine = new AlgorithmEngine();
133+
var dt = engine.TryEvaluate("Day(now())", 0);
134+
assert.equal(dt, new Date().getDate());
135+
});
136+
137+
QUnit.test('Hour_test', async function (assert) {
138+
await new Promise(resolve => setTimeout(resolve, 300));
139+
var engine = new AlgorithmEngine();
140+
var dt = engine.TryEvaluate("Hour(now())", 0);
141+
assert.equal(dt, new Date().getHours());
142+
});
143+
144+
QUnit.test('Minute_test', async function (assert) {
145+
await new Promise(resolve => setTimeout(resolve, 300));
146+
var engine = new AlgorithmEngine();
147+
var dt = engine.TryEvaluate("Minute(now())", 0);
148+
assert.equal(dt, new Date().getMinutes());
6149
});
7-
});
150+
151+
QUnit.test('Second_test', async function (assert) {
152+
await new Promise(resolve => setTimeout(resolve, 300));
153+
var engine = new AlgorithmEngine();
154+
var dt = engine.TryEvaluate("Second(now())", 0);
155+
assert.equal(dt, new Date().getSeconds());
156+
});
157+
158+
QUnit.test('WEEKDAY_test', async function (assert) {
159+
await new Promise(resolve => setTimeout(resolve, 300));
160+
161+
var engine = new AlgorithmEngine();
162+
var dt = engine.TryEvaluate("WEEKDAY(date(2017,1,7))", 0);
163+
assert.equal(dt, 7);
164+
dt = engine.TryEvaluate("WEEKDAY(date(2017,1,7),1)", 0);
165+
assert.equal(dt, 7);
166+
dt = engine.TryEvaluate("WEEKDAY(date(2017,1,7),2)", 0);
167+
assert.equal(dt, 6);
168+
dt = engine.TryEvaluate("WEEKDAY(date(2017,1,7),3)", 0);
169+
assert.equal(dt, 5);
170+
171+
dt = engine.TryEvaluate("WEEKDAY(date(2017,1,8),1)", 0);
172+
assert.equal(dt, 1);
173+
dt = engine.TryEvaluate("WEEKDAY(date(2017,1,8),2)", 0);
174+
assert.equal(dt, 7);
175+
dt = engine.TryEvaluate("WEEKDAY(date(2017,1,8),3)", 0);
176+
assert.equal(dt, 6);
177+
178+
dt = engine.TryEvaluate("WEEKDAY(date(2017,1,2),1)", 0);
179+
assert.equal(dt, 2);
180+
dt = engine.TryEvaluate("WEEKDAY(date(2017,1,2),2)", 0);
181+
assert.equal(dt, 1);
182+
dt = engine.TryEvaluate("WEEKDAY(date(2017,1,2),3)", 0);
183+
assert.equal(dt, 0);
184+
});
185+
186+
QUnit.test('DATEDIF_Test', async function (assert) {
187+
await new Promise(resolve => setTimeout(resolve, 300));
188+
var engine = new AlgorithmEngine();
189+
var dt = engine.TryEvaluate("DATEDIF('1975-1-30','2017-1-7','y')", 0);
190+
assert.equal(dt, 41);
191+
192+
dt = engine.TryEvaluate("DATEDIF('1975-1-30','2017-1-7','m')", 0);
193+
assert.equal(dt, 503);
194+
195+
dt = engine.TryEvaluate("DATEDIF('1975-1-30','2017-1-7','d')", 0);
196+
assert.equal(dt, 15318);
197+
198+
199+
dt = engine.TryEvaluate("DATEDIF('1975-1-30','2017-1-7','yd')", 0);
200+
assert.equal(dt, 342);
201+
202+
dt = engine.TryEvaluate("DATEDIF('1975-1-30','2017-1-7','ym')", 0);
203+
assert.equal(dt, 11);
204+
205+
dt = engine.TryEvaluate("DATEDIF('1975-1-30','2017-1-7','md')", 0);
206+
assert.equal(dt, 8);
207+
});
208+
QUnit.test('DAYS360_test', async function (assert) {
209+
await new Promise(resolve => setTimeout(resolve, 300));
210+
var engine = new AlgorithmEngine();
211+
var dt = engine.TryEvaluate("DAYS360('1975-1-30','2017-1-7')", 0);
212+
assert.equal(dt, 15097);
213+
});
214+
QUnit.test('EDATE_test', async function (assert) {
215+
await new Promise(resolve => setTimeout(resolve, 300));
216+
var engine = new AlgorithmEngine();
217+
var dt = engine.TryEvaluate("EDATE(\"2012-1-31\",32)", new Date());
218+
assert.equal(dt, "2014-09-30 00:00:00");
219+
});
220+
QUnit.test('EOMONTH_test', async function (assert) {
221+
await new Promise(resolve => setTimeout(resolve, 300));
222+
var engine = new AlgorithmEngine();
223+
var dt = engine.TryEvaluate("EOMONTH(\"2012-2-1\",32)", new Date());
224+
assert.equal(dt, "2014-10-31 00:00:00");
225+
});
226+
QUnit.test('NETWORKDAYS_test', async function (assert) {
227+
await new Promise(resolve => setTimeout(resolve, 300));
228+
var engine = new AlgorithmEngine();
229+
var dt = engine.TryEvaluate("NETWORKDAYS(\"2012-1-1\",\"2013-1-1\")", 0);
230+
assert.equal(dt, 262);
231+
});
232+
QUnit.test('WORKDAY_test', async function (assert) {
233+
await new Promise(resolve => setTimeout(resolve, 300));
234+
var engine = new AlgorithmEngine();
235+
var dt = engine.TryEvaluate("WORKDAY(\"2012-1-2\",145)", new Date());
236+
assert.equal(dt, "2012-07-23 00:00:00");
237+
});
238+
QUnit.test('WEEKNUM_test', async function (assert) {
239+
await new Promise(resolve => setTimeout(resolve, 300));
240+
var engine = new AlgorithmEngine();
241+
var dt = engine.TryEvaluate("WEEKNUM(\"2016-1-3\")", 0);
242+
assert.equal(dt, 2);
243+
dt = engine.TryEvaluate("WEEKNUM(\"2016-1-2\")", 0);
244+
assert.equal(dt, 1);
245+
246+
dt = engine.TryEvaluate("WEEKNUM(\"2016-1-4\",2)", 0);
247+
assert.equal(dt, 2);
248+
dt = engine.TryEvaluate("WEEKNUM(\"2016-1-3\",2)", 0);
249+
assert.equal(dt, 1);
250+
dt = engine.TryEvaluate("WEEKNUM(\"2016-1-2\",2)", 0);
251+
assert.equal(dt, 1);
252+
});
253+
QUnit.test('Add_test', async function (assert) {
254+
await new Promise(resolve => setTimeout(resolve, 300));
255+
var engine = new AlgorithmEngine();
256+
var dt = engine.TryEvaluate("'2000-02-01'.addYears(1).year()", 0);
257+
assert.equal(dt, 2001);
258+
259+
dt = engine.TryEvaluate("'2000-02-01'.AddMonths(1).Month()", 0);
260+
assert.equal(dt, 3);
261+
262+
dt = engine.TryEvaluate("'2000-02-01'.AddDays(1).Day()", 0);
263+
assert.equal(dt, 2);
264+
265+
dt = engine.TryEvaluate("'2000-02-01 12:05:06'.AddHours(1).Hour()", 0);
266+
assert.equal(dt, 13);
267+
268+
dt = engine.TryEvaluate("'2000-02-01 12:05:06'.AddMinutes(1).Minute()", 0);
269+
assert.equal(dt, 6);
270+
271+
dt = engine.TryEvaluate("'2000-02-01 12:05:06'.AddSeconds(1).Second()", 0);
272+
assert.equal(dt, 7);
273+
274+
dt = engine.TryEvaluate("'2000-02-01 10:05:06'.AddSeconds(1).Second()", 0);
275+
assert.equal(dt, 7);
276+
277+
dt = engine.TryEvaluate("'2000-02-01 20:05:06'.AddSeconds(1).Second()", 0);
278+
assert.equal(dt, 7);
279+
280+
dt = engine.TryEvaluate("'2000-02-01 9:05:06'.AddSeconds(1).Second()", 0);
281+
assert.equal(dt, 7);
282+
283+
dt = engine.TryEvaluate("'7:05:06'.AddSeconds(1).Second()", 0);
284+
assert.equal(dt, 7);
285+
286+
dt = engine.TryEvaluate("'10:05:06'.AddSeconds(1).Second()", 0);
287+
assert.equal(dt, 7);
288+
289+
dt = engine.TryEvaluate("'20:05:06'.AddSeconds(1).Second()", 0);
290+
assert.equal(dt, 7);
291+
292+
// 错误
293+
dt = engine.TryEvaluate("'2000-02-01 24:05:06'.AddSeconds(1).Second()", 0);
294+
assert.equal(dt, 0);
295+
});
296+
297+
});
298+
299+
300+

0 commit comments

Comments
 (0)