2 ******************************************************************************
3 * Copyright (C) 2007-2010, International Business Machines Corporation and *
4 * others. All Rights Reserved. *
5 ******************************************************************************
8 // Copyright 2006 Google Inc. All Rights Reserved.
10 package com.ibm.icu.dev.test.duration;
12 import com.ibm.icu.dev.test.TestFmwk;
13 import com.ibm.icu.impl.duration.Period;
14 import com.ibm.icu.impl.duration.TimeUnit;
16 public class PeriodTest extends TestFmwk {
21 public static void main(String[] args) {
22 new PeriodTest().run(args);
25 public void testIsSet() {
26 Period p = Period.at(0, TimeUnit.YEAR);
27 assertTrue(null, p.isSet());
28 assertTrue(null, p.isSet(TimeUnit.YEAR));
29 assertFalse(null, p.isSet(TimeUnit.MONTH));
30 assertEquals(null, 0f, p.getCount(TimeUnit.YEAR), .1f);
31 p = p.omit(TimeUnit.YEAR);
32 assertFalse(null, p.isSet(TimeUnit.YEAR));
35 public void testMoreLessThan() {
36 Period p = Period.moreThan(1, TimeUnit.YEAR);
37 assertTrue(null, p.isMoreThan());
38 assertFalse(null, p.isLessThan());
40 assertFalse(null, p.isMoreThan());
41 assertFalse(null, p.isLessThan());
43 assertFalse(null, p.isMoreThan());
44 assertTrue(null, p.isLessThan());
46 assertTrue(null, p.isMoreThan());
47 assertFalse(null, p.isLessThan());
49 p = Period.lessThan(1, TimeUnit.YEAR);
50 assertFalse(null, p.isMoreThan());
51 assertTrue(null, p.isLessThan());
53 p = Period.at(1, TimeUnit.YEAR);
54 assertFalse(null, p.isMoreThan());
55 assertFalse(null, p.isLessThan());
57 assertEquals(null, 1f, p.getCount(TimeUnit.YEAR), .1f);
60 public void testFuturePast() {
61 Period p = Period.at(1, TimeUnit.YEAR).inFuture();
62 assertTrue(null, p.isInFuture());
64 assertFalse(null, p.isInFuture());
66 assertTrue(null, p.isInFuture());
67 p = p.inFuture(false);
68 assertFalse(null, p.isInFuture());
71 public void testAnd() {
72 Period p = Period.at(1, TimeUnit.YEAR).and(3, TimeUnit.MONTH)
74 assertTrue(null, p.isSet(TimeUnit.YEAR));
75 assertTrue(null, p.isSet(TimeUnit.MONTH));
76 assertEquals(null, 3f, p.getCount(TimeUnit.MONTH), .1f);
77 p = p.and(2, TimeUnit.MONTH);
78 assertEquals(null, 2f, p.getCount(TimeUnit.MONTH), .1f);
81 public void testInvalidCount() {
83 Period.at(-1, TimeUnit.YEAR);
85 } catch (IllegalArgumentException e) {
89 Period.moreThan(-1, TimeUnit.YEAR);
91 } catch (IllegalArgumentException e) {
95 Period.lessThan(-1, TimeUnit.YEAR);
97 } catch (IllegalArgumentException e) {
100 Period p = Period.at(1, TimeUnit.YEAR);
102 p = p.and(-1, TimeUnit.MONTH);
104 } catch (IllegalArgumentException e) {