### Question:
History implements Iterable<Object> { @Deprecated @NonNull public <T> Iterator<T> reverseIterator() { return iterateFromBottom(history); } private  History(List<Object> history); @NonNull static Builder emptyBuilder(); @NonNull static History single(@NonNull Object key); @NonNull Iterable<T> framesFromBottom(); @NonNull Iterable<T> framesFromTop(); @Deprecated @NonNull Iterator<T> reverseIterator(); @Deprecated @NonNull @Override Iterator<Object> iterator(); int size(); @NonNull T top(); @NonNull T peek(int index); @NonNull Builder buildUpon(); @Override String toString();  }### Answer:
@Test public void reverseIterator() { List<Object> paths = new ArrayList<>(Arrays.<Object>asList(ABLE, BAKER, CHARLIE)); History history = History.emptyBuilder().pushAll(paths).build(); Iterator<Object> i = history.reverseIterator(); while (i.hasNext()) { assertThat(i.next()).isSameAs(paths.remove(0)); } }