### Question:
Ordinal implements Comparable<Ordinal> { public int toIndex() { return num - 1; } private  Ordinal(int num); static Ordinal first(); static Stream<Ordinal> natural(); static Ordinal of(int oneBased); static Ordinal fromIndex(int zeroBased); int toIndex(); Ordinal next(); @Override int compareTo(Ordinal that); @Override int hashCode(); @Override boolean equals(Object obj); @Override String toString();  }### Answer:
@Test public void toIndex() { List<Ordinal> ordinals = Ordinal.natural().limit(100).collect(toList()); for (Ordinal ordinal : ordinals) { assertThat(ordinals.get(ordinal.toIndex())).isSameAs(ordinal); } }