@Test
 public void testExercise7filter() {
   System.out.println("----------- testExercise7 filter ----------------");
   ComposableList<Integer> slr = ComposableListExercises.of(1, 2, 3).filter(i -> i <= 2);
   slr.forEach(System.out::println);
   assertEquals(Arrays.asList(1, 2), slr);
 }
 @Test
 public void testExercise4map() {
   System.out.println("----------- testExercise4 map ----------------");
   ComposableList<Integer> slr = ComposableListExercises.of(1, 2, 3).map(i -> i + 1);
   slr.forEach(System.out::println);
   assertEquals(Arrays.asList(2, 3, 4), slr);
 }
 @Test
 public void testExercise15reduce() {
   System.out.println("----------- testExercise15 reduce ----------------");
   ComposableList<Integer> slr = ComposableListExercises.of(1, 2, 3).reduce(1, (s, i) -> s + i);
   slr.forEach(System.out::println);
   assertEquals(Arrays.asList(7), slr);
 }
 @Test
 public void testExercise10() {
   System.out.println("----------- testExercise10 ----------------");
   ComposableList<Integer> slr =
       ComposableListExercises.of(1, 2, 3)
           .concatMap((t) -> ComposableListExercises.of(t + 1, t + 2, t + 3));
   slr.forEach(System.out::println);
   assertEquals(Arrays.asList(2, 3, 4, 3, 4, 5, 4, 5, 6), slr);
 }
 @Test
 public void testExercise21zip() {
   System.out.println("----------- testExercise21 zip ----------------");
   ComposableList<Integer> slr =
       ComposableListExercises.zip(
           ComposableListExercises.of(1, 2, 3),
           ComposableListExercises.of(4, 5, 6),
           (l, r) -> l + r);
   slr.forEach(System.out::println);
   assertEquals(Arrays.asList(5, 7, 9), slr);
 }