package net.time4j;
import net.time4j.engine.EpochDays;
import java.util.Arrays;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import org.junit.runners.Parameterized.Parameters;
import static org.hamcrest.CoreMatchers.is;
import static org.junit.Assert.assertThat;
@RunWith(Parameterized.class)
public class GregorianTransformationTest {
@Parameters(name= "{index}: unix-days({0}-{1}-{2})={3}")
public static Iterable<Object[]> data() {
return Arrays.asList(
new Object[][] {
{1970, 1, 1, 0}, {1970, 1, 2, 1}, {1970, 1, 31, 30},
{1970, 2, 1, 31}, {1970, 2, 28, 58}, {1970, 3, 1, 59},
{1972, 2, 1, 31 + 2 * 365}, {1972, 2, 28, 58 + 2 * 365},
{1972, 2, 29, 59 + 2 * 365}, {1972, 3, 1, 60 + 2 * 365},
{1972, 4, 1, 91 + 2 * 365}, {1972, 5, 1, 121 + 2 * 365},
{1972, 6, 1, 152 + 2 * 365}, {1972, 7, 1, 182 + 2 * 365},
{1972, 8, 1, 213 + 2 * 365}, {1972, 9, 1, 244 + 2 * 365},
{1972, 10, 1, 274 + 2 * 365}, {1972, 11, 1, 305 + 2 * 365},
{1972, 12, 1, 335 + 2 * 365}, {1973, 1, 1, 3 * 365 + 1},
{-4713, 11, 24, -2440588}, {2000, 3, 1, 30 * 365 + 31 + 29 + 7},
{1899, 12, 31, -25568},
{1900, 1, 1, -25567},
{1900, 1, 2, -25566},
{1900, 1, 3, -25565},
{1900, 1, 4, -25564},
{1900, 1, 5, -25563},
{1900, 1, 6, -25562},
{1900, 1, 7, -25561},
{1900, 1, 8, -25560},
{1900, 1, 9, -25559},
{1900, 1, 10, -25558},
{1900, 1, 11, -25557},
{1900, 1, 12, -25556},
{1900, 1, 13, -25555},
{1900, 1, 14, -25554},
{1900, 1, 15, -25553},
{1900, 1, 16, -25552},
{1900, 1, 17, -25551},
{1900, 1, 18, -25550},
{1900, 1, 19, -25549},
{1900, 1, 20, -25548},
{1900, 1, 21, -25547},
{1900, 1, 22, -25546},
{1900, 1, 23, -25545},
{1900, 1, 24, -25544},
{1900, 1, 25, -25543},
{1900, 1, 26, -25542},
{1900, 1, 27, -25541},
{1900, 1, 28, -25540},
{1900, 1, 29, -25539},
{1900, 1, 30, -25538},
{1900, 1, 31, -25537},
{1900, 2, 1, -25536},
{1900, 2, 2, -25535},
{1900, 2, 3, -25534},
{1900, 2, 4, -25533},
{1900, 2, 5, -25532},
{1900, 2, 6, -25531},
{1900, 2, 7, -25530},
{1900, 2, 8, -25529},
{1900, 2, 9, -25528},
{1900, 2, 10, -25527},
{1900, 2, 11, -25526},
{1900, 2, 12, -25525},
{1900, 2, 13, -25524},
{1900, 2, 14, -25523},
{1900, 2, 15, -25522},
{1900, 2, 16, -25521},
{1900, 2, 17, -25520},
{1900, 2, 18, -25519},
{1900, 2, 19, -25518},
{1900, 2, 20, -25517},
{1900, 2, 21, -25516},
{1900, 2, 22, -25515},
{1900, 2, 23, -25514},
{1900, 2, 24, -25513},
{1900, 2, 25, -25512},
{1900, 2, 26, -25511},
{1900, 2, 27, -25510},
{1900, 2, 28, -25509},
{1900, 3, 1, -25508},
{1900, 3, 2, -25507},
{1900, 3, 3, -25506},
{1900, 3, 4, -25505},
{1900, 3, 5, -25504},
{1900, 3, 6, -25503},
{1900, 3, 7, -25502},
{1900, 3, 8, -25501},
{1900, 3, 9, -25500},
{1900, 3, 10, -25499},
{1900, 3, 11, -25498},
{1900, 3, 12, -25497},
{1900, 3, 13, -25496},
{1900, 3, 14, -25495},
{1900, 3, 15, -25494},
{1900, 3, 16, -25493},
{1900, 3, 17, -25492},
{1900, 3, 18, -25491},
{1900, 3, 19, -25490},
{1900, 3, 20, -25489},
{1900, 3, 21, -25488},
{1900, 3, 22, -25487},
{1900, 3, 23, -25486},
{1900, 3, 24, -25485},
{1900, 3, 25, -25484},
{1900, 3, 26, -25483},
{1900, 3, 27, -25482},
{1900, 3, 28, -25481},
{1900, 3, 29, -25480},
{1900, 3, 30, -25479},
{1900, 3, 31, -25478},
{1900, 4, 1, -25477},
{1900, 4, 2, -25476},
{1900, 4, 3, -25475},
{1900, 4, 4, -25474},
{1900, 4, 5, -25473},
{1900, 4, 6, -25472},
{1900, 4, 7, -25471},
{1900, 4, 8, -25470},
{1900, 4, 9, -25469},
{1900, 4, 10, -25468},
{1900, 4, 11, -25467},
{1900, 4, 12, -25466},
{1900, 4, 13, -25465},
{1900, 4, 14, -25464},
{1900, 4, 15, -25463},
{1900, 4, 16, -25462},
{1900, 4, 17, -25461},
{1900, 4, 18, -25460},
{1900, 4, 19, -25459},
{1900, 4, 20, -25458},
{1900, 4, 21, -25457},
{1900, 4, 22, -25456},
{1900, 4, 23, -25455},
{1900, 4, 24, -25454},
{1900, 4, 25, -25453},
{1900, 4, 26, -25452},
{1900, 4, 27, -25451},
{1900, 4, 28, -25450},
{1900, 4, 29, -25449},
{1900, 4, 30, -25448},
{1900, 5, 1, -25447},
{1900, 5, 2, -25446},
{1900, 5, 3, -25445},
{1900, 5, 4, -25444},
{1900, 5, 5, -25443},
{1900, 5, 6, -25442},
{1900, 5, 7, -25441},
{1900, 5, 8, -25440},
{1900, 5, 9, -25439},
{1900, 5, 10, -25438},
{1900, 5, 11, -25437},
{1900, 5, 12, -25436},
{1900, 5, 13, -25435},
{1900, 5, 14, -25434},
{1900, 5, 15, -25433},
{1900, 5, 16, -25432},
{1900, 5, 17, -25431},
{1900, 5, 18, -25430},
{1900, 5, 19, -25429},
{1900, 5, 20, -25428},
{1900, 5, 21, -25427},
{1900, 5, 22, -25426},
{1900, 5, 23, -25425},
{1900, 5, 24, -25424},
{1900, 5, 25, -25423},
{1900, 5, 26, -25422},
{1900, 5, 27, -25421},
{1900, 5, 28, -25420},
{1900, 5, 29, -25419},
{1900, 5, 30, -25418},
{1900, 5, 31, -25417},
{1900, 6, 1, -25416},
{1900, 6, 2, -25415},
{1900, 6, 3, -25414},
{1900, 6, 4, -25413},
{1900, 6, 5, -25412},
{1900, 6, 6, -25411},
{1900, 6, 7, -25410},
{1900, 6, 8, -25409},
{1900, 6, 9, -25408},
{1900, 6, 10, -25407},
{1900, 6, 11, -25406},
{1900, 6, 12, -25405},
{1900, 6, 13, -25404},
{1900, 6, 14, -25403},
{1900, 6, 15, -25402},
{1900, 6, 16, -25401},
{1900, 6, 17, -25400},
{1900, 6, 18, -25399},
{1900, 6, 19, -25398},
{1900, 6, 20, -25397},
{1900, 6, 21, -25396},
{1900, 6, 22, -25395},
{1900, 6, 23, -25394},
{1900, 6, 24, -25393},
{1900, 6, 25, -25392},
{1900, 6, 26, -25391},
{1900, 6, 27, -25390},
{1900, 6, 28, -25389},
{1900, 6, 29, -25388},
{1900, 6, 30, -25387},
{1900, 7, 1, -25386},
{1900, 7, 2, -25385},
{1900, 7, 3, -25384},
{1900, 7, 4, -25383},
{1900, 7, 5, -25382},
{1900, 7, 6, -25381},
{1900, 7, 7, -25380},
{1900, 7, 8, -25379},
{1900, 7, 9, -25378},
{1900, 7, 10, -25377},
{1900, 7, 11, -25376},
{1900, 7, 12, -25375},
{1900, 7, 13, -25374},
{1900, 7, 14, -25373},
{1900, 7, 15, -25372},
{1900, 7, 16, -25371},
{1900, 7, 17, -25370},
{1900, 7, 18, -25369},
{1900, 7, 19, -25368},
{1900, 7, 20, -25367},
{1900, 7, 21, -25366},
{1900, 7, 22, -25365},
{1900, 7, 23, -25364},
{1900, 7, 24, -25363},
{1900, 7, 25, -25362},
{1900, 7, 26, -25361},
{1900, 7, 27, -25360},
{1900, 7, 28, -25359},
{1900, 7, 29, -25358},
{1900, 7, 30, -25357},
{1900, 7, 31, -25356},
{1900, 8, 1, -25355},
{1900, 8, 2, -25354},
{1900, 8, 3, -25353},
{1900, 8, 4, -25352},
{1900, 8, 5, -25351},
{1900, 8, 6, -25350},
{1900, 8, 7, -25349},
{1900, 8, 8, -25348},
{1900, 8, 9, -25347},
{1900, 8, 10, -25346},
{1900, 8, 11, -25345},
{1900, 8, 12, -25344},
{1900, 8, 13, -25343},
{1900, 8, 14, -25342},
{1900, 8, 15, -25341},
{1900, 8, 16, -25340},
{1900, 8, 17, -25339},
{1900, 8, 18, -25338},
{1900, 8, 19, -25337},
{1900, 8, 20, -25336},
{1900, 8, 21, -25335},
{1900, 8, 22, -25334},
{1900, 8, 23, -25333},
{1900, 8, 24, -25332},
{1900, 8, 25, -25331},
{1900, 8, 26, -25330},
{1900, 8, 27, -25329},
{1900, 8, 28, -25328},
{1900, 8, 29, -25327},
{1900, 8, 30, -25326},
{1900, 8, 31, -25325},
{1900, 9, 1, -25324},
{1900, 9, 2, -25323},
{1900, 9, 3, -25322},
{1900, 9, 4, -25321},
{1900, 9, 5, -25320},
{1900, 9, 6, -25319},
{1900, 9, 7, -25318},
{1900, 9, 8, -25317},
{1900, 9, 9, -25316},
{1900, 9, 10, -25315},
{1900, 9, 11, -25314},
{1900, 9, 12, -25313},
{1900, 9, 13, -25312},
{1900, 9, 14, -25311},
{1900, 9, 15, -25310},
{1900, 9, 16, -25309},
{1900, 9, 17, -25308},
{1900, 9, 18, -25307},
{1900, 9, 19, -25306},
{1900, 9, 20, -25305},
{1900, 9, 21, -25304},
{1900, 9, 22, -25303},
{1900, 9, 23, -25302},
{1900, 9, 24, -25301},
{1900, 9, 25, -25300},
{1900, 9, 26, -25299},
{1900, 9, 27, -25298},
{1900, 9, 28, -25297},
{1900, 9, 29, -25296},
{1900, 9, 30, -25295},
{1900, 10, 1, -25294},
{1900, 10, 2, -25293},
{1900, 10, 3, -25292},
{1900, 10, 4, -25291},
{1900, 10, 5, -25290},
{1900, 10, 6, -25289},
{1900, 10, 7, -25288},
{1900, 10, 8, -25287},
{1900, 10, 9, -25286},
{1900, 10, 10, -25285},
{1900, 10, 11, -25284},
{1900, 10, 12, -25283},
{1900, 10, 13, -25282},
{1900, 10, 14, -25281},
{1900, 10, 15, -25280},
{1900, 10, 16, -25279},
{1900, 10, 17, -25278},
{1900, 10, 18, -25277},
{1900, 10, 19, -25276},
{1900, 10, 20, -25275},
{1900, 10, 21, -25274},
{1900, 10, 22, -25273},
{1900, 10, 23, -25272},
{1900, 10, 24, -25271},
{1900, 10, 25, -25270},
{1900, 10, 26, -25269},
{1900, 10, 27, -25268},
{1900, 10, 28, -25267},
{1900, 10, 29, -25266},
{1900, 10, 30, -25265},
{1900, 10, 31, -25264},
{1900, 11, 1, -25263},
{1900, 11, 2, -25262},
{1900, 11, 3, -25261},
{1900, 11, 4, -25260},
{1900, 11, 5, -25259},
{1900, 11, 6, -25258},
{1900, 11, 7, -25257},
{1900, 11, 8, -25256},
{1900, 11, 9, -25255},
{1900, 11, 10, -25254},
{1900, 11, 11, -25253},
{1900, 11, 12, -25252},
{1900, 11, 13, -25251},
{1900, 11, 14, -25250},
{1900, 11, 15, -25249},
{1900, 11, 16, -25248},
{1900, 11, 17, -25247},
{1900, 11, 18, -25246},
{1900, 11, 19, -25245},
{1900, 11, 20, -25244},
{1900, 11, 21, -25243},
{1900, 11, 22, -25242},
{1900, 11, 23, -25241},
{1900, 11, 24, -25240},
{1900, 11, 25, -25239},
{1900, 11, 26, -25238},
{1900, 11, 27, -25237},
{1900, 11, 28, -25236},
{1900, 11, 29, -25235},
{1900, 11, 30, -25234},
{1900, 12, 1, -25233},
{1900, 12, 2, -25232},
{1900, 12, 3, -25231},
{1900, 12, 4, -25230},
{1900, 12, 5, -25229},
{1900, 12, 6, -25228},
{1900, 12, 7, -25227},
{1900, 12, 8, -25226},
{1900, 12, 9, -25225},
{1900, 12, 10, -25224},
{1900, 12, 11, -25223},
{1900, 12, 12, -25222},
{1900, 12, 13, -25221},
{1900, 12, 14, -25220},
{1900, 12, 15, -25219},
{1900, 12, 16, -25218},
{1900, 12, 17, -25217},
{1900, 12, 18, -25216},
{1900, 12, 19, -25215},
{1900, 12, 20, -25214},
{1900, 12, 21, -25213},
{1900, 12, 22, -25212},
{1900, 12, 23, -25211},
{1900, 12, 24, -25210},
{1900, 12, 25, -25209},
{1900, 12, 26, -25208},
{1900, 12, 27, -25207},
{1900, 12, 28, -25206},
{1900, 12, 29, -25205},
{1900, 12, 30, -25204},
{1900, 12, 31, -25203},
{1901, 1, 1, -25202}
}
);
}
private static final PlainDate ANY_DATE = PlainDate.of(0, EpochDays.UTC);
private int year;
private int month;
private int dom;
private long epoch;
public GregorianTransformationTest(
int year,
int month,
int dom,
long epoch
) {
super();
this.year = year;
this.month = month;
this.dom = dom;
this.epoch = epoch;
}
@Test
public void getEpochDays() {
assertThat(
PlainDate.of(this.year, this.month, this.dom).get(EpochDays.UNIX),
is(this.epoch));
}
@Test
public void withEpochDays() {
assertThat(
ANY_DATE.with(EpochDays.UNIX, this.epoch).get(EpochDays.UNIX),
is(this.epoch));
}
}