@Override
  public Reiterator<Object> get(int tag) {
    return new SubIterator(tag);
  }
@Test
  public void testPartialIteration() {
    TaggedReiteratorList iter = create(6, new String[] {"a", "b", "c"});
    Iterator<?> get0 = iter.get(0);
    Iterator<?> get1 = iter.get(1);
    Iterator<?> get3 = iter.get(3);
    assertEquals(asList(get0, 1), "a0");
    assertEquals(asList(get1, 2), "a1", "b1");
    assertEquals(asList(get3, 3), "a3", "b3", "c3");
    Iterator<?> get2 = iter.get(2);
    Iterator<?> get0Again = iter.get(0);
    assertEquals(asList(get0, 1), "b0");
    assertEquals(get2, "a2", "b2", "c2");
    assertEquals(get0Again, "a0", "b0", "c0");
    assertEquals(asList(get0), "c0");
    Iterator<?> get4 = iter.get(4);
    assertEquals(get4, "a4", "b4", "c4");
    assertEquals(get4 /*empty*/);
    assertEquals(iter.get(4), "a4", "b4", "c4");
  }