blob: b450aec8f22b293213ca902a01ff900ef2b57f96 [file] [log] [blame]
/*
******************************************************************************
* 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
}
}
}