### Question:
TimeSpanList extends AbstractList<TimeSpan> implements Serializable { public static TimeSpanList singleton(TimeSpan obj) { return new SingletonList(obj); }  static TimeSpanList emptyList(); static void mergeOverlaps(final List<TimeSpan> list); static void mergeOverlaps(final List<TimeSpan> list, boolean mergeTouching); static TimeSpanList singleton(TimeSpan obj); abstract TimeSpanList clone(Collection<? extends TimeSpan> spans); boolean covers(TimeSpan other); boolean covers(TimeSpanList other); TimeSpan getExtent(); abstract TimeSpanList intersection(TimeSpan ts); abstract TimeSpanList intersection(TimeSpanList other); boolean intersects(TimeSpan timeSpan); abstract TimeSpanList union(TimeSpan ts); abstract TimeSpanList union(TimeSpanList other); static final TimeSpanList TIMELESS; }### Answer:
@Test public void testSingleton() { final TimeSpan ts = TimeSpan.get(8L, 20L); TimeSpanList singleton = TimeSpanList.singleton(ts); Assert.assertEquals(1, singleton.size()); Assert.assertSame(ts, singleton.get(0)); testImmutable(singleton); Assert.assertSame(ts, singleton.getExtent()); }