### Question:
RangeList extends TransformedList<E, E> { public void setTailRange(int startIndex, int endIndex) { this.desiredStart = -startIndex - 1; this.desiredEnd = -endIndex - 1; adjustRange(); } RangeList(EventList<E> source); @Override final void listChanged(ListEvent<E> listChanges); @Deprecated void setRange(int startIndex, int endIndex); void setHeadRange(int startIndex, int endIndex); void setMiddleRange(int startIndex, int endIndex); void setTailRange(int startIndex, int endIndex); @Override final int size(); int getStartIndex(); int getEndIndex();  }### Answer:
@Test public void testTailRange() { EventList<String> source = new BasicEventList<>(); source.addAll(GlazedListsTests.stringToList("ABCDEFGHIJKLMNOPQRSTUVWXYZ")); RangeList<String> rangeList = new RangeList<>(source); ListConsistencyListener.install(rangeList); assertEquals(source, rangeList); rangeList.setTailRange(5, 0); assertEquals(GlazedListsTests.stringToList("VWXYZ"), rangeList); rangeList.setTailRange(3, 1); assertEquals(GlazedListsTests.stringToList("XY"), rangeList); }