コード例 #1
0
 @Test(dataProvider = "calendars")
 public void test_badWithAdjusterChrono(Chronology chrono) {
   LocalDate refDate = LocalDate.of(1900, 1, 1);
   ChronoLocalDateTime cdt = chrono.date(refDate).atTime(LocalTime.NOON);
   for (Chronology[] clist : data_of_calendars()) {
     Chronology chrono2 = clist[0];
     ChronoLocalDateTime<?> cdt2 = chrono2.date(refDate).atTime(LocalTime.NOON);
     TemporalAdjuster adjuster = new FixedAdjuster(cdt2);
     if (chrono != chrono2) {
       try {
         cdt.with(adjuster);
         Assert.fail(
             "WithAdjuster should have thrown a ClassCastException, "
                 + "required: "
                 + cdt
                 + ", supplied: "
                 + cdt2);
       } catch (ClassCastException cce) {
         // Expected exception; not an error
       }
     } else {
       // Same chronology,
       ChronoLocalDateTime<?> result = cdt.with(adjuster);
       assertEquals(result, cdt2, "WithAdjuster failed to replace date");
     }
   }
 }
コード例 #2
0
 @Test(dataProvider = "calendars")
 public void test_badPlusPeriodUnitChrono(Chronology chrono) {
   LocalDate refDate = LocalDate.of(1900, 1, 1);
   ChronoLocalDateTime cdt = chrono.date(refDate).atTime(LocalTime.NOON);
   for (Chronology[] clist : data_of_calendars()) {
     Chronology chrono2 = clist[0];
     ChronoLocalDateTime<?> cdt2 = chrono2.date(refDate).atTime(LocalTime.NOON);
     TemporalUnit adjuster = new FixedPeriodUnit(cdt2);
     if (chrono != chrono2) {
       try {
         cdt.plus(1, adjuster);
         Assert.fail(
             "PeriodUnit.doAdd plus should have thrown a ClassCastException"
                 + cdt
                 + ", can not be cast to "
                 + cdt2);
       } catch (ClassCastException cce) {
         // Expected exception; not an error
       }
     } else {
       // Same chronology,
       ChronoLocalDateTime<?> result = cdt.plus(1, adjuster);
       assertEquals(result, cdt2, "WithAdjuster failed to replace date");
     }
   }
 }
コード例 #3
0
 @Test(dataProvider = "calendars")
 public void test_badDateTimeFieldChrono(Chronology chrono) {
   LocalDate refDate = LocalDate.of(1900, 1, 1);
   ChronoLocalDateTime cdt = chrono.date(refDate).atTime(LocalTime.NOON);
   for (Chronology[] clist : data_of_calendars()) {
     Chronology chrono2 = clist[0];
     ChronoLocalDateTime<?> cdt2 = chrono2.date(refDate).atTime(LocalTime.NOON);
     TemporalField adjuster = new FixedDateTimeField(cdt2);
     if (chrono != chrono2) {
       try {
         cdt.with(adjuster, 1);
         Assert.fail(
             "DateTimeField doSet should have thrown a ClassCastException"
                 + cdt.getClass()
                 + ", can not be cast to "
                 + cdt2.getClass());
       } catch (ClassCastException cce) {
         // Expected exception; not an error
       }
     } else {
       // Same chronology,
       ChronoLocalDateTime<?> result = cdt.with(adjuster, 1);
       assertEquals(result, cdt2, "DateTimeField doSet failed to replace date");
     }
   }
 }
コード例 #4
0
  // -----------------------------------------------------------------------
  // isBefore, isAfter, isEqual
  // -----------------------------------------------------------------------
  @Test(dataProvider = "calendars")
  public void test_datetime_comparisons(Chronology chrono) {
    List<ChronoLocalDateTime<?>> dates = new ArrayList<>();

    ChronoLocalDateTime<?> date = chrono.date(LocalDate.of(1900, 1, 1)).atTime(LocalTime.MIN);

    // Insert dates in order, no duplicates
    dates.add(date.minus(100, ChronoUnit.YEARS));
    dates.add(date.minus(1, ChronoUnit.YEARS));
    dates.add(date.minus(1, ChronoUnit.MONTHS));
    dates.add(date.minus(1, ChronoUnit.WEEKS));
    dates.add(date.minus(1, ChronoUnit.DAYS));
    dates.add(date.minus(1, ChronoUnit.HOURS));
    dates.add(date.minus(1, ChronoUnit.MINUTES));
    dates.add(date.minus(1, ChronoUnit.SECONDS));
    dates.add(date.minus(1, ChronoUnit.NANOS));
    dates.add(date);
    dates.add(date.plus(1, ChronoUnit.NANOS));
    dates.add(date.plus(1, ChronoUnit.SECONDS));
    dates.add(date.plus(1, ChronoUnit.MINUTES));
    dates.add(date.plus(1, ChronoUnit.HOURS));
    dates.add(date.plus(1, ChronoUnit.DAYS));
    dates.add(date.plus(1, ChronoUnit.WEEKS));
    dates.add(date.plus(1, ChronoUnit.MONTHS));
    dates.add(date.plus(1, ChronoUnit.YEARS));
    dates.add(date.plus(100, ChronoUnit.YEARS));

    // Check these dates against the corresponding dates for every calendar
    for (Chronology[] clist : data_of_calendars()) {
      List<ChronoLocalDateTime<?>> otherDates = new ArrayList<>();
      Chronology chrono2 = clist[0];
      for (ChronoLocalDateTime<?> d : dates) {
        otherDates.add(chrono2.date(d).atTime(d.toLocalTime()));
      }

      // Now compare  the sequence of original dates with the sequence of converted dates
      for (int i = 0; i < dates.size(); i++) {
        ChronoLocalDateTime<?> a = dates.get(i);
        for (int j = 0; j < otherDates.size(); j++) {
          ChronoLocalDateTime<?> b = otherDates.get(j);
          int cmp = ChronoLocalDateTime.DATE_TIME_COMPARATOR.compare(a, b);
          if (i < j) {
            assertTrue(cmp < 0, a + " compare " + b);
            assertEquals(a.isBefore(b), true, a + " isBefore " + b);
            assertEquals(a.isAfter(b), false, a + " isAfter " + b);
            assertEquals(a.isEqual(b), false, a + " isEqual " + b);
          } else if (i > j) {
            assertTrue(cmp > 0, a + " compare " + b);
            assertEquals(a.isBefore(b), false, a + " isBefore " + b);
            assertEquals(a.isAfter(b), true, a + " isAfter " + b);
            assertEquals(a.isEqual(b), false, a + " isEqual " + b);
          } else {
            assertTrue(cmp == 0, a + " compare " + b);
            assertEquals(a.isBefore(b), false, a + " isBefore " + b);
            assertEquals(a.isAfter(b), false, a + " isAfter " + b);
            assertEquals(a.isEqual(b), true, a + " isEqual " + b);
          }
        }
      }
    }
  }