package net.time4j; import net.time4j.engine.EpochDays; 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 EpochDaysTest { @Test public void transformUTC() { assertThat( EpochDays.UNIX.transform(-2 * 365, EpochDays.UTC), is(0L)); } @Test public void getUTC() { assertThat( PlainDate.of(1970, 1).get(EpochDays.UTC), is(-2 * 365L)); assertThat( PlainDate.of(1972, 1, 1).get(EpochDays.UTC), is(0L)); } @Test public void transformUNIX() { assertThat( EpochDays.UNIX.transform(0, EpochDays.UNIX), is(0L)); } @Test public void getUNIX() { assertThat( PlainDate.of(1970, 1).get(EpochDays.UNIX), is(0L)); } @Test public void transformMJD() { assertThat( EpochDays.UNIX.transform( 0L + (1970 - 1859) * 365 + 27 + 45, EpochDays.MODIFIED_JULIAN_DATE), is(0L)); } @Test public void getMJD() { assertThat( PlainDate.of(1970, 1).get(EpochDays.MODIFIED_JULIAN_DATE), is(0L + (1970 - 1859) * 365 + 27 + 45)); assertThat( PlainDate.of(1858, 11, 17).get(EpochDays.MODIFIED_JULIAN_DATE), is(0L)); } @Test public void transformANSI() { assertThat( EpochDays.UNIX.transform( 1L + (1970 - 1601) * 365 + 3 * 24 + 17, EpochDays.ANSI), is(0L)); } @Test public void getANSI() { assertThat( PlainDate.of(1970, 1).get(EpochDays.ANSI), is(1L + (1970 - 1601) * 365 + 3 * 24 + 17)); assertThat( PlainDate.of(1601, 1, 1).get(EpochDays.ANSI), is(1L)); } @Test public void transformEXCEL() { assertThat( EpochDays.UNIX.transform( 1L + (1970 - 1900) * 365 + 17, EpochDays.EXCEL), is(0L)); } @Test public void getEXCEL() { assertThat( PlainDate.of(1970, 1).get(EpochDays.EXCEL), is(1L + (1970 - 1900) * 365 + 17)); assertThat( PlainDate.of(1900, 1, 1).get(EpochDays.EXCEL), is(1L)); } @Test public void transformRD() { assertThat( EpochDays.UNIX.transform( 1L + (1970 - 1) * 365 + 19 * 24 + 17 + 4, EpochDays.RATA_DIE), is(0L)); } @Test public void getRD() { assertThat( PlainDate.of(1970, 1).get(EpochDays.RATA_DIE), is(1L + (1970 - 1) * 365 + 19 * 24 + 17 + 4)); assertThat( PlainDate.of(1, 1, 1).get(EpochDays.RATA_DIE), is(1L)); } @Test public void transformLDN() { assertThat( EpochDays.UNIX.transform( 1L + (1970 - 1583) * 365 + 3 * 24 + 22 + 78, EpochDays.LILIAN_DAY_NUMBER), is(0L)); } @Test public void getLDN() { long daysLDN = 1L + (1970 - 1583) * 365 + 3 * 24 + 22 + 78; assertThat( PlainDate.of(1970, 1).get(EpochDays.LILIAN_DAY_NUMBER), is(daysLDN)); assertThat( PlainDate.of(1582, 10, 15).get(EpochDays.LILIAN_DAY_NUMBER), is(1L)); assertThat( PlainDate.of(1582, 10, 15) .until(PlainDate.of(1970, 1), CalendarUnit.DAYS), is(daysLDN - 1)); } @Test public void transformJDN() { assertThat( EpochDays.UNIX.transform( 0L + (1970 + 4712) * 365 + 66 * 24 + 20 + 16 + 38, EpochDays.JULIAN_DAY_NUMBER), is(0L)); } @Test public void getJDN() { long daysJDN = 0L + (1970 + 4712) * 365 + 66 * 24 + 20 + 16 + 38; assertThat( PlainDate.of(1970, 1).get(EpochDays.JULIAN_DAY_NUMBER), is(daysJDN)); assertThat( PlainDate.of(-4713, 11, 24).get(EpochDays.JULIAN_DAY_NUMBER), is(0L)); assertThat( PlainDate.of(-4713, 11, 24) .until(PlainDate.of(1970, 1), CalendarUnit.DAYS), is(daysJDN)); } }