package net.time4j.range;
import net.time4j.ClockUnit;
import net.time4j.Moment;
import net.time4j.PlainTimestamp;
import java.text.ParseException;
import java.util.concurrent.TimeUnit;
import net.time4j.SI;
import net.time4j.format.expert.Iso8601Format;
import net.time4j.format.expert.IsoDateStyle;
import net.time4j.format.expert.IsoDecimalStyle;
import net.time4j.tz.OffsetSign;
import net.time4j.tz.ZonalOffset;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.JUnit4;
import static org.hamcrest.CoreMatchers.is;
import static org.junit.Assert.assertThat;
@RunWith(JUnit4.class)
public class MomentIntervalFormatTest {
@Test
public void parseAbbreviatedWithoutDate() throws ParseException {
Moment start = PlainTimestamp.of(2012, 4, 30, 14, 15).atUTC();
Moment end = PlainTimestamp.of(2012, 4, 30, 16, 0).atUTC();
MomentInterval expected = MomentInterval.between(start, end);
assertThat(
MomentInterval.parseISO("2012-04-30T14:15Z/T16:00:01"),
is(expected.withEnd(end.plus(1, TimeUnit.SECONDS))));
assertThat(
MomentInterval.parseISO("2012-04-30T14:15Z/T16:00"),
is(expected));
assertThat(
MomentInterval.parseISO("2012-04-30T14:15Z/T16"),
is(expected));
assertThat(
MomentInterval.parseISO("2012-04-30T14:15Z/T16Z"),
is(expected));
assertThat(
MomentInterval.parseISO("2012-04-30T14:15Z/T16+00:00"),
is(expected));
assertThat(
MomentInterval.parseISO("2012-04-30T14:15Z/T16:00:00+00"),
is(expected));
}
@Test
public void parseAbbreviatedWithoutDateOrT() throws ParseException {
Moment start = PlainTimestamp.of(2012, 4, 30, 14, 15).atUTC();
Moment end = PlainTimestamp.of(2012, 4, 30, 16, 0).atUTC();
MomentInterval expected = MomentInterval.between(start, end);
assertThat(
MomentInterval.parseISO("2012-04-30T14:15Z/16:00:01"),
is(expected.withEnd(end.plus(1, TimeUnit.SECONDS))));
assertThat(
MomentInterval.parseISO("2012-04-30T14:15Z/16:00"),
is(expected));
assertThat(
MomentInterval.parseISO("2012-04-30T14:15Z/16"),
is(expected));
assertThat(
MomentInterval.parseISO("2012-04-30T14:15Z/16Z"),
is(expected));
assertThat(
MomentInterval.parseISO("2012-04-30T14:15Z/16+00:00"),
is(expected));
assertThat(
MomentInterval.parseISO("2012-04-30T14:15Z/16:00:00+00"),
is(expected));
}
@Test
public void parseAbbreviatedExtendedOrdinalDate() throws ParseException {
Moment start = PlainTimestamp.of(2012, 4, 1, 14, 15).atUTC();
Moment end = PlainTimestamp.of(2012, 4, 5, 16, 0).atUTC();
MomentInterval expected = MomentInterval.between(start, end);
assertThat(
MomentInterval.parseISO("2012-092T14:15Z/096T16:00"),
is(expected));
}
@Test
public void parseAbbreviatedExtendedWeekDate() throws ParseException {
Moment start = PlainTimestamp.of(2012, 4, 1, 14, 15, 0).atUTC();
Moment end = PlainTimestamp.of(2012, 4, 5, 16, 0, 1).atUTC();
MomentInterval expected = MomentInterval.between(start, end);
assertThat(
MomentInterval.parseISO("2012-W13-7T14:15:00Z/W14-4T16:00:01"),
is(expected));
assertThat(
MomentInterval.parseISO("2012-W13-7T14:15Z/W14-4T16:00:01"),
is(expected));
}
@Test
public void parseAbbreviatedBasicOrdinalDate() throws ParseException {
Moment start = PlainTimestamp.of(2012, 4, 1, 14, 15).atUTC();
Moment end = PlainTimestamp.of(2012, 4, 5, 16, 0).atUTC();
MomentInterval expected = MomentInterval.between(start, end);
assertThat(
MomentInterval.parseISO("2012092T1415Z/096T1600"),
is(expected));
}
@Test
public void parseAbbreviatedBasicWeekDate() throws ParseException {
Moment start = PlainTimestamp.of(2012, 4, 1, 14, 15).atUTC();
Moment end = PlainTimestamp.of(2012, 4, 5, 16, 0).atUTC();
MomentInterval expected = MomentInterval.between(start, end);
assertThat(
MomentInterval.parseISO("2012W137T1415Z/W144T1600"),
is(expected));
}
@Test
public void parseExtendedOrdinalDate() throws ParseException {
Moment start = PlainTimestamp.of(2012, 4, 1, 14, 15).atUTC();
Moment end = PlainTimestamp.of(2012, 4, 5, 16, 0).atUTC();
MomentInterval expected = MomentInterval.between(start, end);
assertThat(
MomentInterval.parseISO("2012-092T14:15Z/2012-096T16:00"),
is(expected));
}
@Test
public void parseExtendedWeekDate() throws ParseException {
Moment start = PlainTimestamp.of(2012, 4, 1, 14, 15).atUTC();
Moment end = PlainTimestamp.of(2012, 4, 5, 16, 0).atUTC();
MomentInterval expected = MomentInterval.between(start, end);
assertThat(
MomentInterval.parseISO("2012-W13-7T14:15Z/2012-W14-4T16:00"),
is(expected));
}
@Test
public void parseBasicOrdinalDate() throws ParseException {
Moment start = PlainTimestamp.of(2012, 4, 1, 14, 15).atUTC();
Moment end = PlainTimestamp.of(2012, 4, 5, 16, 0).atUTC();
MomentInterval expected = MomentInterval.between(start, end);
assertThat(
MomentInterval.parseISO("2012092T1415Z/2012096T1600"),
is(expected));
}
@Test
public void parseBasicWeekDate() throws ParseException {
Moment start = PlainTimestamp.of(2012, 4, 1, 14, 15).atUTC();
Moment end = PlainTimestamp.of(2012, 4, 5, 16, 0).atUTC();
MomentInterval expected = MomentInterval.between(start, end);
assertThat(
MomentInterval.parseISO("2012W137T1415Z/2012W144T1600"),
is(expected));
}
@Test
public void parseExtendedCalendarDateAndPeriod() throws ParseException {
Moment start = PlainTimestamp.of(2012, 4, 1, 14, 15).atUTC();
Moment end = PlainTimestamp.of(2012, 4, 5, 16, 0).atUTC();
MomentInterval expected = MomentInterval.between(start, end);
assertThat(
MomentInterval.parseISO("2012-04-01T14:15Z/P4DT1H45M"),
is(expected));
}
@Test
public void parseExtendedOrdinalDateAndPeriod() throws ParseException {
Moment start = PlainTimestamp.of(2012, 4, 1, 14, 15).atUTC();
Moment end = PlainTimestamp.of(2012, 4, 5, 16, 0).atUTC();
MomentInterval expected = MomentInterval.between(start, end);
assertThat(
MomentInterval.parseISO("2012-092T14:15Z/P4DT1H45M"),
is(expected));
}
@Test
public void parseExtendedWeekDateAndPeriod() throws ParseException {
Moment start = PlainTimestamp.of(2012, 4, 1, 14, 15).atUTC();
Moment end = PlainTimestamp.of(2012, 4, 5, 16, 0).atUTC();
MomentInterval expected = MomentInterval.between(start, end);
assertThat(
MomentInterval.parseISO("2012-W13-7T14:15Z/P0000-00-04T01:45"),
is(expected));
}
@Test
public void parsePeriodAndExtendedCalendarDate() throws ParseException {
Moment start = PlainTimestamp.of(2012, 4, 1, 14, 15).atUTC();
Moment end = PlainTimestamp.of(2012, 4, 5, 16, 0).atUTC();
MomentInterval expected = MomentInterval.between(start, end);
assertThat(
MomentInterval.parseISO("P4DT1H45M/2012-04-05T16:00Z"),
is(expected));
}
@Test
public void parsePeriodAndExtendedOrdinalDate() throws ParseException {
Moment start = PlainTimestamp.of(2012, 4, 1, 14, 15).atUTC();
Moment end = PlainTimestamp.of(2012, 4, 5, 16, 0).atUTC();
MomentInterval expected = MomentInterval.between(start, end);
assertThat(
MomentInterval.parseISO("P4DT1H45M/2012-096T16:00Z"),
is(expected));
}
@Test
public void parsePeriodAndExtendedWeekDate() throws ParseException {
Moment start = PlainTimestamp.of(2012, 4, 1, 14, 15).atUTC();
Moment end = PlainTimestamp.of(2012, 4, 5, 16, 0).atUTC();
MomentInterval expected = MomentInterval.between(start, end);
assertThat(
MomentInterval.parseISO("P0000-00-04T01:45/2012-W14-4T16:00Z"),
is(expected));
}
@Test
public void parseAbbreviatedWithoutDateUTCplus2() throws ParseException {
Moment start = PlainTimestamp.of(2012, 4, 30, 14, 15).atUTC();
Moment end = PlainTimestamp.of(2012, 4, 30, 16, 0).atUTC();
MomentInterval expected = MomentInterval.between(start, end);
assertThat(
MomentInterval.parseISO("2012-04-30T14:15Z/T18:00+02"),
is(expected));
}
@Test
public void parseAbbreviatedWithoutDateOrTUTCplus2() throws ParseException {
Moment start = PlainTimestamp.of(2012, 4, 30, 14, 15).atUTC();
Moment end = PlainTimestamp.of(2012, 4, 30, 16, 0).atUTC();
MomentInterval expected = MomentInterval.between(start, end);
assertThat(
MomentInterval.parseISO("2012-04-30T14:15Z/T18:00+02"),
is(expected));
}
@Test
public void parseAbbreviatedExtendedOrdinalDateUTCplus1()
throws ParseException {
Moment start = PlainTimestamp.of(2012, 4, 1, 14, 15).atUTC();
Moment end = PlainTimestamp.of(2012, 4, 5, 16, 0).atUTC();
MomentInterval expected = MomentInterval.between(start, end);
assertThat(
MomentInterval.parseISO("2012-092T14:15Z/096T17:00+01"),
is(expected));
}
@Test
public void parseAbbreviatedExtendedWeekDateIndiaStandardTime()
throws ParseException {
Moment start = PlainTimestamp.of(2012, 4, 1, 14, 15).atUTC();
Moment end = PlainTimestamp.of(2012, 4, 5, 16, 0).atUTC();
MomentInterval expected = MomentInterval.between(start, end);
assertThat(
MomentInterval.parseISO("2012-W13-7T14:15Z/W14-4T21:30+05:30"),
is(expected));
}
@Test
public void parseAbbreviatedBasicOrdinalDateUTC()
throws ParseException {
Moment start = PlainTimestamp.of(2012, 4, 1, 14, 15).atUTC();
Moment end = PlainTimestamp.of(2012, 4, 5, 16, 0).atUTC();
MomentInterval expected = MomentInterval.between(start, end);
assertThat(
MomentInterval.parseISO("2012092T1415Z/096T1600Z"),
is(expected));
}
@Test
public void parseAbbreviatedBasicWeekDateUTCplus2() throws ParseException {
Moment start = PlainTimestamp.of(2012, 4, 1, 14, 15).atUTC();
Moment end = PlainTimestamp.of(2012, 4, 5, 16, 0).atUTC();
MomentInterval expected = MomentInterval.between(start, end);
assertThat(
MomentInterval.parseISO("2012W137T1415Z/W144T1800+02"),
is(expected));
}
@Test
public void parseExtendedOrdinalDateUTCminus9()
throws ParseException {
Moment start = PlainTimestamp.of(2012, 4, 1, 14, 15).atUTC();
Moment end = PlainTimestamp.of(2012, 4, 5, 16, 0).atUTC();
MomentInterval expected = MomentInterval.between(start, end);
assertThat(
MomentInterval.parseISO("2012-092T14:15Z/2012-096T07:00-09:00"),
is(expected));
}
@Test
public void parseExtendedWeekDateUTCplus2() throws ParseException {
Moment start = PlainTimestamp.of(2012, 4, 1, 14, 15).atUTC();
Moment end = PlainTimestamp.of(2012, 4, 5, 16, 0).atUTC();
MomentInterval expected = MomentInterval.between(start, end);
assertThat(
MomentInterval.parseISO("2012-W13-7T14:15Z/2012-W14-4T18:00+02:00"),
is(expected));
}
@Test
public void parseBasicOrdinalDateUTC() throws ParseException {
Moment start = PlainTimestamp.of(2012, 4, 1, 14, 15).atUTC();
Moment end = PlainTimestamp.of(2012, 4, 5, 16, 0).atUTC();
MomentInterval expected = MomentInterval.between(start, end);
assertThat(
MomentInterval.parseISO("2012092T1415Z/2012096T1600Z"),
is(expected));
}
@Test
public void parseBasicWeekDateUTCplus2() throws ParseException {
Moment start = PlainTimestamp.of(2012, 4, 1, 14, 15).atUTC();
Moment end = PlainTimestamp.of(2012, 4, 5, 16, 0).atUTC();
MomentInterval expected = MomentInterval.between(start, end);
assertThat(
MomentInterval.parseISO("2012W137T1415Z/2012W144T1800+0200"),
is(expected));
}
@Test
public void formatISO() {
Moment start = PlainTimestamp.of(2016, 2, 22, 10, 45, 53).plus(120, ClockUnit.MILLIS).atUTC();
Moment end = PlainTimestamp.of(2016, 2, 22, 16, 30, 27).plus(43, ClockUnit.MILLIS).atUTC();
MomentInterval interval = MomentInterval.between(start, end);
assertThat(
interval.formatISO(
IsoDateStyle.BASIC_CALENDAR_DATE,
IsoDecimalStyle.DOT,
ClockUnit.MILLIS,
ZonalOffset.ofHours(OffsetSign.AHEAD_OF_UTC, 2),
InfinityStyle.SYMBOL),
is("20160222T124553.120+0200/20160222T183027.043+0200"));
assertThat(
interval.formatISO(
IsoDateStyle.EXTENDED_CALENDAR_DATE,
IsoDecimalStyle.DOT,
ClockUnit.MILLIS,
ZonalOffset.ofHours(OffsetSign.AHEAD_OF_UTC, 2),
InfinityStyle.SYMBOL),
is("2016-02-22T12:45:53.120+02:00/2016-02-22T18:30:27.043+02:00"));
}
@Test
public void formatISOInfinity() {
MomentInterval since = MomentInterval.since(PlainTimestamp.of(2016, 2, 28, 13, 20).atUTC());
MomentInterval until = MomentInterval.until(PlainTimestamp.of(2016, 2, 28, 13, 20).atUTC());
assertThat(
since.formatISO(
IsoDateStyle.EXTENDED_CALENDAR_DATE, IsoDecimalStyle.DOT, ClockUnit.MINUTES, ZonalOffset.UTC,
InfinityStyle.SYMBOL),
is("2016-02-28T13:20Z/+∞"));
assertThat(
since.formatISO(
IsoDateStyle.EXTENDED_CALENDAR_DATE, IsoDecimalStyle.DOT, ClockUnit.MINUTES, ZonalOffset.UTC,
InfinityStyle.HYPHEN),
is("2016-02-28T13:20Z/-"));
assertThat(
since.formatISO(
IsoDateStyle.EXTENDED_CALENDAR_DATE, IsoDecimalStyle.DOT, ClockUnit.MINUTES, ZonalOffset.UTC,
InfinityStyle.MIN_MAX),
is("2016-02-28T13:20Z/+999999999-12-31T23:59Z"));
assertThat(
until.formatISO(
IsoDateStyle.EXTENDED_CALENDAR_DATE, IsoDecimalStyle.DOT, ClockUnit.MINUTES, ZonalOffset.UTC,
InfinityStyle.SYMBOL),
is("-∞/2016-02-28T13:20Z"));
assertThat(
until.formatISO(
IsoDateStyle.EXTENDED_CALENDAR_DATE, IsoDecimalStyle.DOT, ClockUnit.MINUTES, ZonalOffset.UTC,
InfinityStyle.HYPHEN),
is("-/2016-02-28T13:20Z"));
assertThat(
until.formatISO(
IsoDateStyle.EXTENDED_CALENDAR_DATE, IsoDecimalStyle.DOT, ClockUnit.MINUTES, ZonalOffset.UTC,
InfinityStyle.MIN_MAX),
is("-999999999-01-01T00:00Z/2016-02-28T13:20Z"));
}
@Test
public void formatReducedSameYear() {
Moment start = PlainTimestamp.of(2012, 6, 30, 23, 59, 59).plus(1, ClockUnit.MILLIS).atUTC().plus(1, SI.SECONDS);
Moment end = PlainTimestamp.of(2012, 8, 2, 16, 30, 27).plus(120, ClockUnit.MILLIS).atUTC();
MomentInterval interval = MomentInterval.between(start, end);
assertThat(
interval.formatReduced(
IsoDateStyle.EXTENDED_CALENDAR_DATE,
IsoDecimalStyle.DOT,
ClockUnit.MILLIS,
ZonalOffset.ofHours(OffsetSign.AHEAD_OF_UTC, 2),
InfinityStyle.SYMBOL),
is("2012-07-01T01:59:60.001+02:00/08-02T18:30:27.120"));
}
@Test
public void formatReducedSameMonth() {
Moment start = PlainTimestamp.of(2012, 6, 2, 16, 30, 27).plus(120, ClockUnit.MILLIS).atUTC();
Moment end = PlainTimestamp.of(2012, 6, 30, 23, 59, 59).plus(1, ClockUnit.MILLIS).atUTC().plus(1, SI.SECONDS);
MomentInterval interval = MomentInterval.between(start, end);
assertThat(
interval.formatReduced(
IsoDateStyle.EXTENDED_CALENDAR_DATE,
IsoDecimalStyle.DOT,
ClockUnit.MILLIS,
ZonalOffset.ofHours(OffsetSign.BEHIND_UTC, 4),
InfinityStyle.SYMBOL),
is("2012-06-02T12:30:27.120-04:00/30T19:59:60.001"));
}
@Test
public void formatReducedSameDate() {
Moment start = PlainTimestamp.of(2012, 6, 30, 16, 30, 27).plus(120, ClockUnit.MILLIS).atUTC();
Moment end = PlainTimestamp.of(2012, 6, 30, 23, 59, 59).plus(1, ClockUnit.MILLIS).atUTC().plus(1, SI.SECONDS);
MomentInterval interval = MomentInterval.between(start, end);
assertThat(
interval.formatReduced(
IsoDateStyle.BASIC_WEEK_DATE,
IsoDecimalStyle.COMMA,
ClockUnit.MILLIS,
ZonalOffset.ofHours(OffsetSign.BEHIND_UTC, 4),
InfinityStyle.SYMBOL),
is("2012W266T123027,120-0400/T195960,001"));
assertThat(
interval.formatReduced(
IsoDateStyle.EXTENDED_WEEK_DATE,
IsoDecimalStyle.COMMA,
ClockUnit.MILLIS,
ZonalOffset.ofHours(OffsetSign.BEHIND_UTC, 4),
InfinityStyle.SYMBOL),
is("2012-W26-6T12:30:27,120-04:00/T19:59:60,001"));
}
@Test
public void formatReducedInfinity() {
MomentInterval since = MomentInterval.since(PlainTimestamp.of(2016, 2, 28, 13, 20).atUTC());
MomentInterval until = MomentInterval.until(PlainTimestamp.of(2016, 2, 28, 13, 20).atUTC());
assertThat(
since.formatReduced(
IsoDateStyle.EXTENDED_CALENDAR_DATE, IsoDecimalStyle.DOT, ClockUnit.MINUTES, ZonalOffset.UTC,
InfinityStyle.SYMBOL),
is("2016-02-28T13:20Z/+∞"));
assertThat(
since.formatReduced(
IsoDateStyle.EXTENDED_CALENDAR_DATE, IsoDecimalStyle.DOT, ClockUnit.MINUTES, ZonalOffset.UTC,
InfinityStyle.HYPHEN),
is("2016-02-28T13:20Z/-"));
assertThat(
since.formatReduced(
IsoDateStyle.EXTENDED_CALENDAR_DATE, IsoDecimalStyle.DOT, ClockUnit.MINUTES, ZonalOffset.UTC,
InfinityStyle.MIN_MAX),
is("2016-02-28T13:20Z/+999999999-12-31T23:59Z"));
assertThat(
until.formatReduced(
IsoDateStyle.EXTENDED_CALENDAR_DATE, IsoDecimalStyle.DOT, ClockUnit.MINUTES, ZonalOffset.UTC,
InfinityStyle.SYMBOL),
is("-∞/2016-02-28T13:20Z"));
assertThat(
until.formatReduced(
IsoDateStyle.EXTENDED_CALENDAR_DATE, IsoDecimalStyle.DOT, ClockUnit.MINUTES, ZonalOffset.UTC,
InfinityStyle.HYPHEN),
is("-/2016-02-28T13:20Z"));
assertThat(
until.formatReduced(
IsoDateStyle.EXTENDED_CALENDAR_DATE, IsoDecimalStyle.DOT, ClockUnit.MINUTES, ZonalOffset.UTC,
InfinityStyle.MIN_MAX),
is("-999999999-01-01T00:00Z/2016-02-28T13:20Z"));
}
@Test
public void parseInfinity() throws ParseException {
Moment utc = PlainTimestamp.of(2015, 1, 1, 8, 45).atUTC();
assertThat(
MomentInterval.parseISO("2015-01-01T08:45Z/+∞"),
is(MomentInterval.since(utc))
);
assertThat(
MomentInterval.parse(
"[2015-01-01T08:45Z/+∞)", Iso8601Format.EXTENDED_DATE_TIME_OFFSET, BracketPolicy.SHOW_ALWAYS),
is(MomentInterval.since(utc))
);
assertThat(
MomentInterval.parseISO("-∞/2015-01-01T08:45Z"),
is(MomentInterval.until(utc))
);
assertThat(
MomentInterval.parse(
"(-∞/2015-01-01T08:45Z]", Iso8601Format.EXTENDED_DATE_TIME_OFFSET, BracketPolicy.SHOW_ALWAYS),
is(MomentInterval.until(utc).withClosedEnd())
);
assertThat(
MomentInterval.parseISO("2015-01-01T08:45Z/-"),
is(MomentInterval.since(utc))
);
assertThat(
MomentInterval.parse(
"[2015-01-01T08:45Z/-)", Iso8601Format.EXTENDED_DATE_TIME_OFFSET, BracketPolicy.SHOW_ALWAYS),
is(MomentInterval.since(utc))
);
assertThat(
MomentInterval.parseISO("-/2015-01-01T08:45Z"),
is(MomentInterval.until(utc))
);
assertThat(
MomentInterval.parse(
"(-/2015-01-01T08:45Z]", Iso8601Format.EXTENDED_DATE_TIME_OFFSET, BracketPolicy.SHOW_ALWAYS),
is(MomentInterval.until(utc).withClosedEnd())
);
assertThat(
MomentInterval.parseISO("2015-01-01T08:45Z/+999999999-12-31T23:59:59,999999999Z"),
is(MomentInterval.since(utc))
);
assertThat(
MomentInterval.parse(
"[2015-01-01T08:45Z/+999999999-12-31T23:59:59,999999999Z)",
Iso8601Format.EXTENDED_DATE_TIME_OFFSET,
BracketPolicy.SHOW_ALWAYS),
is(MomentInterval.since(utc))
);
assertThat(
MomentInterval.parseISO("-999999999-01-01T00:00Z/2015-01-01T08:45Z"),
is(MomentInterval.until(utc))
);
assertThat(
MomentInterval.parse(
"(-999999999-01-01T00:00Z/2015-01-01T08:45Z]",
Iso8601Format.EXTENDED_DATE_TIME_OFFSET,
BracketPolicy.SHOW_ALWAYS),
is(MomentInterval.until(utc).withClosedEnd())
);
}
@Test
public void parseAlways() throws ParseException {
MomentInterval always =
MomentIntervalFactory.INSTANCE.between(Boundary.infinitePast(), Boundary.infiniteFuture());
assertThat(
MomentInterval.parseISO("-/-"),
is(always));
assertThat(
MomentInterval.parse(
"(-/-)",
Iso8601Format.EXTENDED_DATE_TIME_OFFSET,
BracketPolicy.SHOW_WHEN_NON_STANDARD),
is(always));
assertThat(
MomentInterval.parseISO("-∞/+∞"),
is(always));
assertThat(
MomentInterval.parse(
"(-∞/+∞)",
Iso8601Format.EXTENDED_DATE_TIME_OFFSET,
BracketPolicy.SHOW_WHEN_NON_STANDARD),
is(always));
assertThat(
MomentInterval.parseISO("-999999999-01-01T00:00Z/+999999999-12-31T23:59:59,999999999Z"),
is(always));
assertThat(
MomentInterval.parse(
"(-999999999-01-01T00:00Z/+999999999-12-31T23:59:59,999999999Z)",
Iso8601Format.EXTENDED_DATE_TIME_OFFSET,
BracketPolicy.SHOW_WHEN_NON_STANDARD),
is(always));
}
}