private static void assertUnifiedSetForEachWithIndex(int shift) {
    MultiReaderUnifiedSet<CollidingInt> set = MultiReaderUnifiedSet.newSet();

    int size = 100000;
    for (int i = 0; i < size; i++) {
      Assert.assertTrue(set.add(new CollidingInt(i, shift)));
    }
    MutableList<CollidingInt> keys = FastList.newList(size);
    int[] prevIndex = new int[1];
    set.forEachWithIndex(
        (key, index) -> {
          Assert.assertEquals(prevIndex[0], index);
          prevIndex[0]++;
          keys.add(key);
        });
    Verify.assertSize(size, keys);
    Collections.sort(keys);

    for (int i = 0; i < size; i++) {
      Verify.assertItemAtIndex(new CollidingInt(i, shift), i, keys);
    }
  }