File: japanese_add.cts

package info (click to toggle)
openjdk-11 11.0.4%2B11-1
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 757,028 kB
  • sloc: java: 5,016,041; xml: 1,191,974; cpp: 934,731; ansic: 555,697; sh: 24,299; objc: 12,703; python: 3,602; asm: 3,415; makefile: 2,772; awk: 351; sed: 172; perl: 114; jsp: 24; csh: 3
file content (521 lines) | stat: -rw-r--r-- 10,452 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
#
# %i%
#

# The test cases in this file assume the first day of week is Sunday
# and the minimal days in the first week is 1.

locale ja JP JP
new instance jcal

timezone Asia/Tokyo
new instance tokyocal

set non-lenient

test add ERA
    use jcal
	clear all
	set date Reiwa 17 Mar 8
	add era 10
	# as of Reiwa 17 March 8
	check era Reiwa
	add era -100
	check era BeforeMeiji

test add HOUR_OF_DAY
    use jcal
	clear all
	set era Heisei
	set datetime 1 Jan 8 23 59 59
	add hour_of_day 1
	check datetime 1 Jan 9 0 59 59
	check ampm AM
	check hour 0
	add hour_of_day -1
	check datetime 1 Jan 8 23 59 59
	add hour_of_day 24
	check datetime 1 Jan 9 23 59 59
	add hour_of_day -24
	check datetime 1 Jan 8 23 59 59

test add HOUR
    use jcal
	clear all
	set era Showa
	set datetime 64 Jan 7 11 59 59
	check era Showa
	check hour 11
	check ampm AM
	add hour 1
	check hour 0
	check ampm PM
	check datetime 64 Jan 7  12 59 59
	add hour -1
	check datetime 64 Jan 7 11 59 59
	add hour 240
	check era Heisei
	check datetime 1 Jan 17 11 59 59
	add hour -240
	check era Showa
	check datetime 64 Jan 7 11 59 59

	clear all
	set era Showa
	set datetime 64 Jan 7 23 59 59
	check era Showa
	check hour 11
	check ampm PM
	add hour 1
	check hour 0
	check ampm AM
	check era Heisei
	check datetime 1 Jan 8 0 59 59
	add hour -1
	check datetime 64 Jan 7 23 59 59
	add hour 240
	check era Heisei
	check datetime 1 Jan 17 23 59 59
	add hour -240
	check era Showa
	check datetime 64 Jan 7 23 59 59

	clear all
	set era Heisei
	set datetime 1 Jan 8 23 59 59
	check date Heisei 1 Jan 8
	check hour 11
	check ampm PM
	add hour 1
	check hour 0
	check ampm AM
	check era Heisei
	check datetime 1 Jan 9  0 59 59
	add hour -1
	check datetime 1 Jan 8 23 59 59
	add hour 240
	check datetime 1 Jan 18 23 59 59
	add hour -240
	check datetime 1 Jan 8 23 59 59

test add YEAR
    use jcal
	clear all
	# check if pinDayOfMonth works correctly.
	# Heisei 12 (Y2K) is a leap year.
	set date Heisei 12 Feb 29
	add year 5
	check date Heisei 17 Feb 28
	add year -5
	check date Heisei 12 Feb 28 # not 29!

	clear all
	set date BeforeMeiji 1867 Jan 1
	add year 1
	check date Meiji 1 Jan 1
	add year -1
	check date BeforeMeiji 1867 Jan 1

	clear all
	set date Meiji 45 Jul 29
	add year 1
	check date Taisho 2 Jul 29
	add year -1
	check date Meiji 45 Jul 29

	clear all
	set date Meiji 44 Jul 30
	add year 1
	check date Taisho 1 Jul 30
	add year -1
	check date Meiji 44 Jul 30

	clear all
	set date Taisho 15 Aug 1
	add year 1
	check date Showa 2 Aug 1
	add year -1
	check date Taisho 15 Aug 1

	clear all
	set date Taisho 14 Dec 31
	add year 1
	check date Showa 1 Dec 31
	add year -1
	check date Taisho 14 Dec 31

	clear all
	set date Showa 63 Feb 1
	add year 1
	check date Heisei 1 Feb 1
	add year -1
	check date Showa 63 Feb 1

	set date Showa 63 Dec 30
	add year 1
	check date Heisei 1 Dec 30
	add year -1
	check date Showa 63 Dec 30

	set date Showa 64 Jan 7
	add year 1
	check date Heisei 2 Jan 7
	add year -1
	check date Showa 64 Jan 7

	set date Heisei 2 Jan 7
	add year -1
	check date Showa 64 Jan 7
	add year 1
	check date Heisei 2 Jan 7

