Skip to content

Commit

Permalink
more kshaia tuning
Browse files Browse the repository at this point in the history
see issue #851
  • Loading branch information
MenoData committed Jul 12, 2020
1 parent 9df9298 commit 402990a
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 1 deletion.
Expand Up @@ -1631,7 +1631,11 @@ public boolean isValid(
}
}

return true;
if (context.variant.isLunisolar() && !context.variant.isOld()) {
return !context.variant.getCalendarSystem().isExpunged(context.kyYear, value);
} else {
return true;
}
}

@Override
Expand Down
Expand Up @@ -81,7 +81,9 @@ public void minmaxAmantaAshadha() {
assertThat(min.getYear(), is(1200));
assertThat(max.getYear(), is(5999));
assertThat(min.getMonth(), is(HinduMonth.of(IndianMonth.ASHADHA)));
assertThat(min.getMonth(), is(min.getMinimum(HinduCalendar.MONTH_OF_YEAR)));
assertThat(max.getMonth(), is(HinduMonth.ofLunisolar(3)));
assertThat(max.getMonth(), is(max.getMaximum(HinduCalendar.MONTH_OF_YEAR)));
assertThat(min.getDayOfMonth(), is(HinduDay.valueOf(1)));
assertThat(min.getDayOfMonth(), is(min.getMinimum(HinduCalendar.DAY_OF_MONTH)));
assertThat(max.getDayOfMonth(), is(HinduDay.valueOf(30)));
Expand Down Expand Up @@ -112,7 +114,9 @@ public void minmaxAmantaKartika() {
assertThat(min.getYear(), is(1200));
assertThat(max.getYear(), is(5999));
assertThat(min.getMonth(), is(HinduMonth.of(IndianMonth.KARTIKA)));
assertThat(min.getMonth(), is(min.getMinimum(HinduCalendar.MONTH_OF_YEAR)));
assertThat(max.getMonth(), is(HinduMonth.ofLunisolar(7)));
assertThat(max.getMonth(), is(max.getMaximum(HinduCalendar.MONTH_OF_YEAR)));
assertThat(min.getDayOfMonth(), is(HinduDay.valueOf(2)));
assertThat(min.getDayOfMonth(), is(min.getMinimum(HinduCalendar.DAY_OF_MONTH)));
assertThat(max.getDayOfMonth(), is(HinduDay.valueOf(30)));
Expand Down Expand Up @@ -303,6 +307,20 @@ public void kshaia2() {
is(expected));
}

@Test
public void kshaia3() {
HinduCalendar cal = PlainDate.of(1983, 1, 20).transform(HinduCalendar.family(), HinduRule.AMANTA.variant());
assertThat(cal.getMonth(), is(HinduMonth.ofLunisolar(10)));
assertThat(cal.isValid(HinduCalendar.MONTH_OF_YEAR, HinduMonth.ofLunisolar(11)), is(false));

try {
cal.with(HinduCalendar.MONTH_OF_YEAR, HinduMonth.ofLunisolar(11));
fail("Setting a kshaia month should fail but succeeded.");
} catch (IllegalArgumentException iae) {
assertThat(iae.getMessage(), is("Invalid month: MAGHA"));
}
}

@Test
public void amantaMonthSequence1982() { // CC: page 341, with two leap months and a lost month
HinduCalendar cal = PlainDate.of(1982, 3, 14).transform(HinduCalendar.family(), HinduRule.AMANTA.variant());
Expand Down

0 comments on commit 402990a

Please sign in to comment.