| /* |
| ****************************************************************************** |
| * Copyright (C) 2007-2010, International Business Machines Corporation and * |
| * others. All Rights Reserved. * |
| ****************************************************************************** |
| */ |
| |
| // Copyright 2006 Google Inc. All Rights Reserved. |
| |
| package com.ibm.icu.dev.test.duration; |
| |
| import com.ibm.icu.dev.test.TestFmwk; |
| import com.ibm.icu.impl.duration.Period; |
| import com.ibm.icu.impl.duration.TimeUnit; |
| |
| public class PeriodTest extends TestFmwk { |
| |
| /** |
| * Invoke the tests. |
| */ |
| public static void main(String[] args) { |
| new PeriodTest().run(args); |
| } |
| |
| public void testIsSet() { |
| Period p = Period.at(0, TimeUnit.YEAR); |
| assertTrue(null, p.isSet()); |
| assertTrue(null, p.isSet(TimeUnit.YEAR)); |
| assertFalse(null, p.isSet(TimeUnit.MONTH)); |
| assertEquals(null, 0f, p.getCount(TimeUnit.YEAR), .1f); |
| p = p.omit(TimeUnit.YEAR); |
| assertFalse(null, p.isSet(TimeUnit.YEAR)); |
| } |
| |
| public void testMoreLessThan() { |
| Period p = Period.moreThan(1, TimeUnit.YEAR); |
| assertTrue(null, p.isMoreThan()); |
| assertFalse(null, p.isLessThan()); |
| p = p.at(); |
| assertFalse(null, p.isMoreThan()); |
| assertFalse(null, p.isLessThan()); |
| p = p.lessThan(); |
| assertFalse(null, p.isMoreThan()); |
| assertTrue(null, p.isLessThan()); |
| p = p.moreThan(); |
| assertTrue(null, p.isMoreThan()); |
| assertFalse(null, p.isLessThan()); |
| |
| p = Period.lessThan(1, TimeUnit.YEAR); |
| assertFalse(null, p.isMoreThan()); |
| assertTrue(null, p.isLessThan()); |
| |
| p = Period.at(1, TimeUnit.YEAR); |
| assertFalse(null, p.isMoreThan()); |
| assertFalse(null, p.isLessThan()); |
| |
| assertEquals(null, 1f, p.getCount(TimeUnit.YEAR), .1f); |
| } |
| |
| public void testFuturePast() { |
| Period p = Period.at(1, TimeUnit.YEAR).inFuture(); |
| assertTrue(null, p.isInFuture()); |
| p = p.inPast(); |
| assertFalse(null, p.isInFuture()); |
| p = p.inFuture(true); |
| assertTrue(null, p.isInFuture()); |
| p = p.inFuture(false); |
| assertFalse(null, p.isInFuture()); |
| } |
| |
| public void testAnd() { |
| Period p = Period.at(1, TimeUnit.YEAR).and(3, TimeUnit.MONTH) |
| .inFuture(); |
| assertTrue(null, p.isSet(TimeUnit.YEAR)); |
| assertTrue(null, p.isSet(TimeUnit.MONTH)); |
| assertEquals(null, 3f, p.getCount(TimeUnit.MONTH), .1f); |
| p = p.and(2, TimeUnit.MONTH); |
| assertEquals(null, 2f, p.getCount(TimeUnit.MONTH), .1f); |
| } |
| |
| public void testInvalidCount() { |
| try { |
| Period.at(-1, TimeUnit.YEAR); |
| fail("at -1"); |
| } catch (IllegalArgumentException e) { |
| // passed |
| } |
| try { |
| Period.moreThan(-1, TimeUnit.YEAR); |
| fail("moreThan -1"); |
| } catch (IllegalArgumentException e) { |
| // passed |
| } |
| try { |
| Period.lessThan(-1, TimeUnit.YEAR); |
| fail("lessThan -1"); |
| } catch (IllegalArgumentException e) { |
| // passed |
| } |
| Period p = Period.at(1, TimeUnit.YEAR); |
| try { |
| p = p.and(-1, TimeUnit.MONTH); |
| fail("and -1"); |
| } catch (IllegalArgumentException e) { |
| // passed |
| } |
| } |
| } |