示例#1
0
 public void test_weekOfMonth_getValue_sun7() {
   // July 2011 starts on a Friday
   // Fri/Sat 1st/2nd are week 0
   DateTimeRule rule = WeekRules.of(SUNDAY, 7).weekOfMonth();
   for (int i = 1; i <= 31; i++) {
     int w = MathUtils.floorDiv(i - 3, 7) + 1; // 3rd is start of week 1
     assertEquals(rule.getValue(LocalDate.of(2011, 7, i)), rule.field(w));
   }
 }
示例#2
0
 @Test(dataProvider = "allRules")
 public void test_weekOfMonth_getValue_crossCheckCalendar(DayOfWeek dow, int minimalDays) {
   DateTimeRule rule = WeekRules.of(dow, minimalDays).weekOfMonth();
   GregorianCalendar gcal = new GregorianCalendar();
   gcal.setFirstDayOfWeek(dow == SUNDAY ? 1 : dow.getValue() + 1);
   gcal.setMinimalDaysInFirstWeek(minimalDays);
   gcal.set(2011, Calendar.JANUARY, 1);
   LocalDate date = LocalDate.of(2011, 1, 1);
   for (int i = 1; i <= 365; i++) {
     assertEquals(rule.getValue(date).getValue(), gcal.get(Calendar.WEEK_OF_MONTH));
     gcal.add(Calendar.DAY_OF_MONTH, 1);
     date = date.plusDays(1);
   }
 }
示例#3
0
  public void test_dayOfWeek_getValue_sun1() {
    // July 2011 starts on a Friday
    DateTimeRule rule = WeekRules.of(SUNDAY, 1).dayOfWeek();
    for (int i = 1; i <= 31; i++) {
      int stdDOW = (i + 4 - 1) % 7 + 1;
      DayOfWeek stdObj = DayOfWeek.of(stdDOW);
      int relDOW = (i + 5 - 1) % 7 + 1;
      DateTimeField relField = rule.field(relDOW);
      assertEquals(rule.getValue(LocalDate.of(2011, 7, i)), relField);
      assertEquals(rule.getValue(stdObj), relField);
      //            assertEquals(DayOfWeek.from(relField), stdObj);  // TODO: engine change needed
    }

    //        assertEquals(rule.field(-7), rule.derive(DAY_OF_WEEK.field(-8)));  // 2prev Mon
    //
    //        assertEquals(rule.field(-6), rule.derive(DAY_OF_WEEK.field(0)));  // prev Sun
    //        assertEquals(rule.field(-5), rule.derive(DAY_OF_WEEK.field(-6)));  // prev Mon
    //        assertEquals(rule.field(-4), rule.derive(DAY_OF_WEEK.field(-5)));  // prev Tue
    //        assertEquals(rule.field(-3), rule.derive(DAY_OF_WEEK.field(-4)));  // prev Wed
    //        assertEquals(rule.field(-2), rule.derive(DAY_OF_WEEK.field(-3)));  // prev Thu
    //        assertEquals(rule.field(-1), rule.derive(DAY_OF_WEEK.field(-2)));  // prev Fri
    //        assertEquals(rule.field(0), rule.derive(DAY_OF_WEEK.field(-1)));  // prev Sat

    // TODO: these tests used to work (normalizer)
    //        assertEquals(rule.field(1), rule.derive(DAY_OF_WEEK.field(7)));  // Sun
    //        assertEquals(rule.field(2), rule.derive(DAY_OF_WEEK.field(1)));  // Mon
    //        assertEquals(rule.field(3), rule.derive(DAY_OF_WEEK.field(2)));  // Tue
    //        assertEquals(rule.field(4), rule.derive(DAY_OF_WEEK.field(3)));  // Wed
    //        assertEquals(rule.field(5), rule.derive(DAY_OF_WEEK.field(4)));  // Thu
    //        assertEquals(rule.field(6), rule.derive(DAY_OF_WEEK.field(5)));  // Fri
    //        assertEquals(rule.field(7), rule.derive(DAY_OF_WEEK.field(6)));  // Sat
    //        assertEquals(null, rule.derive(DAY_OF_WEEK.field(0)));
    //        assertEquals(null, rule.derive(DAY_OF_WEEK.field(8)));

    //        assertEquals(rule.field(8), rule.derive(DAY_OF_WEEK.field(14)));  // next Sun
    //        assertEquals(rule.field(9), rule.derive(DAY_OF_WEEK.field(8)));  // next Mon
    //        assertEquals(rule.field(10), rule.derive(DAY_OF_WEEK.field(9)));  // next Tue
    //        assertEquals(rule.field(11), rule.derive(DAY_OF_WEEK.field(10)));  // next Wed
    //        assertEquals(rule.field(12), rule.derive(DAY_OF_WEEK.field(11)));  // next Thu
    //        assertEquals(rule.field(13), rule.derive(DAY_OF_WEEK.field(12)));  // next Fri
    //        assertEquals(rule.field(14), rule.derive(DAY_OF_WEEK.field(13)));  // next Sat
    //
    //        assertEquals(rule.field(15), rule.derive(DAY_OF_WEEK.field(21)));  // 2next Sun
  }
 // -----------------------------------------------------------------------
 // Basics
 // -----------------------------------------------------------------------
 public void test_basics() throws Exception {
   DateTimeRule rule = ISODateTimeRule.YEAR;
   assertEquals(rule.getType(), DateTimeField.class);
   assertEquals(rule.getName(), "Year");
   assertEquals(rule.getValueRange(), DateTimeRuleRange.of(Year.MIN_YEAR, Year.MAX_YEAR));
   assertEquals(rule.getPeriodUnit(), ISOPeriodUnit.YEARS);
   assertEquals(rule.getPeriodRange(), null);
 }
