### Question:
DefaultTimeSpanSet implements TimeSpanSet { @Override public Object[] toArray() { Object[] result = null; myElementListLock.lock(); try { result = myElementList.toArray(); } finally { myElementListLock.unlock(); } return result; } DefaultTimeSpanSet();  DefaultTimeSpanSet(TimeSpan ts);  DefaultTimeSpanSet(TimeSpanSet other); @Override boolean add(TimeSpan e); @Override final boolean add(TimeSpanSet other); @Override boolean addAll(Collection<? extends TimeSpan> c); @Override void clear(); @Override boolean contains(Date aDate); @Override boolean contains(long aTime); @Override boolean contains(Object o); @Override boolean contains(TimeSpan value); @Override boolean containsAll(Collection<?> c); @Override boolean equals(Object obj); @Override List<TimeSpan> getTimeSpans(); @Override int hashCode(); @Override TimeSpanSet intersection(TimeSpan ts); @Override TimeSpanSet intersection(TimeSpanSet otherSet); @Override boolean intersects(TimeSpan value); @Override boolean intersects(TimeSpanProvider ts); @Override boolean intersects(TimeSpanSet other); @Override boolean isEmpty(); @Override Iterator<TimeSpan> iterator(); @Override boolean remove(Object o); @Override boolean remove(TimeSpan spanToRemove); @Override boolean remove(TimeSpanSet other); @Override boolean removeAll(Collection<?> c); @Override boolean retainAll(Collection<?> c); @Override int size(); @Override Object[] toArray(); @Override T[] toArray(T[] a); @Override String toString(); @Override TimeSpanSet union(TimeSpanSet other);  }### Answer:
@Test public void testToArray() { long[] setA = { 1, 2, 5, 6, 8, 9, 11, 12, 13, 14, 15, 55, 56, 57 }; DefaultTimeSpanSet rlsA = new DefaultTimeSpanSet(); rlsA.addAll(createTestTimeSpans(setA)); Object[] timeSpans = rlsA.toArray(); assertEquals(5, timeSpans.length); assertTrue(timeSpans[0] instanceof TimeSpan); assertTrue(timeSpans[1] instanceof TimeSpan); assertTrue(timeSpans[2] instanceof TimeSpan); assertTrue(timeSpans[3] instanceof TimeSpan); assertTrue(timeSpans[4] instanceof TimeSpan); assertEquals(1, ((TimeSpan)timeSpans[0]).getStart()); assertEquals(3, ((TimeSpan)timeSpans[0]).getEnd()); assertEquals(5, ((TimeSpan)timeSpans[1]).getStart()); assertEquals(7, ((TimeSpan)timeSpans[1]).getEnd()); assertEquals(8, ((TimeSpan)timeSpans[2]).getStart()); assertEquals(10, ((TimeSpan)timeSpans[2]).getEnd()); assertEquals(11, ((TimeSpan)timeSpans[3]).getStart()); assertEquals(16, ((TimeSpan)timeSpans[3]).getEnd()); assertEquals(55, ((TimeSpan)timeSpans[4]).getStart()); assertEquals(58, ((TimeSpan)timeSpans[4]).getEnd()); }