package net.time4j.calendar;
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 CopticOperatorTest {
@Test
public void plusYears() {
assertThat(
CopticCalendar.of(1735, CopticMonth.NASIE, 6).plus(3, CopticCalendar.Unit.YEARS),
is(CopticCalendar.of(1738, CopticMonth.NASIE, 5)));
assertThat(
CopticCalendar.of(1738, 1, 1).isLeapYear(),
is(false));
}
@Test
public void plusMonths() {
assertThat(
CopticCalendar.of(1732, CopticMonth.BASHANS, 30).plus(17, CopticCalendar.Unit.MONTHS),
is(CopticCalendar.of(1733, CopticMonth.NASIE, 5)));
}
@Test
public void plusWeeks() {
assertThat(
CopticCalendar.of(1736, CopticMonth.MESRA, 30).plus(2, CopticCalendar.Unit.WEEKS),
is(CopticCalendar.of(1737, CopticMonth.TOUT, 9)));
}
@Test
public void plusDays() {
assertThat(
CopticCalendar.of(1736, CopticMonth.MESRA, 30).plus(30, CopticCalendar.Unit.DAYS),
is(CopticCalendar.of(1737, CopticMonth.TOUT, 25)));
}
@Test
public void nextMonth() {
assertThat(
CopticCalendar.of(1736, 13, 5).with(CopticCalendar.MONTH_OF_YEAR.incremented()),
is(CopticCalendar.of(1737, 1, 5)));
}
@Test
public void previousMonth() {
assertThat(
CopticCalendar.of(1737, 1, 5).with(CopticCalendar.MONTH_OF_YEAR.decremented()),
is(CopticCalendar.of(1736, 13, 5)));
}
@Test
public void nextYear() {
assertThat(
CopticCalendar.of(1735, 13, 6).with(CopticCalendar.YEAR_OF_ERA.incremented()),
is(CopticCalendar.of(1736, 13, 5)));
}
@Test
public void previousYear() {
assertThat(
CopticCalendar.of(1736, 3, 30).with(CopticCalendar.YEAR_OF_ERA.decremented()),
is(CopticCalendar.of(1735, 3, 30)));
}
@Test
public void nextDay() {
assertThat(
CopticCalendar.of(1735, CopticMonth.NASIE, 6).with(CopticCalendar.DAY_OF_YEAR.incremented()),
is(CopticCalendar.of(1736, CopticMonth.TOUT, 1)));
assertThat(
CopticCalendar.of(1735, CopticMonth.NASIE, 6).with(CopticCalendar.DAY_OF_MONTH.incremented()),
is(CopticCalendar.of(1736, CopticMonth.TOUT, 1)));
assertThat(
CopticCalendar.of(1735, CopticMonth.NASIE, 6).with(CopticCalendar.DAY_OF_WEEK.incremented()),
is(CopticCalendar.of(1736, CopticMonth.TOUT, 1)));
}
@Test
public void previousDay() {
assertThat(
CopticCalendar.of(1736, CopticMonth.TOUT, 1).with(CopticCalendar.DAY_OF_YEAR.decremented()),
is(CopticCalendar.of(1735, CopticMonth.NASIE, 6)));
assertThat(
CopticCalendar.of(1736, CopticMonth.TOUT, 1).with(CopticCalendar.DAY_OF_MONTH.decremented()),
is(CopticCalendar.of(1735, CopticMonth.NASIE, 6)));
assertThat(
CopticCalendar.of(1736, CopticMonth.TOUT, 1).with(CopticCalendar.DAY_OF_WEEK.decremented()),
is(CopticCalendar.of(1735, CopticMonth.NASIE, 6)));
}
@Test
public void maxDay() {
assertThat(
CopticCalendar.of(1736, CopticMonth.BARAMHAT, 21).with(CopticCalendar.DAY_OF_MONTH.maximized()),
is(CopticCalendar.of(1736, CopticMonth.BARAMHAT, 30)));
assertThat(
CopticCalendar.of(1735, CopticMonth.NASIE, 2).with(CopticCalendar.DAY_OF_MONTH.maximized()),
is(CopticCalendar.of(1735, CopticMonth.NASIE, 6)));
assertThat(
CopticCalendar.of(1736, CopticMonth.NASIE, 2).with(CopticCalendar.DAY_OF_MONTH.maximized()),
is(CopticCalendar.of(1736, CopticMonth.NASIE, 5)));
}
@Test
public void minDay() {
assertThat(
CopticCalendar.of(1736, CopticMonth.BARAMHAT, 21).with(CopticCalendar.DAY_OF_MONTH.minimized()),
is(CopticCalendar.of(1736, CopticMonth.BARAMHAT, 1)));
}
@Test
public void yearAtFloor() {
assertThat(
CopticCalendar.of(1736, CopticMonth.BARAMOUDA, 2).with(CopticCalendar.YEAR_OF_ERA.atFloor()),
is(CopticCalendar.of(1736, CopticMonth.TOUT, 1)));
}
@Test
public void yearAtCeiling() {
assertThat(
CopticCalendar.of(1735, CopticMonth.BARAMOUDA, 2).with(CopticCalendar.YEAR_OF_ERA.atCeiling()),
is(CopticCalendar.of(1735, CopticMonth.NASIE, 6)));
assertThat(
CopticCalendar.of(1736, CopticMonth.BARAMOUDA, 2).with(CopticCalendar.YEAR_OF_ERA.atCeiling()),
is(CopticCalendar.of(1736, CopticMonth.NASIE, 5)));
}
@Test
public void monthAtFloor() {
assertThat(
CopticCalendar.of(1736, CopticMonth.BARAMOUDA, 2).with(CopticCalendar.MONTH_OF_YEAR.atFloor()),
is(CopticCalendar.of(1736, CopticMonth.BARAMOUDA, 1)));
}
@Test
public void monthAtCeiling() {
assertThat(
CopticCalendar.of(1736, CopticMonth.BARAMOUDA, 2).with(CopticCalendar.MONTH_OF_YEAR.atCeiling()),
is(CopticCalendar.of(1736, CopticMonth.BARAMOUDA, 30)));
assertThat(
CopticCalendar.of(1735, CopticMonth.NASIE, 2).with(CopticCalendar.YEAR_OF_ERA.atCeiling()),
is(CopticCalendar.of(1735, CopticMonth.NASIE, 6)));
assertThat(
CopticCalendar.of(1736, CopticMonth.NASIE, 2).with(CopticCalendar.YEAR_OF_ERA.atCeiling()),
is(CopticCalendar.of(1736, CopticMonth.NASIE, 5)));
}
}