public void testJointCalendars() {
System.out.println("Testing joint calendars...");
Calendar c1 = new Target(),
c2 = new UnitedKingdom(),
c3 = new UnitedStates(UnitedStates.Market.NYSE),
c4 = new Japan();
Calendar c12h = new JointCalendar(c1,c2,JointCalendarRule.JoinHolidays),
c12b = new JointCalendar(c1,c2,JointCalendarRule.JoinBusinessDays),
c123h = new JointCalendar(c1,c2,c3,JointCalendarRule.JoinHolidays),
c123b = new JointCalendar(c1,c2,c3,JointCalendarRule.JoinBusinessDays),
c1234h = new JointCalendar(c1,c2,c3,c4,JointCalendarRule.JoinHolidays),
c1234b = new JointCalendar(c1,c2,c3,c4,JointCalendarRule.JoinBusinessDays);
// test one year, starting today
Date firstDate = Date.todaysDate(),
endDate = firstDate.add(new Period(1, TimeUnit.Years));
for (Date d = firstDate; d.lt(endDate); d.inc()) {
boolean b1 = c1.isBusinessDay(d),
b2 = c2.isBusinessDay(d),
b3 = c3.isBusinessDay(d),
b4 = c4.isBusinessDay(d);
if ((b1 && b2) != c12h.isBusinessDay(d))
Assert.fail("At date " + d + ":\n"