@DataProvider(name = "plusTime")
  Object[][] data_plusTime() {

    return new Object[][] {
        // normal
        { dateTime(2008, 6, 30, 23, 30, 59, 0, OFFSET_0100, ZONE_0100), 0,
            dateTime(2008, 6, 30, 23, 30, 59, 0, OFFSET_0100, ZONE_0100) },
        { dateTime(2008, 6, 30, 23, 30, 59, 0, OFFSET_0100, ZONE_0100), 1,
            dateTime(2008, 7, 1, 0, 30, 59, 0, OFFSET_0100, ZONE_0100) },
        { dateTime(2008, 6, 30, 23, 30, 59, 0, OFFSET_0100, ZONE_0100), -1,
            dateTime(2008, 6, 30, 22, 30, 59, 0, OFFSET_0100, ZONE_0100) },
        // gap
        { dateTime(2008, 3, 30, 1, 30, 0, 0, OFFSET_0100, ZONE_PARIS), 1,
            dateTime(2008, 3, 30, 3, 30, 0, 0, OFFSET_0200, ZONE_PARIS) },
        { dateTime(2008, 3, 30, 3, 30, 0, 0, OFFSET_0200, ZONE_PARIS), -1,
            dateTime(2008, 3, 30, 1, 30, 0, 0, OFFSET_0100, ZONE_PARIS) },
        // overlap
        { dateTime(2008, 10, 26, 1, 30, 0, 0, OFFSET_0200, ZONE_PARIS), 1,
            dateTime(2008, 10, 26, 2, 30, 0, 0, OFFSET_0200, ZONE_PARIS) },
        { dateTime(2008, 10, 26, 1, 30, 0, 0, OFFSET_0200, ZONE_PARIS), 2,
            dateTime(2008, 10, 26, 2, 30, 0, 0, OFFSET_0100, ZONE_PARIS) },
        { dateTime(2008, 10, 26, 1, 30, 0, 0, OFFSET_0200, ZONE_PARIS), 3,
            dateTime(2008, 10, 26, 3, 30, 0, 0, OFFSET_0100, ZONE_PARIS) },
        { dateTime(2008, 10, 26, 2, 30, 0, 0, OFFSET_0200, ZONE_PARIS), 1,
            dateTime(2008, 10, 26, 2, 30, 0, 0, OFFSET_0100, ZONE_PARIS) },
        { dateTime(2008, 10, 26, 2, 30, 0, 0, OFFSET_0200, ZONE_PARIS), 2,
            dateTime(2008, 10, 26, 3, 30, 0, 0, OFFSET_0100, ZONE_PARIS) }, };
  }

  // -----------------------------------------------------------------------
  // plus(adjuster)
  // -----------------------------------------------------------------------
  @Test(groups = { "tck" }