package net.time4j.history;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.JUnit4;
import static org.hamcrest.CoreMatchers.is;
import static org.junit.Assert.assertThat;
@RunWith(JUnit4.class)
public class RangeTest {
@Test(expected=IllegalArgumentException.class)
public void byzantineBeforeCreationOfWorld() {
HistoricDate.of(HistoricEra.BYZANTINE, 0, 8, 31);
}
@Test
public void byzantineAtOrAfterCreationOfWorld() {
NewYearStrategy byzantine = ChronoHistory.PROLEPTIC_BYZANTINE.getNewYearStrategy();
assertThat(
HistoricDate.of(HistoricEra.BYZANTINE, 1, 8, 31).getYearOfEra(),
is(1));
assertThat(
HistoricDate.of(HistoricEra.BYZANTINE, 1, 8, 31).getYearOfEra(byzantine),
is(1));
assertThat(
HistoricDate.of(HistoricEra.BYZANTINE, 0, 9, 1).getYearOfEra(),
is(0));
assertThat(
HistoricDate.of(HistoricEra.BYZANTINE, 0, 9, 1).getYearOfEra(byzantine),
is(1));
assertThat(
HistoricDate.of(HistoricEra.BYZANTINE, 1, 9, 1).getYearOfEra(),
is(1));
assertThat(
HistoricDate.of(HistoricEra.BYZANTINE, 1, 9, 1).getYearOfEra(byzantine),
is(2));
}
@Test(expected=IllegalArgumentException.class)
public void aucBeforeFoundationOfRome() {
HistoricDate.of(HistoricEra.AB_URBE_CONDITA, 0, 12, 31);
}
@Test
public void aucAtFoundationOfRome() {
assertThat(
HistoricDate.of(HistoricEra.AB_URBE_CONDITA, 1, 1, 1).getYearOfEra(NewYearStrategy.DEFAULT),
is(1));
}
@Test(expected=IllegalArgumentException.class)
public void hispanicBeforeEpoch() {
HistoricDate.of(HistoricEra.HISPANIC, 0, 12, 31);
}
@Test
public void hispanicAtOrAfterEpoch() {
int ad = 900 - 38;
assertThat(
HistoricDate.of(HistoricEra.HISPANIC, 1, 1, 1).getYearOfEra(NewYearStrategy.DEFAULT),
is(1));
assertThat(
HistoricDate.of(HistoricEra.HISPANIC, 1, 1, 1).getYearOfEra(NewYearRule.CHRISTMAS_STYLE.until(ad)),
is(1)); // effective rule: BEGIN_OF_JANUARY
assertThat(
HistoricDate.of(HistoricEra.HISPANIC, 1, 1, 1).getYearOfEra(NewYearRule.CALCULUS_PISANUS.until(ad)),
is(1)); // effective rule: BEGIN_OF_JANUARY
assertThat(
HistoricDate.of(HistoricEra.HISPANIC, 898, 12, 31).getYearOfEra(NewYearRule.CHRISTMAS_STYLE.until(ad)),
is(899)); // effective rule: CHRISTMAS_STYLE
assertThat(
HistoricDate.of(HistoricEra.HISPANIC, 566 + 38, 1, 1).getYearOfEra(NewYearRule.CALCULUS_PISANUS.until(ad)),
is(604)); // effective rule: BEGIN_OF_JANUARY
assertThat(
HistoricDate.of(HistoricEra.HISPANIC, 567 + 38, 1, 1).getYearOfEra(NewYearRule.CALCULUS_PISANUS.until(ad)),
is(603)); // effective rule: CALCULUS_PISANUS
assertThat(
HistoricDate.of(HistoricEra.HISPANIC, 898, 1, 1).getYearOfEra(NewYearRule.CALCULUS_PISANUS.until(ad)),
is(896)); // effective rule: CALCULUS_PISANUS
assertThat(
HistoricDate.of(HistoricEra.HISPANIC, 899, 12, 31).getYearOfEra(NewYearRule.CHRISTMAS_STYLE.until(ad)),
is(899)); // effective rule: BEGIN_OF_JANUARY
}
}