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 HijriOperatorTest {
@Test
public void nextMonth1() {
assertThat(
HijriCalendar.ofUmalqura(1436, HijriMonth.JUMADA_I, 29).nextMonth(),
is(HijriCalendar.ofUmalqura(1436, HijriMonth.JUMADA_II, 29)));
assertThat(
HijriCalendar.ofUmalqura(1436, HijriMonth.JUMADA_I, 29).with(HijriCalendar.MONTH_OF_YEAR.incremented()),
is(HijriCalendar.ofUmalqura(1436, HijriMonth.JUMADA_II, 29)));
}
@Test
public void nextMonth2() {
assertThat(
HijriCalendar.ofUmalqura(1436, HijriMonth.JUMADA_II, 30).nextMonth(),
is(HijriCalendar.ofUmalqura(1436, HijriMonth.RAJAB, 29)));
assertThat(
HijriCalendar.ofUmalqura(1436, HijriMonth.JUMADA_II, 30).with(HijriCalendar.MONTH_OF_YEAR.incremented()),
is(HijriCalendar.ofUmalqura(1436, HijriMonth.RAJAB, 29)));
}
@Test
public void nextMonth3() {
assertThat(
HijriCalendar.ofUmalqura(1436, HijriMonth.DHU_AL_HIJJAH, 12).nextMonth(),
is(HijriCalendar.ofUmalqura(1437, HijriMonth.MUHARRAM, 12)));
assertThat(
HijriCalendar.ofUmalqura(1436, HijriMonth.DHU_AL_HIJJAH, 12).with(HijriCalendar.MONTH_OF_YEAR.incremented()),
is(HijriCalendar.ofUmalqura(1437, HijriMonth.MUHARRAM, 12)));
}
@Test
public void previousMonth1() {
assertThat(
HijriCalendar.ofUmalqura(1436, HijriMonth.JUMADA_II, 29).with(HijriCalendar.MONTH_OF_YEAR.decremented()),
is(HijriCalendar.ofUmalqura(1436, HijriMonth.JUMADA_I, 29)));
}
@Test
public void previousMonth2() {
assertThat(
HijriCalendar.ofUmalqura(1436, HijriMonth.SHABAN, 30).with(HijriCalendar.MONTH_OF_YEAR.decremented()),
is(HijriCalendar.ofUmalqura(1436, HijriMonth.RAJAB, 29)));
}
@Test
public void previousMonth3() {
assertThat(
HijriCalendar.ofUmalqura(1437, HijriMonth.MUHARRAM, 12).with(HijriCalendar.MONTH_OF_YEAR.decremented()),
is(HijriCalendar.ofUmalqura(1436, HijriMonth.DHU_AL_HIJJAH, 12)));
}
@Test
public void nextYear() {
assertThat(
HijriCalendar.ofUmalqura(1436, HijriMonth.SAFAR, 25).nextYear(),
is(HijriCalendar.ofUmalqura(1437, HijriMonth.SAFAR, 25)));
assertThat(
HijriCalendar.ofUmalqura(1436, HijriMonth.SAFAR, 25).with(HijriCalendar.YEAR_OF_ERA.incremented()),
is(HijriCalendar.ofUmalqura(1437, HijriMonth.SAFAR, 25)));
}
@Test
public void previousYear() {
assertThat(
HijriCalendar.ofUmalqura(1437, HijriMonth.MUHARRAM, 12).with(HijriCalendar.YEAR_OF_ERA.decremented()),
is(HijriCalendar.ofUmalqura(1436, HijriMonth.MUHARRAM, 12)));
}
@Test
public void nextDay() {
assertThat(
HijriCalendar.ofUmalqura(1436, HijriMonth.DHU_AL_HIJJAH, 30).nextDay(),
is(HijriCalendar.ofUmalqura(1437, HijriMonth.MUHARRAM, 1)));
assertThat(
HijriCalendar.ofUmalqura(1436, HijriMonth.DHU_AL_HIJJAH, 30).with(HijriCalendar.DAY_OF_MONTH.incremented()),
is(HijriCalendar.ofUmalqura(1437, HijriMonth.MUHARRAM, 1)));
assertThat(
HijriCalendar.ofUmalqura(1436, HijriMonth.DHU_AL_HIJJAH, 30).with(HijriCalendar.DAY_OF_YEAR.incremented()),
is(HijriCalendar.ofUmalqura(1437, HijriMonth.MUHARRAM, 1)));
assertThat(
HijriCalendar.ofUmalqura(1436, HijriMonth.DHU_AL_HIJJAH, 30).with(HijriCalendar.DAY_OF_WEEK.incremented()),
is(HijriCalendar.ofUmalqura(1437, HijriMonth.MUHARRAM, 1)));
}
@Test
public void previousDay() {
assertThat(
HijriCalendar.ofUmalqura(1437, HijriMonth.MUHARRAM, 1).with(HijriCalendar.DAY_OF_MONTH.decremented()),
is(HijriCalendar.ofUmalqura(1436, HijriMonth.DHU_AL_HIJJAH, 30)));
assertThat(
HijriCalendar.ofUmalqura(1437, HijriMonth.MUHARRAM, 1).with(HijriCalendar.DAY_OF_YEAR.decremented()),
is(HijriCalendar.ofUmalqura(1436, HijriMonth.DHU_AL_HIJJAH, 30)));
assertThat(
HijriCalendar.ofUmalqura(1437, HijriMonth.MUHARRAM, 1).with(HijriCalendar.DAY_OF_WEEK.decremented()),
is(HijriCalendar.ofUmalqura(1436, HijriMonth.DHU_AL_HIJJAH, 30)));
}
@Test
public void maxDay() {
assertThat(
HijriCalendar.ofUmalqura(1436, HijriMonth.DHU_AL_HIJJAH, 2).with(HijriCalendar.DAY_OF_MONTH.maximized()),
is(HijriCalendar.ofUmalqura(1436, HijriMonth.DHU_AL_HIJJAH, 30)));
}
@Test
public void minDay() {
assertThat(
HijriCalendar.ofUmalqura(1436, HijriMonth.DHU_AL_HIJJAH, 2).with(HijriCalendar.DAY_OF_MONTH.minimized()),
is(HijriCalendar.ofUmalqura(1436, HijriMonth.DHU_AL_HIJJAH, 1)));
}
@Test
public void yearAtFloor() {
assertThat(
HijriCalendar.ofUmalqura(1436, HijriMonth.RABI_I, 2).with(HijriCalendar.YEAR_OF_ERA.atFloor()),
is(HijriCalendar.ofUmalqura(1436, HijriMonth.MUHARRAM, 1)));
}
@Test
public void yearAtCeiling() {
assertThat(
HijriCalendar.ofUmalqura(1436, HijriMonth.RABI_I, 2).with(HijriCalendar.YEAR_OF_ERA.atCeiling()),
is(HijriCalendar.ofUmalqura(1436, HijriMonth.DHU_AL_HIJJAH, 30)));
}
@Test
public void monthAtFloor() {
assertThat(
HijriCalendar.ofUmalqura(1436, HijriMonth.RABI_I, 2).with(HijriCalendar.MONTH_OF_YEAR.atFloor()),
is(HijriCalendar.ofUmalqura(1436, HijriMonth.RABI_I, 1)));
}
@Test
public void monthAtCeiling() {
assertThat(
HijriCalendar.ofUmalqura(1436, HijriMonth.RABI_I, 2).with(HijriCalendar.MONTH_OF_YEAR.atCeiling()),
is(HijriCalendar.ofUmalqura(1436, HijriMonth.RABI_I, 29)));
}
}