test add MONTH
	clear all
	# Check pinDayOfMonth works correctly.
	# Heisei 12 is a leap year.
	set date Heisei 12 Jan 31
	add month 1
	check date Heisei 12 Feb 29
	add month -1
	check date Heisei 12 Jan 29

	# Another leap year
	set date Showa 63 Jan 31
	add month 1
	check date Showa 63 Feb 29
	add month -1
	check date Showa 63 Jan 29

	# Non leap year
	set date Heisei 15 Jan 31
	add month 1
	check date Heisei 15 Feb 28
	add month -1
	check date Heisei 15 Jan 28

	set date Heisei 15 Mar 31
	add month 1
	check date Heisei 15 Apr 30
	add month -1
	check date Heisei 15 Mar 30

	set date Heisei 15 May 31
	add month 1
	check date Heisei 15 Jun 30
	add month -1
	check date Heisei 15 May 30

	set date Heisei 15 Aug 31
	add month 1
	check date Heisei 15 Sep 30
	add month -1
	check date Heisei 15 Aug 30

	set date Heisei 15 Oct 31
	add month 1
	check date Heisei 15 Nov 30
	add month -1
	check date Heisei 15 Oct 30

	set date Heisei 15 Dec 31
	add month -1
	check date Heisei 15 Nov 30
	add month 1
	check date Heisei 15 Dec 30

	set date Heisei 15 Dec 31
	add month 2
	check date Heisei 16 Feb 29
	add month -1
	check date Heisei 16 Jan 29

	# end of pinDayOfMonth tests

	set date BeforeMeiji 1867 Dec 1
	add month 1
	check date Meiji 1 Jan 1
	add month -1
	check date BeforeMeiji 1867 Dec 1
	add month 14
	check date Meiji 2 Feb 1
	add month -14
	check date BeforeMeiji 1867 Dec 1

	set date Meiji 1 Dec 1
	add month 1
	check date Meiji 2 Jan 1
	add month -1
	check date Meiji 1 Dec 1
	add month 13
	check date Meiji 3 Jan 1
	add month -13
	check date Meiji 1 Dec 1

	set date Meiji 45 Jun 30
	add month 1
	check date Taisho 1 Jul 30
	add month -1
	check date Meiji 45 Jun 30

	set date Meiji 45 Jun 30
	add month 14
	check date Taisho 2 Aug 30
	add month -14
	check date Meiji 45 Jun 30

	# Taisho Gan-nen (year 1) has only 6 months.
	set date Taisho 1 Jul 30
	add month -1
	check date Meiji 45 Jun 30
	add month 1
	check date Taisho 1 Jul 30
	add month -18
	check date Meiji 44 Jan 30
	add month 18
	check date Taisho 1 Jul 30

	set date Taisho 15 Jan 20
	add month 11
	check date Taisho 15 Dec 20

	set date Taisho 15 Jan 25
	add month 11
	check date Showa 1 Dec 25

	set date Showa 1 Dec 25
	add month 1
	check date Showa 2 Jan 25
	add month -1
	check date Showa 1 Dec 25
	add month 17
	check date Showa 3 May 25
	add month -17
	check date Showa 1 Dec 25

	set date Showa 64 Jan 7
	add month 1
	check date Heisei 1 Feb 7

	set date Heisei 1 Feb 1
	add month -1
	# Heisei starts from Jan 8.
	check date Showa 64 Jan 1
	add month 1
	check date Heisei 1 Feb 1

	set date Heisei 1 Feb 8
	add month -1
	check date Heisei 1 Jan 8

	set date Heisei 1 Dec 1
	add month 1
	check date Heisei 2 Jan 1
	add month -1
	check date Heisei 1 Dec 1

	set date Heisei 1 Dec 8
	add month 1
	check date Heisei 2 Jan 8
	add month -1
	check date Heisei 1 Dec 8

    # time zone dependent tests
    use tokyocal
	clear all

	set date BeforeMeiji 1 Jan 1
	get min year
	assign $result $minyear
	# actual min date: -292275055.05.17T01:47:04.192+0900

	set date BeforeMeiji $minyear Dec 17
	set timeofday 1 47 4 192
	add month -7
	check date BeforeMeiji $minyear May 17
	check timeofday 1 47 4 192
	add month 7
	check date BeforeMeiji $minyear Dec 17
	check timeofday 1 47 4 192
	set date BeforeMeiji $minyear Dec 17
	set timeofday 1 47 4 191
	add month -7
	check date BeforeMeiji $minyear May 18
	check timeofday 1 47 4 191

	set date Reiwa 17 Jan 1
	get max year
	assign $result $max
	set date Reiwa $max Jul 17
	add month 1
	check date Reiwa $max Aug 17
#	set date Heisei $max Jul 28
#	set timeofday 23 59 59 999
#	add month 1
#	check date Heisei $max Aug 16
#	check timeofday 23 59 59 999