示例#5
0
  // -----------------------------------------------------------------------
  // weekOfMonth()
  // -----------------------------------------------------------------------
  public void test_weekOfMonth_sun1() {
    DateTimeRule rule = WeekRules.of(SUNDAY, 1).weekOfMonth();
    assertEquals(rule.toString(), "WeekOfMonth-WeekRules[SUNDAY,1]");

    assertEquals(rule.getBaseRule(), rule);

    assertEquals(rule.convertToPeriod(-1), -1);
    assertEquals(rule.convertToPeriod(0), 0);
    assertEquals(rule.convertToPeriod(1), 1);
    assertEquals(rule.convertToPeriod(2), 2);
    assertEquals(rule.convertToPeriod(5), 5);
    assertEquals(rule.convertToPeriod(6), 6);

    assertEquals(rule.convertFromPeriod(-1), -1);
    assertEquals(rule.convertFromPeriod(0), 0);
    assertEquals(rule.convertFromPeriod(1), 1);
    assertEquals(rule.convertFromPeriod(2), 2);
    assertEquals(rule.convertFromPeriod(5), 5);
    assertEquals(rule.convertFromPeriod(6), 6);
  }
示例#6
0
  // -----------------------------------------------------------------------
  // dayOfWeek()
  // -----------------------------------------------------------------------
  public void test_dayOfWeek_sun1() {
    DateTimeRule rule = WeekRules.of(SUNDAY, 1).dayOfWeek();
    assertEquals(rule.toString(), "DayOfWeek-WeekRules[SUNDAY,1]");

    assertEquals(rule.getBaseRule(), rule);

    assertEquals(rule.convertToPeriod(1), 0); // Sun
    assertEquals(rule.convertToPeriod(2), 1); // Mon
    assertEquals(rule.convertToPeriod(3), 2); // Tue
    assertEquals(rule.convertToPeriod(4), 3); // Wed
    assertEquals(rule.convertToPeriod(5), 4); // Thu
    assertEquals(rule.convertToPeriod(6), 5); // Fri
    assertEquals(rule.convertToPeriod(7), 6); // Sat
    assertEquals(rule.convertToPeriod(8), 7);
    assertEquals(rule.convertToPeriod(0), -1);

    assertEquals(rule.convertFromPeriod(0), 1); // Sun
    assertEquals(rule.convertFromPeriod(6), 7); // Sat
    assertEquals(rule.convertFromPeriod(-1), 0);
    assertEquals(rule.convertFromPeriod(7), 8);
  }