1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.joda.time;
17
18 import java.util.Locale;
19 import java.util.TimeZone;
20
21 import junit.framework.TestCase;
22 import junit.framework.TestSuite;
23
24 import org.joda.time.chrono.CopticChronology;
25 import org.joda.time.chrono.ISOChronology;
26
27
28
29
30
31
32 public class TestMutablePeriod_Constructors extends TestCase {
33
34
35
36 private static final DateTimeZone PARIS = DateTimeZone.forID("Europe/Paris");
37 private static final DateTimeZone LONDON = DateTimeZone.forID("Europe/London");
38
39 long y2002days = 365 + 365 + 366 + 365 + 365 + 365 + 366 + 365 + 365 + 365 +
40 366 + 365 + 365 + 365 + 366 + 365 + 365 + 365 + 366 + 365 +
41 365 + 365 + 366 + 365 + 365 + 365 + 366 + 365 + 365 + 365 +
42 366 + 365;
43 long y2003days = 365 + 365 + 366 + 365 + 365 + 365 + 366 + 365 + 365 + 365 +
44 366 + 365 + 365 + 365 + 366 + 365 + 365 + 365 + 366 + 365 +
45 365 + 365 + 366 + 365 + 365 + 365 + 366 + 365 + 365 + 365 +
46 366 + 365 + 365;
47
48
49 private long TEST_TIME_NOW =
50 (y2002days + 31L + 28L + 31L + 30L + 31L + 9L -1L) * DateTimeConstants.MILLIS_PER_DAY;
51
52
53 private long TEST_TIME1 =
54 (y2002days + 31L + 28L + 31L + 5L -1L) * DateTimeConstants.MILLIS_PER_DAY
55 + 12L * DateTimeConstants.MILLIS_PER_HOUR
56 + 24L * DateTimeConstants.MILLIS_PER_MINUTE;
57
58
59 private long TEST_TIME2 =
60 (y2003days + 31L + 28L + 31L + 30L + 6L -1L) * DateTimeConstants.MILLIS_PER_DAY
61 + 14L * DateTimeConstants.MILLIS_PER_HOUR
62 + 28L * DateTimeConstants.MILLIS_PER_MINUTE;
63
64 private DateTimeZone originalDateTimeZone = null;
65 private TimeZone originalTimeZone = null;
66 private Locale originalLocale = null;
67
68 public static void main(String[] args) {
69 junit.textui.TestRunner.run(suite());
70 }
71
72 public static TestSuite suite() {
73 return new TestSuite(TestMutablePeriod_Constructors.class);
74 }
75
76 public TestMutablePeriod_Constructors(String name) {
77 super(name);
78 }
79
80 protected void setUp() throws Exception {
81 DateTimeUtils.setCurrentMillisFixed(TEST_TIME_NOW);
82 originalDateTimeZone = DateTimeZone.getDefault();
83 originalTimeZone = TimeZone.getDefault();
84 originalLocale = Locale.getDefault();
85 DateTimeZone.setDefault(LONDON);
86 TimeZone.setDefault(TimeZone.getTimeZone("Europe/London"));
87 Locale.setDefault(Locale.UK);
88 }
89
90 protected void tearDown() throws Exception {
91 DateTimeUtils.setCurrentMillisSystem();
92 DateTimeZone.setDefault(originalDateTimeZone);
93 TimeZone.setDefault(originalTimeZone);
94 Locale.setDefault(originalLocale);
95 originalDateTimeZone = null;
96 originalTimeZone = null;
97 originalLocale = null;
98 }
99
100
101 public void testParse_noFormatter() throws Throwable {
102 assertEquals(new MutablePeriod(1, 2, 3, 4, 5, 6, 7, 890), MutablePeriod.parse("P1Y2M3W4DT5H6M7.890S"));
103 }
104
105
106
107
108
109 public void testConstructor1() throws Throwable {
110 MutablePeriod test = new MutablePeriod();
111 assertEquals(PeriodType.standard(), test.getPeriodType());
112 assertEquals(0, test.getYears());
113 assertEquals(0, test.getMonths());
114 assertEquals(0, test.getWeeks());
115 assertEquals(0, test.getDays());
116 assertEquals(0, test.getHours());
117 assertEquals(0, test.getMinutes());
118 assertEquals(0, test.getSeconds());
119 assertEquals(0, test.getMillis());
120 }
121
122
123
124
125
126 public void testConstructor_PeriodType1() throws Throwable {
127 MutablePeriod test = new MutablePeriod(PeriodType.yearMonthDayTime());
128 assertEquals(PeriodType.yearMonthDayTime(), test.getPeriodType());
129 assertEquals(0, test.getYears());
130 assertEquals(0, test.getMonths());
131 assertEquals(0, test.getWeeks());
132 assertEquals(0, test.getDays());
133 assertEquals(0, test.getHours());
134 assertEquals(0, test.getMinutes());
135 assertEquals(0, test.getSeconds());
136 assertEquals(0, test.getMillis());
137 }
138
139 public void testConstructor_PeriodType2() throws Throwable {
140 MutablePeriod test = new MutablePeriod((PeriodType) null);
141 assertEquals(PeriodType.standard(), test.getPeriodType());
142 assertEquals(0, test.getYears());
143 assertEquals(0, test.getMonths());
144 assertEquals(0, test.getWeeks());
145 assertEquals(0, test.getDays());
146 assertEquals(0, test.getHours());
147 assertEquals(0, test.getMinutes());
148 assertEquals(0, test.getSeconds());
149 assertEquals(0, test.getMillis());
150 }
151
152
153 public void testConstructor_long1() throws Throwable {
154 long length = 4 * DateTimeConstants.MILLIS_PER_DAY +
155 5 * DateTimeConstants.MILLIS_PER_HOUR +
156 6 * DateTimeConstants.MILLIS_PER_MINUTE +
157 7 * DateTimeConstants.MILLIS_PER_SECOND + 8;
158 MutablePeriod test = new MutablePeriod(length);
159 assertEquals(PeriodType.standard(), test.getPeriodType());
160 assertEquals(0, test.getYears());
161 assertEquals(0, test.getMonths());
162 assertEquals(0, test.getWeeks());
163 assertEquals(0, test.getDays());
164 assertEquals((4 * 24) + 5, test.getHours());
165 assertEquals(6, test.getMinutes());
166 assertEquals(7, test.getSeconds());
167 assertEquals(8, test.getMillis());
168 }
169
170 public void testConstructor_long2() throws Throwable {
171 long length =
172 5 * DateTimeConstants.MILLIS_PER_HOUR +
173 6 * DateTimeConstants.MILLIS_PER_MINUTE +
174 7 * DateTimeConstants.MILLIS_PER_SECOND + 8;
175 MutablePeriod test = new MutablePeriod(length);
176 assertEquals(PeriodType.standard(), test.getPeriodType());
177 assertEquals(0, test.getYears());
178 assertEquals(0, test.getMonths());
179 assertEquals(0, test.getWeeks());
180 assertEquals(0, test.getDays());
181 assertEquals(5, test.getHours());
182 assertEquals(6, test.getMinutes());
183 assertEquals(7, test.getSeconds());
184 assertEquals(8, test.getMillis());
185 }
186
187 public void testConstructor_long3() throws Throwable {
188 long length =
189 (4L + (3L * 7L) + (2L * 30L) + 365L) * DateTimeConstants.MILLIS_PER_DAY +
190 5L * DateTimeConstants.MILLIS_PER_HOUR +
191 6L * DateTimeConstants.MILLIS_PER_MINUTE +
192 7L * DateTimeConstants.MILLIS_PER_SECOND + 8L;
193 MutablePeriod test = new MutablePeriod(length);
194 assertEquals(PeriodType.standard(), test.getPeriodType());
195
196 assertEquals(0, test.getYears());
197 assertEquals(0, test.getMonths());
198 assertEquals(0, test.getWeeks());
199 assertEquals(0, test.getDays());
200 assertEquals((450 * 24) + 5, test.getHours());
201 assertEquals(6, test.getMinutes());
202 assertEquals(7, test.getSeconds());
203 assertEquals(8, test.getMillis());
204 }
205
206
207 public void testConstructor_long_PeriodType1() throws Throwable {
208 long length = 4 * DateTimeConstants.MILLIS_PER_DAY +
209 5 * DateTimeConstants.MILLIS_PER_HOUR +
210 6 * DateTimeConstants.MILLIS_PER_MINUTE +
211 7 * DateTimeConstants.MILLIS_PER_SECOND + 8;
212 MutablePeriod test = new MutablePeriod(length, (PeriodType) null);
213 assertEquals(PeriodType.standard(), test.getPeriodType());
214 assertEquals(0, test.getYears());
215 assertEquals(0, test.getMonths());
216 assertEquals(0, test.getWeeks());
217 assertEquals(0, test.getDays());
218 assertEquals((4 * 24) + 5, test.getHours());
219 assertEquals(6, test.getMinutes());
220 assertEquals(7, test.getSeconds());
221 assertEquals(8, test.getMillis());
222 }
223
224 public void testConstructor_long_PeriodType2() throws Throwable {
225 long length = 4 * DateTimeConstants.MILLIS_PER_DAY +
226 5 * DateTimeConstants.MILLIS_PER_HOUR +
227 6 * DateTimeConstants.MILLIS_PER_MINUTE +
228 7 * DateTimeConstants.MILLIS_PER_SECOND + 8;
229 MutablePeriod test = new MutablePeriod(length, PeriodType.millis());
230 assertEquals(PeriodType.millis(), test.getPeriodType());
231 assertEquals(0, test.getYears());
232 assertEquals(0, test.getMonths());
233 assertEquals(0, test.getWeeks());
234 assertEquals(0, test.getDays());
235 assertEquals(0, test.getHours());
236 assertEquals(0, test.getMinutes());
237 assertEquals(0, test.getSeconds());
238 assertEquals(length, test.getMillis());
239 }
240
241 public void testConstructor_long_PeriodType3() throws Throwable {
242 long length = 4 * DateTimeConstants.MILLIS_PER_DAY +
243 5 * DateTimeConstants.MILLIS_PER_HOUR +
244 6 * DateTimeConstants.MILLIS_PER_MINUTE +
245 7 * DateTimeConstants.MILLIS_PER_SECOND + 8;
246 MutablePeriod test = new MutablePeriod(length, PeriodType.standard());
247 assertEquals(PeriodType.standard(), test.getPeriodType());
248 assertEquals(0, test.getYears());
249 assertEquals(0, test.getMonths());
250 assertEquals(0, test.getWeeks());
251 assertEquals(0, test.getDays());
252 assertEquals((4 * 24) + 5, test.getHours());
253 assertEquals(6, test.getMinutes());
254 assertEquals(7, test.getSeconds());
255 assertEquals(8, test.getMillis());
256 }
257
258 public void testConstructor_long_PeriodType4() throws Throwable {
259 long length =
260 5 * DateTimeConstants.MILLIS_PER_HOUR +
261 6 * DateTimeConstants.MILLIS_PER_MINUTE +
262 7 * DateTimeConstants.MILLIS_PER_SECOND + 8;
263 MutablePeriod test = new MutablePeriod(length, PeriodType.standard().withMillisRemoved());
264 assertEquals(PeriodType.standard().withMillisRemoved(), test.getPeriodType());
265 assertEquals(0, test.getYears());
266 assertEquals(0, test.getMonths());
267 assertEquals(0, test.getWeeks());
268 assertEquals(0, test.getDays());
269 assertEquals(5, test.getHours());
270 assertEquals(6, test.getMinutes());
271 assertEquals(7, test.getSeconds());
272 assertEquals(0, test.getMillis());
273 }
274
275
276 public void testConstructor_long_Chronology1() throws Throwable {
277 long length = 4 * DateTimeConstants.MILLIS_PER_DAY +
278 5 * DateTimeConstants.MILLIS_PER_HOUR +
279 6 * DateTimeConstants.MILLIS_PER_MINUTE +
280 7 * DateTimeConstants.MILLIS_PER_SECOND + 8;
281 MutablePeriod test = new MutablePeriod(length, ISOChronology.getInstance());
282 assertEquals(PeriodType.standard(), test.getPeriodType());
283 assertEquals(0, test.getYears());
284 assertEquals(0, test.getMonths());
285 assertEquals(0, test.getWeeks());
286 assertEquals(0, test.getDays());
287 assertEquals((4 * 24) + 5, test.getHours());
288 assertEquals(6, test.getMinutes());
289 assertEquals(7, test.getSeconds());
290 assertEquals(8, test.getMillis());
291 }
292
293 public void testConstructor_long_Chronology2() throws Throwable {
294 long length = 4 * DateTimeConstants.MILLIS_PER_DAY +
295 5 * DateTimeConstants.MILLIS_PER_HOUR +
296 6 * DateTimeConstants.MILLIS_PER_MINUTE +
297 7 * DateTimeConstants.MILLIS_PER_SECOND + 8;
298 MutablePeriod test = new MutablePeriod(length, ISOChronology.getInstanceUTC());
299 assertEquals(PeriodType.standard(), test.getPeriodType());
300 assertEquals(0, test.getYears());
301 assertEquals(0, test.getMonths());
302 assertEquals(0, test.getWeeks());
303 assertEquals(4, test.getDays());
304 assertEquals(5, test.getHours());
305 assertEquals(6, test.getMinutes());
306 assertEquals(7, test.getSeconds());
307 assertEquals(8, test.getMillis());
308 }
309
310 public void testConstructor_long_Chronology3() throws Throwable {
311 long length = 4 * DateTimeConstants.MILLIS_PER_DAY +
312 5 * DateTimeConstants.MILLIS_PER_HOUR +
313 6 * DateTimeConstants.MILLIS_PER_MINUTE +
314 7 * DateTimeConstants.MILLIS_PER_SECOND + 8;
315 MutablePeriod test = new MutablePeriod(length, (Chronology) null);
316 assertEquals(PeriodType.standard(), test.getPeriodType());
317 assertEquals(0, test.getYears());
318 assertEquals(0, test.getMonths());
319 assertEquals(0, test.getWeeks());
320 assertEquals(0, test.getDays());
321 assertEquals((4 * 24) + 5, test.getHours());
322 assertEquals(6, test.getMinutes());
323 assertEquals(7, test.getSeconds());
324 assertEquals(8, test.getMillis());
325 }
326
327
328 public void testConstructor_long_PeriodType_Chronology1() throws Throwable {
329 long length = 4 * DateTimeConstants.MILLIS_PER_DAY +
330 5 * DateTimeConstants.MILLIS_PER_HOUR +
331 6 * DateTimeConstants.MILLIS_PER_MINUTE +
332 7 * DateTimeConstants.MILLIS_PER_SECOND + 8;
333 MutablePeriod test = new MutablePeriod(length, PeriodType.time().withMillisRemoved(), ISOChronology.getInstance());
334 assertEquals(PeriodType.time().withMillisRemoved(), test.getPeriodType());
335 assertEquals(0, test.getYears());
336 assertEquals(0, test.getMonths());
337 assertEquals(0, test.getWeeks());
338 assertEquals(0, test.getDays());
339 assertEquals((4 * 24) + 5, test.getHours());
340 assertEquals(6, test.getMinutes());
341 assertEquals(7, test.getSeconds());
342 assertEquals(0, test.getMillis());
343 }
344
345 public void testConstructor_long_PeriodType_Chronology2() throws Throwable {
346 long length = 4 * DateTimeConstants.MILLIS_PER_DAY +
347 5 * DateTimeConstants.MILLIS_PER_HOUR +
348 6 * DateTimeConstants.MILLIS_PER_MINUTE +
349 7 * DateTimeConstants.MILLIS_PER_SECOND + 8;
350 MutablePeriod test = new MutablePeriod(length, PeriodType.standard(), ISOChronology.getInstanceUTC());
351 assertEquals(PeriodType.standard(), test.getPeriodType());
352 assertEquals(0, test.getYears());
353 assertEquals(0, test.getMonths());
354 assertEquals(0, test.getWeeks());
355 assertEquals(4, test.getDays());
356 assertEquals(5, test.getHours());
357 assertEquals(6, test.getMinutes());
358 assertEquals(7, test.getSeconds());
359 assertEquals(8, test.getMillis());
360 }
361
362 public void testConstructor_long_PeriodType_Chronology3() throws Throwable {
363 long length = 4 * DateTimeConstants.MILLIS_PER_DAY +
364 5 * DateTimeConstants.MILLIS_PER_HOUR +
365 6 * DateTimeConstants.MILLIS_PER_MINUTE +
366 7 * DateTimeConstants.MILLIS_PER_SECOND + 8;
367 MutablePeriod test = new MutablePeriod(length, PeriodType.standard(), (Chronology) null);
368 assertEquals(PeriodType.standard(), test.getPeriodType());
369 assertEquals(0, test.getYears());
370 assertEquals(0, test.getMonths());
371 assertEquals(0, test.getWeeks());
372 assertEquals(0, test.getDays());
373 assertEquals((4 * 24) + 5, test.getHours());
374 assertEquals(6, test.getMinutes());
375 assertEquals(7, test.getSeconds());
376 assertEquals(8, test.getMillis());
377 }
378
379 public void testConstructor_long_PeriodType_Chronology4() throws Throwable {
380 long length = 4 * DateTimeConstants.MILLIS_PER_DAY +
381 5 * DateTimeConstants.MILLIS_PER_HOUR +
382 6 * DateTimeConstants.MILLIS_PER_MINUTE +
383 7 * DateTimeConstants.MILLIS_PER_SECOND + 8;
384 MutablePeriod test = new MutablePeriod(length, (PeriodType) null, (Chronology) null);
385 assertEquals(PeriodType.standard(), test.getPeriodType());
386 assertEquals(0, test.getYears());
387 assertEquals(0, test.getMonths());
388 assertEquals(0, test.getWeeks());
389 assertEquals(0, test.getDays());
390 assertEquals((4 * 24) + 5, test.getHours());
391 assertEquals(6, test.getMinutes());
392 assertEquals(7, test.getSeconds());
393 assertEquals(8, test.getMillis());
394 }
395
396
397
398
399
400 public void testConstructor_4int1() throws Throwable {
401 MutablePeriod test = new MutablePeriod(5, 6, 7, 8);
402 assertEquals(PeriodType.standard(), test.getPeriodType());
403 assertEquals(0, test.getYears());
404 assertEquals(0, test.getMonths());
405 assertEquals(0, test.getWeeks());
406 assertEquals(0, test.getDays());
407 assertEquals(5, test.getHours());
408 assertEquals(6, test.getMinutes());
409 assertEquals(7, test.getSeconds());
410 assertEquals(8, test.getMillis());
411 }
412
413
414
415
416
417 public void testConstructor_8int1() throws Throwable {
418 MutablePeriod test = new MutablePeriod(1, 2, 3, 4, 5, 6, 7, 8);
419 assertEquals(PeriodType.standard(), test.getPeriodType());
420 assertEquals(1, test.getYears());
421 assertEquals(2, test.getMonths());
422 assertEquals(3, test.getWeeks());
423 assertEquals(4, test.getDays());
424 assertEquals(5, test.getHours());
425 assertEquals(6, test.getMinutes());
426 assertEquals(7, test.getSeconds());
427 assertEquals(8, test.getMillis());
428 }
429
430
431
432
433
434 public void testConstructor_8int__PeriodType1() throws Throwable {
435 MutablePeriod test = new MutablePeriod(1, 2, 3, 4, 5, 6, 7, 8, null);
436 assertEquals(PeriodType.standard(), test.getPeriodType());
437 assertEquals(1, test.getYears());
438 assertEquals(2, test.getMonths());
439 assertEquals(3, test.getWeeks());
440 assertEquals(4, test.getDays());
441 assertEquals(5, test.getHours());
442 assertEquals(6, test.getMinutes());
443 assertEquals(7, test.getSeconds());
444 assertEquals(8, test.getMillis());
445 }
446
447 public void testConstructor_8int__PeriodType2() throws Throwable {
448 MutablePeriod test = new MutablePeriod(0, 0, 0, 0, 5, 6, 7, 8, PeriodType.dayTime());
449 assertEquals(PeriodType.dayTime(), test.getPeriodType());
450 assertEquals(0, test.getYears());
451 assertEquals(0, test.getMonths());
452 assertEquals(0, test.getWeeks());
453 assertEquals(0, test.getDays());
454 assertEquals(5, test.getHours());
455 assertEquals(6, test.getMinutes());
456 assertEquals(7, test.getSeconds());
457 assertEquals(8, test.getMillis());
458 }
459
460 public void testConstructor_8int__PeriodType3() throws Throwable {
461 try {
462 new MutablePeriod(1, 2, 3, 4, 5, 6, 7, 8, PeriodType.dayTime());
463 fail();
464 } catch (IllegalArgumentException ex) {}
465 }
466
467
468 public void testConstructor_long_long1() throws Throwable {
469 DateTime dt1 = new DateTime(2004, 6, 9, 0, 0, 0, 0);
470 DateTime dt2 = new DateTime(2005, 7, 10, 1, 1, 1, 1);
471 MutablePeriod test = new MutablePeriod(dt1.getMillis(), dt2.getMillis());
472 assertEquals(PeriodType.standard(), test.getPeriodType());
473 assertEquals(1, test.getYears());
474 assertEquals(1, test.getMonths());
475 assertEquals(0, test.getWeeks());
476 assertEquals(1, test.getDays());
477 assertEquals(1, test.getHours());
478 assertEquals(1, test.getMinutes());
479 assertEquals(1, test.getSeconds());
480 assertEquals(1, test.getMillis());
481 }
482
483 public void testConstructor_long_long2() throws Throwable {
484 DateTime dt1 = new DateTime(2004, 6, 9, 0, 0, 0, 0);
485 DateTime dt2 = new DateTime(2005, 7, 17, 1, 1, 1, 1);
486 MutablePeriod test = new MutablePeriod(dt1.getMillis(), dt2.getMillis());
487 assertEquals(PeriodType.standard(), test.getPeriodType());
488 assertEquals(1, test.getYears());
489 assertEquals(1, test.getMonths());
490 assertEquals(1, test.getWeeks());
491 assertEquals(1, test.getDays());
492 assertEquals(1, test.getHours());
493 assertEquals(1, test.getMinutes());
494 assertEquals(1, test.getSeconds());
495 assertEquals(1, test.getMillis());
496 }
497
498
499 public void testConstructor_long_long_PeriodType1() throws Throwable {
500 DateTime dt1 = new DateTime(2004, 6, 9, 0, 0, 0, 0);
501 DateTime dt2 = new DateTime(2005, 7, 10, 1, 1, 1, 1);
502 MutablePeriod test = new MutablePeriod(dt1.getMillis(), dt2.getMillis(), (PeriodType) null);
503 assertEquals(PeriodType.standard(), test.getPeriodType());
504 assertEquals(1, test.getYears());
505 assertEquals(1, test.getMonths());
506 assertEquals(0, test.getWeeks());
507 assertEquals(1, test.getDays());
508 assertEquals(1, test.getHours());
509 assertEquals(1, test.getMinutes());
510 assertEquals(1, test.getSeconds());
511 assertEquals(1, test.getMillis());
512 }
513
514 public void testConstructor_long_long_PeriodType2() throws Throwable {
515 DateTime dt1 = new DateTime(2004, 6, 9, 0, 0, 0, 0);
516 DateTime dt2 = new DateTime(2004, 7, 10, 1, 1, 1, 1);
517 MutablePeriod test = new MutablePeriod(dt1.getMillis(), dt2.getMillis(), PeriodType.dayTime());
518 assertEquals(PeriodType.dayTime(), test.getPeriodType());
519 assertEquals(0, test.getYears());
520 assertEquals(0, test.getMonths());
521 assertEquals(0, test.getWeeks());
522 assertEquals(31, test.getDays());
523 assertEquals(1, test.getHours());
524 assertEquals(1, test.getMinutes());
525 assertEquals(1, test.getSeconds());
526 assertEquals(1, test.getMillis());
527 }
528
529 public void testConstructor_long_long_PeriodType3() throws Throwable {
530 DateTime dt1 = new DateTime(2004, 6, 9, 0, 0, 0, 0);
531 DateTime dt2 = new DateTime(2004, 6, 9, 1, 1, 1, 1);
532 MutablePeriod test = new MutablePeriod(dt1.getMillis(), dt2.getMillis(), PeriodType.standard().withMillisRemoved());
533 assertEquals(PeriodType.standard().withMillisRemoved(), test.getPeriodType());
534 assertEquals(0, test.getYears());
535 assertEquals(0, test.getMonths());
536 assertEquals(0, test.getWeeks());
537 assertEquals(0, test.getDays());
538 assertEquals(1, test.getHours());
539 assertEquals(1, test.getMinutes());
540 assertEquals(1, test.getSeconds());
541 assertEquals(0, test.getMillis());
542 }
543
544
545 public void testConstructor_long_long_Chronology1() throws Throwable {
546 DateTime dt1 = new DateTime(2004, 6, 9, 0, 0, 0, 0, CopticChronology.getInstance());
547 DateTime dt2 = new DateTime(2005, 7, 10, 1, 1, 1, 1, CopticChronology.getInstance());
548 MutablePeriod test = new MutablePeriod(dt1.getMillis(), dt2.getMillis(), CopticChronology.getInstance());
549 assertEquals(PeriodType.standard(), test.getPeriodType());
550 assertEquals(1, test.getYears());
551 assertEquals(1, test.getMonths());
552 assertEquals(0, test.getWeeks());
553 assertEquals(1, test.getDays());
554 assertEquals(1, test.getHours());
555 assertEquals(1, test.getMinutes());
556 assertEquals(1, test.getSeconds());
557 assertEquals(1, test.getMillis());
558 }
559
560 public void testConstructor_long_long_Chronology2() throws Throwable {
561 DateTime dt1 = new DateTime(2004, 6, 9, 0, 0, 0, 0);
562 DateTime dt2 = new DateTime(2005, 7, 10, 1, 1, 1, 1);
563 MutablePeriod test = new MutablePeriod(dt1.getMillis(), dt2.getMillis(), (Chronology) null);
564 assertEquals(PeriodType.standard(), test.getPeriodType());
565 assertEquals(1, test.getYears());
566 assertEquals(1, test.getMonths());
567 assertEquals(0, test.getWeeks());
568 assertEquals(1, test.getDays());
569 assertEquals(1, test.getHours());
570 assertEquals(1, test.getMinutes());
571 assertEquals(1, test.getSeconds());
572 assertEquals(1, test.getMillis());
573 }
574
575
576 public void testConstructor_long_long_PeriodType_Chronology1() throws Throwable {
577 DateTime dt1 = new DateTime(2004, 6, 9, 0, 0, 0, 0, CopticChronology.getInstance());
578 DateTime dt2 = new DateTime(2005, 7, 10, 1, 1, 1, 1, CopticChronology.getInstance());
579 MutablePeriod test = new MutablePeriod(dt1.getMillis(), dt2.getMillis(), (PeriodType) null, CopticChronology.getInstance());
580 assertEquals(PeriodType.standard(), test.getPeriodType());
581 assertEquals(1, test.getYears());
582 assertEquals(1, test.getMonths());
583 assertEquals(0, test.getWeeks());
584 assertEquals(1, test.getDays());
585 assertEquals(1, test.getHours());
586 assertEquals(1, test.getMinutes());
587 assertEquals(1, test.getSeconds());
588 assertEquals(1, test.getMillis());
589 }
590
591 public void testConstructor_long_long_PeriodType_Chronology2() throws Throwable {
592 DateTime dt1 = new DateTime(2004, 6, 9, 0, 0, 0, 0);
593 DateTime dt2 = new DateTime(2005, 7, 10, 1, 1, 1, 1);
594 MutablePeriod test = new MutablePeriod(dt1.getMillis(), dt2.getMillis(), (PeriodType) null, null);
595 assertEquals(PeriodType.standard(), test.getPeriodType());
596 assertEquals(1, test.getYears());
597 assertEquals(1, test.getMonths());
598 assertEquals(0, test.getWeeks());
599 assertEquals(1, test.getDays());
600 assertEquals(1, test.getHours());
601 assertEquals(1, test.getMinutes());
602 assertEquals(1, test.getSeconds());
603 assertEquals(1, test.getMillis());
604 }
605
606
607 public void testConstructor_RI_RI1() throws Throwable {
608 DateTime dt1 = new DateTime(2004, 6, 9, 0, 0, 0, 0);
609 DateTime dt2 = new DateTime(2005, 7, 10, 1, 1, 1, 1);
610 MutablePeriod test = new MutablePeriod(dt1, dt2);
611 assertEquals(PeriodType.standard(), test.getPeriodType());
612 assertEquals(1, test.getYears());
613 assertEquals(1, test.getMonths());
614 assertEquals(0, test.getWeeks());
615 assertEquals(1, test.getDays());
616 assertEquals(1, test.getHours());
617 assertEquals(1, test.getMinutes());
618 assertEquals(1, test.getSeconds());
619 assertEquals(1, test.getMillis());
620 }
621
622 public void testConstructor_RI_RI2() throws Throwable {
623 DateTime dt1 = new DateTime(2004, 6, 9, 0, 0, 0, 0);
624 DateTime dt2 = new DateTime(2005, 7, 17, 1, 1, 1, 1);
625 MutablePeriod test = new MutablePeriod(dt1, dt2);
626 assertEquals(PeriodType.standard(), test.getPeriodType());
627 assertEquals(1, test.getYears());
628 assertEquals(1, test.getMonths());
629 assertEquals(1, test.getWeeks());
630 assertEquals(1, test.getDays());
631 assertEquals(1, test.getHours());
632 assertEquals(1, test.getMinutes());
633 assertEquals(1, test.getSeconds());
634 assertEquals(1, test.getMillis());
635 }
636
637 public void testConstructor_RI_RI3() throws Throwable {
638 DateTime dt1 = null;
639 DateTime dt2 = new DateTime(2005, 7, 17, 1, 1, 1, 1);
640 MutablePeriod test = new MutablePeriod(dt1, dt2);
641 assertEquals(PeriodType.standard(), test.getPeriodType());
642 assertEquals(3, test.getYears());
643 assertEquals(1, test.getMonths());
644 assertEquals(1, test.getWeeks());
645 assertEquals(1, test.getDays());
646 assertEquals(0, test.getHours());
647 assertEquals(1, test.getMinutes());
648 assertEquals(1, test.getSeconds());
649 assertEquals(1, test.getMillis());
650 }
651
652 public void testConstructor_RI_RI4() throws Throwable {
653 DateTime dt1 = new DateTime(2005, 7, 17, 1, 1, 1, 1);
654 DateTime dt2 = null;
655 MutablePeriod test = new MutablePeriod(dt1, dt2);
656 assertEquals(PeriodType.standard(), test.getPeriodType());
657 assertEquals(-3, test.getYears());
658 assertEquals(-1, test.getMonths());
659 assertEquals(-1, test.getWeeks());
660 assertEquals(-1, test.getDays());
661 assertEquals(0, test.getHours());
662 assertEquals(-1, test.getMinutes());
663 assertEquals(-1, test.getSeconds());
664 assertEquals(-1, test.getMillis());
665 }
666
667 public void testConstructor_RI_RI5() throws Throwable {
668 DateTime dt1 = null;
669 DateTime dt2 = null;
670 MutablePeriod test = new MutablePeriod(dt1, dt2);
671 assertEquals(PeriodType.standard(), test.getPeriodType());
672 assertEquals(0, test.getYears());
673 assertEquals(0, test.getMonths());
674 assertEquals(0, test.getWeeks());
675 assertEquals(0, test.getDays());
676 assertEquals(0, test.getHours());
677 assertEquals(0, test.getMinutes());
678 assertEquals(0, test.getSeconds());
679 assertEquals(0, test.getMillis());
680 }
681
682
683 public void testConstructor_RI_RI_PeriodType1() throws Throwable {
684 DateTime dt1 = new DateTime(2004, 6, 9, 0, 0, 0, 0);
685 DateTime dt2 = new DateTime(2005, 7, 10, 1, 1, 1, 1);
686 MutablePeriod test = new MutablePeriod(dt1, dt2, null);
687 assertEquals(PeriodType.standard(), test.getPeriodType());
688 assertEquals(1, test.getYears());
689 assertEquals(1, test.getMonths());
690 assertEquals(0, test.getWeeks());
691 assertEquals(1, test.getDays());
692 assertEquals(1, test.getHours());
693 assertEquals(1, test.getMinutes());
694 assertEquals(1, test.getSeconds());
695 assertEquals(1, test.getMillis());
696 }
697
698 public void testConstructor_RI_RI_PeriodType2() throws Throwable {
699 DateTime dt1 = new DateTime(2004, 6, 9, 0, 0, 0, 0);
700 DateTime dt2 = new DateTime(2004, 7, 10, 1, 1, 1, 1);
701 MutablePeriod test = new MutablePeriod(dt1, dt2, PeriodType.dayTime());
702 assertEquals(PeriodType.dayTime(), test.getPeriodType());
703 assertEquals(0, test.getYears());
704 assertEquals(0, test.getMonths());
705 assertEquals(0, test.getWeeks());
706 assertEquals(31, test.getDays());
707 assertEquals(1, test.getHours());
708 assertEquals(1, test.getMinutes());
709 assertEquals(1, test.getSeconds());
710 assertEquals(1, test.getMillis());
711 }
712
713 public void testConstructor_RI_RI_PeriodType3() throws Throwable {
714 DateTime dt1 = new DateTime(2004, 6, 9, 0, 0, 0, 0);
715 DateTime dt2 = new DateTime(2004, 6, 9, 1, 1, 1, 1);
716 MutablePeriod test = new MutablePeriod(dt1, dt2, PeriodType.standard().withMillisRemoved());
717 assertEquals(PeriodType.standard().withMillisRemoved(), test.getPeriodType());
718 assertEquals(0, test.getYears());
719 assertEquals(0, test.getMonths());
720 assertEquals(0, test.getWeeks());
721 assertEquals(0, test.getDays());
722 assertEquals(1, test.getHours());
723 assertEquals(1, test.getMinutes());
724 assertEquals(1, test.getSeconds());
725 assertEquals(0, test.getMillis());
726 }
727
728 public void testConstructor_RI_RI_PeriodType4() throws Throwable {
729 DateTime dt1 = null;
730 DateTime dt2 = new DateTime(2005, 7, 17, 1, 1, 1, 1);
731 MutablePeriod test = new MutablePeriod(dt1, dt2, PeriodType.standard());
732 assertEquals(PeriodType.standard(), test.getPeriodType());
733 assertEquals(3, test.getYears());
734 assertEquals(1, test.getMonths());
735 assertEquals(1, test.getWeeks());
736 assertEquals(1, test.getDays());
737 assertEquals(0, test.getHours());
738 assertEquals(1, test.getMinutes());
739 assertEquals(1, test.getSeconds());
740 assertEquals(1, test.getMillis());
741 }
742
743 public void testConstructor_RI_RI_PeriodType5() throws Throwable {
744 DateTime dt1 = null;
745 DateTime dt2 = null;
746 MutablePeriod test = new MutablePeriod(dt1, dt2, PeriodType.standard());
747 assertEquals(PeriodType.standard(), test.getPeriodType());
748 assertEquals(0, test.getYears());
749 assertEquals(0, test.getMonths());
750 assertEquals(0, test.getWeeks());
751 assertEquals(0, test.getDays());
752 assertEquals(0, test.getHours());
753 assertEquals(0, test.getMinutes());
754 assertEquals(0, test.getSeconds());
755 assertEquals(0, test.getMillis());
756 }
757
758
759 public void testConstructor_RI_RD1() throws Throwable {
760 DateTime dt1 = new DateTime(2004, 6, 9, 0, 0, 0, 0);
761 DateTime dt2 = new DateTime(2005, 7, 10, 1, 1, 1, 1);
762 Duration dur = new Interval(dt1, dt2).toDuration();
763 MutablePeriod test = new MutablePeriod(dt1, dur);
764 assertEquals(PeriodType.standard(), test.getPeriodType());
765 assertEquals(1, test.getYears());
766 assertEquals(1, test.getMonths());
767 assertEquals(0, test.getWeeks());
768 assertEquals(1, test.getDays());
769 assertEquals(1, test.getHours());
770 assertEquals(1, test.getMinutes());
771 assertEquals(1, test.getSeconds());
772 assertEquals(1, test.getMillis());
773 }
774
775 public void testConstructor_RI_RD2() throws Throwable {
776 DateTime dt1 = new DateTime(2004, 6, 9, 0, 0, 0, 0);
777 Duration dur = null;
778 MutablePeriod test = new MutablePeriod(dt1, dur);
779 assertEquals(PeriodType.standard(), test.getPeriodType());
780 assertEquals(0, test.getYears());
781 assertEquals(0, test.getMonths());
782 assertEquals(0, test.getWeeks());
783 assertEquals(0, test.getDays());
784 assertEquals(0, test.getHours());
785 assertEquals(0, test.getMinutes());
786 assertEquals(0, test.getSeconds());
787 assertEquals(0, test.getMillis());
788 }
789
790
791 public void testConstructor_RI_RD_PeriodType1() throws Throwable {
792 DateTime dt1 = new DateTime(2004, 6, 9, 0, 0, 0, 0);
793 DateTime dt2 = new DateTime(2005, 7, 10, 1, 1, 1, 1);
794 Duration dur = new Interval(dt1, dt2).toDuration();
795 MutablePeriod test = new MutablePeriod(dt1, dur, PeriodType.yearDayTime());
796 assertEquals(PeriodType.yearDayTime(), test.getPeriodType());
797 assertEquals(1, test.getYears());
798 assertEquals(0, test.getMonths());
799 assertEquals(0, test.getWeeks());
800 assertEquals(31, test.getDays());
801 assertEquals(1, test.getHours());
802 assertEquals(1, test.getMinutes());
803 assertEquals(1, test.getSeconds());
804 assertEquals(1, test.getMillis());
805 }
806
807 public void testConstructor_RI_RD_PeriodType2() throws Throwable {
808 DateTime dt1 = new DateTime(2004, 6, 9, 0, 0, 0, 0);
809 Duration dur = null;
810 MutablePeriod test = new MutablePeriod(dt1, dur, (PeriodType) null);
811 assertEquals(PeriodType.standard(), test.getPeriodType());
812 assertEquals(0, test.getYears());
813 assertEquals(0, test.getMonths());
814 assertEquals(0, test.getWeeks());
815 assertEquals(0, test.getDays());
816 assertEquals(0, test.getHours());
817 assertEquals(0, test.getMinutes());
818 assertEquals(0, test.getSeconds());
819 assertEquals(0, test.getMillis());
820 }
821
822
823
824
825
826 public void testConstructor_Object1() throws Throwable {
827 MutablePeriod test = new MutablePeriod("P1Y2M3D");
828 assertEquals(PeriodType.standard(), test.getPeriodType());
829 assertEquals(1, test.getYears());
830 assertEquals(2, test.getMonths());
831 assertEquals(0, test.getWeeks());
832 assertEquals(3, test.getDays());
833 assertEquals(0, test.getHours());
834 assertEquals(0, test.getMinutes());
835 assertEquals(0, test.getSeconds());
836 assertEquals(0, test.getMillis());
837 }
838
839 public void testConstructor_Object2() throws Throwable {
840 MutablePeriod test = new MutablePeriod((Object) null);
841 assertEquals(PeriodType.standard(), test.getPeriodType());
842 assertEquals(0, test.getYears());
843 assertEquals(0, test.getMonths());
844 assertEquals(0, test.getWeeks());
845 assertEquals(0, test.getDays());
846 assertEquals(0, test.getHours());
847 assertEquals(0, test.getMinutes());
848 assertEquals(0, test.getSeconds());
849 assertEquals(0, test.getMillis());
850 }
851
852 public void testConstructor_Object3() throws Throwable {
853 MutablePeriod test = new MutablePeriod(new Period(0, 0, 0, 0, 1, 2, 3, 4, PeriodType.dayTime()));
854 assertEquals(PeriodType.dayTime(), test.getPeriodType());
855 assertEquals(0, test.getYears());
856 assertEquals(0, test.getMonths());
857 assertEquals(0, test.getWeeks());
858 assertEquals(0, test.getDays());
859 assertEquals(1, test.getHours());
860 assertEquals(2, test.getMinutes());
861 assertEquals(3, test.getSeconds());
862 assertEquals(4, test.getMillis());
863 }
864
865 public void testConstructor_Object4() throws Throwable {
866 Period base = new Period(1, 1, 0, 1, 1, 1, 1, 1, PeriodType.standard());
867 MutablePeriod test = new MutablePeriod(base);
868 assertEquals(PeriodType.standard(), test.getPeriodType());
869 assertEquals(1, test.getYears());
870 assertEquals(1, test.getMonths());
871 assertEquals(0, test.getWeeks());
872 assertEquals(1, test.getDays());
873 assertEquals(1, test.getHours());
874 assertEquals(1, test.getMinutes());
875 assertEquals(1, test.getSeconds());
876 assertEquals(1, test.getMillis());
877 }
878
879
880
881
882
883 public void testConstructor_Object_PeriodType1() throws Throwable {
884 MutablePeriod test = new MutablePeriod("P1Y2M3D", PeriodType.yearMonthDayTime());
885 assertEquals(PeriodType.yearMonthDayTime(), test.getPeriodType());
886 assertEquals(1, test.getYears());
887 assertEquals(2, test.getMonths());
888 assertEquals(0, test.getWeeks());
889 assertEquals(3, test.getDays());
890 assertEquals(0, test.getHours());
891 assertEquals(0, test.getMinutes());
892 assertEquals(0, test.getSeconds());
893 assertEquals(0, test.getMillis());
894 }
895
896 public void testConstructor_Object_PeriodType2() throws Throwable {
897 MutablePeriod test = new MutablePeriod((Object) null, PeriodType.yearMonthDayTime());
898 assertEquals(PeriodType.yearMonthDayTime(), test.getPeriodType());
899 assertEquals(0, test.getYears());
900 assertEquals(0, test.getMonths());
901 assertEquals(0, test.getWeeks());
902 assertEquals(0, test.getDays());
903 assertEquals(0, test.getHours());
904 assertEquals(0, test.getMinutes());
905 assertEquals(0, test.getSeconds());
906 assertEquals(0, test.getMillis());
907 }
908
909 public void testConstructor_Object_PeriodType3() throws Throwable {
910 MutablePeriod test = new MutablePeriod(new Period(0, 0, 0, 0, 1, 2, 3, 4, PeriodType.dayTime()), PeriodType.yearMonthDayTime());
911 assertEquals(PeriodType.yearMonthDayTime(), test.getPeriodType());
912 assertEquals(0, test.getYears());
913 assertEquals(0, test.getMonths());
914 assertEquals(0, test.getWeeks());
915 assertEquals(0, test.getDays());
916 assertEquals(1, test.getHours());
917 assertEquals(2, test.getMinutes());
918 assertEquals(3, test.getSeconds());
919 assertEquals(4, test.getMillis());
920 }
921
922 public void testConstructor_Object_PeriodType4() throws Throwable {
923 MutablePeriod test = new MutablePeriod(new Period(0, 0, 0, 0, 1, 2, 3, 4, PeriodType.dayTime()), (PeriodType) null);
924 assertEquals(PeriodType.dayTime(), test.getPeriodType());
925 assertEquals(0, test.getYears());
926 assertEquals(0, test.getMonths());
927 assertEquals(0, test.getWeeks());
928 assertEquals(0, test.getDays());
929 assertEquals(1, test.getHours());
930 assertEquals(2, test.getMinutes());
931 assertEquals(3, test.getSeconds());
932 assertEquals(4, test.getMillis());
933 }
934
935
936 public void testConstructor_Object_Chronology1() throws Throwable {
937 long length =
938 (4L + (3L * 7L) + (2L * 30L) + 365L) * DateTimeConstants.MILLIS_PER_DAY +
939 5L * DateTimeConstants.MILLIS_PER_HOUR +
940 6L * DateTimeConstants.MILLIS_PER_MINUTE +
941 7L * DateTimeConstants.MILLIS_PER_SECOND + 8L;
942 MutablePeriod test = new MutablePeriod(new Duration(length), ISOChronology.getInstance());
943 assertEquals(PeriodType.standard(), test.getPeriodType());
944 assertEquals(0, test.getYears());
945 assertEquals(0, test.getMonths());
946 assertEquals(0, test.getWeeks());
947 assertEquals(0, test.getDays());
948 assertEquals((450 * 24) + 5, test.getHours());
949 assertEquals(6, test.getMinutes());
950 assertEquals(7, test.getSeconds());
951 assertEquals(8, test.getMillis());
952 }
953
954 public void testConstructor_Object_Chronology2() throws Throwable {
955 long length =
956 (4L + (3L * 7L) + (2L * 30L) + 365L) * DateTimeConstants.MILLIS_PER_DAY +
957 5L * DateTimeConstants.MILLIS_PER_HOUR +
958 6L * DateTimeConstants.MILLIS_PER_MINUTE +
959 7L * DateTimeConstants.MILLIS_PER_SECOND + 8L;
960 MutablePeriod test = new MutablePeriod(new Duration(length), ISOChronology.getInstanceUTC());
961 assertEquals(PeriodType.standard(), test.getPeriodType());
962 assertEquals(0, test.getYears());
963 assertEquals(0, test.getMonths());
964 assertEquals(64, test.getWeeks());
965 assertEquals(2, test.getDays());
966 assertEquals(5, test.getHours());
967 assertEquals(6, test.getMinutes());
968 assertEquals(7, test.getSeconds());
969 assertEquals(8, test.getMillis());
970 }
971
972 }