test add WEEK_OF_YEAR
    use jcal
	clear all
	# 1867 Dec 23 is Monday.
	set date BeforeMeiji 1867 Dec 23
	add week_of_year 2
	check day_of_week Mon
	check date Meiji 1 Jan 6
	add week_of_year -2
	check day_of_week Mon
	check date BeforeMeiji 1867 Dec 23

	# 1867 Dec 23 is Wednesday.
	set date Meiji 1 Dec 23
	add week_of_year 2
	check day_of_week Wed
	check date Meiji 2 Jan 6
	add week_of_year -2
	check day_of_week Wed
	check date Meiji 1 Dec 23

	# Meiji 45 July 23 is Tuesday.
	set date Meiji 45 Jul 23
	add week_of_year 1
	check day_of_week Tue
	check date Taisho 1 Jul 30
	add week_of_year -1
	check day_of_week Tue
	check date Meiji 45 Jul 23

	# Taisho 15 December 23 is Thursday.
	set date Taisho 15 Dec 23
	add week_of_year 1
	check day_of_week Thu
	check date Showa 1 Dec 30
	add week_of_year -1
	check day_of_week Thu
	check date Taisho 15 Dec 23

	# Showa Gan-nen December 30 is Thursday.  Showa Gan-nen has
	# only one week. Rolling any number of weeks brings to the
	# same date.
	set date Showa 1 Dec 30
	add week_of_year 1
	check day_of_week Thu
	check date Showa 2 Jan 6
	add week_of_year -1
	check day_of_week Thu
	check date Showa 1 Dec 30

	# Showa 64 January 7 is Saturday. The year has only one week.
	set date Showa 64 Jan 7
	add week_of_year 1
	check day_of_week Sat
	check date Heisei 1 Jan 14
	add week_of_year -1
	check day_of_week Sat
	check date Showa 64 Jan 7

    use tokyocal
	clear all

	set date BeforeMeiji $minyear Dec 25
	check day_of_week Sat
	eval $minyear + 1
	assign $result $minyear_plus_1
	add week_of_year 1
	check day_of_week Sat
	check date BeforeMeiji $minyear_plus_1 Jan 1
	add week_of_year -1
	check day_of_week Sat
	check date BeforeMeiji $minyear Dec 25

test WEEK_OF_MONTH
    use jcal
	clear all

test DAY_OF_MONTH
    use jcal
	clear all

test DAY_OF_YEAR
    use jcal
	clear all

	# 1867 is a regular Gregorian year.
	set date BeforeMeiji 1867 Dec 31
	add day_of_year 1
	check date Meiji 1 Jan 1
	add day_of_year -1
	check date BeforeMeiji 1867 Dec 31
	add day_of_year 26
	check date Meiji 1 Jan 26
	add day_of_year -26
	check date BeforeMeiji 1867 Dec 31

	# Meiji 1 starts from Jan 1. It's a regular year as well.
	set date Meiji 1 Dec 31
	add day_of_year 1
	check date Meiji 2 Jan 1
	add day_of_year -1
	check date Meiji 1 Dec 31
	add day_of_year 26
	check date Meiji 2 Jan 26
	add day_of_year -26
	check date Meiji 1 Dec 31

	# The last year of Meiji (45) has an irregularity. Meiji 45
	# July 30 is actually Taisho 1 July 30.
	set date Meiji 45 Jul 29
	add day_of_year 1
	check date Taisho 1 Jul 30
	add day_of_year -1
	check date Meiji 45 Jul 29

	# The first day of Taisho, July 30.
	set date Taisho 1 Jul 30
	add day_of_year -1
	check date Meiji 45 Jul 29
	add day_of_year 1
	check date Taisho 1 Jul 30

	set date Taisho 15 Dec 24
	add day_of_year 1
	check date Showa 1 Dec 25
	add day_of_year -1
	check date Taisho 15 Dec 24

	set date Showa 1 Dec 31
	add day_of_year 1
	check date Showa 2 Jan 1
	add day_of_year -1
	check date Showa 1 Dec 31
	add day_of_year 25
	check date Showa 2 Jan 25
	add day_of_year -25
	check date Showa 1 Dec 31

	set date Showa 64 Jan 7
	add day_of_year 1
	check date Heisei 1 Jan 8
	add day_of_year -1
	check date Showa 64 Jan 7

	set date Heisei 1 Dec 31
	add day_of_year 5
	check date Heisei 2 Jan 5
	add day_of_year -5
	check date Heisei 1 Dec 31

    use tokyocal
	clear all

	set date BeforeMeiji $minyear Dec 31
	set timeofday 1 47 4 192
	add day_of_year 1
	check date BeforeMeiji $minyear_plus_1 Jan 1
	check timeofday 1 47 4 192
	add day_of_year -1
	check date BeforeMeiji $minyear Dec 31
	check timeofday 1 47 4 192

test DAY_OF_WEEK_IN_MONTH
    use jcal
	clear all