@Test
  public void testForEachImmutableList() {
    IntegerSum sum1 = new IntegerSum(0);
    ImmutableList<Integer> list1 =
        Lists.immutable.ofAll(ParallelIterateAcceptanceTest.createIntegerList(16));
    ParallelIterate.forEach(
        list1, new SumProcedure(sum1), new SumCombiner(sum1), 1, list1.size() / 2);
    Assert.assertEquals(16, sum1.getSum());

    IntegerSum sum2 = new IntegerSum(0);
    ImmutableList<Integer> list2 =
        Lists.immutable.ofAll(ParallelIterateAcceptanceTest.createIntegerList(7));
    ParallelIterate.forEach(list2, new SumProcedure(sum2), new SumCombiner(sum2));
    Assert.assertEquals(7, sum2.getSum());

    IntegerSum sum3 = new IntegerSum(0);
    ImmutableList<Integer> list3 =
        Lists.immutable.ofAll(ParallelIterateAcceptanceTest.createIntegerList(15));
    ParallelIterate.forEach(
        list3, new SumProcedure(sum3), new SumCombiner(sum3), 1, list3.size() / 2);
    Assert.assertEquals(15, sum3.getSum());

    IntegerSum sum4 = new IntegerSum(0);
    ImmutableList<Integer> list4 =
        Lists.immutable.ofAll(ParallelIterateAcceptanceTest.createIntegerList(35));
    ParallelIterate.forEach(list4, new SumProcedure(sum4), new SumCombiner(sum4));
    Assert.assertEquals(35, sum4.getSum());

    IntegerSum sum5 = new IntegerSum(0);
    ImmutableList<Integer> list5 = FastList.newList(list4).toImmutable();
    ParallelIterate.forEach(list5, new SumProcedure(sum5), new SumCombiner(sum5));
    Assert.assertEquals(35, sum5.getSum());

    IntegerSum sum6 = new IntegerSum(0);
    ImmutableList<Integer> list6 =
        Lists.immutable.ofAll(ParallelIterateAcceptanceTest.createIntegerList(40));
    ParallelIterate.forEach(
        list6, new SumProcedure(sum6), new SumCombiner(sum6), 1, list6.size() / 2);
    Assert.assertEquals(40, sum6.getSum());

    IntegerSum sum7 = new IntegerSum(0);
    ImmutableList<Integer> list7 = FastList.newList(list6).toImmutable();
    ParallelIterate.forEach(
        list7, new SumProcedure(sum7), new SumCombiner(sum7), 1, list6.size() / 2);
    Assert.assertEquals(40, sum7.getSum());
  }
 @Test
 public void testForEachWithIndexException() {
   Verify.assertThrows(
       RuntimeException.class,
       () ->
           ParallelIterate.forEachWithIndex(
               ParallelIterateAcceptanceTest.createIntegerList(5),
               new PassThruObjectIntProcedureFactory<>(EXCEPTION_OBJECT_INT_PROCEDURE),
               new PassThruCombiner<>(),
               1,
               5));
 }