@Test public void test_flatMap_2() { ArrayList<Integer> integers = Flow.of(1, 2, 3) .groupBy(new Mapper<Integer, Boolean>() { @Override public Boolean map(Integer it) { return it % 2 == 0; } }) .flatMap(new Mapper<FlowGroup<Boolean, Integer>, Flow<Integer>>() { @Override public Flow<Integer> map(final FlowGroup<Boolean, Integer> group) { return group; } }) .toList().get(); Assert.assertEquals(3, integers.size()); Assert.assertEquals(Integer.valueOf(1), integers.get(0)); Assert.assertEquals(Integer.valueOf(2), integers.get(1)); Assert.assertEquals(Integer.valueOf(3), integers.get(2)); }
.flatMap(new Mapper<FlowGroup<Integer, Person>, FlowProcessOnEnd<?, ArrayList<Map<String, List<Person>>>>>() { @Override public FlowProcessOnEnd<?, ArrayList<Map<String, List<Person>>>> map(FlowGroup<Integer, Person> integerPersonFlowGroup) {
@Test public void test_grouping_1() { List<ArrayList<Integer>> result = Flow.of(1, 2, 3) .groupBy(new Mapper<Integer, Boolean>() { @Override public Boolean map(Integer it) { return it % 2 == 0; } }) .flatMap(new Mapper<FlowGroup<Boolean, Integer>, FlowProcessOnEnd<?, ArrayList<Integer>>>() { @Override public FlowProcessOnEnd<?, ArrayList<Integer>> map(FlowGroup<Boolean, Integer> group) { return group.toList(); } }) .toSortedList(new Comparator<List<Integer>>() { @Override public int compare(List<Integer> o1, List<Integer> o2) { return o1.size() < o2.size() ? -1 : (o1.size() == o2.size() ? 0 : 1); } }).get(); Assert.assertEquals(2, result.size()); Assert.assertEquals(1, result.get(0).size()); Assert.assertEquals(Integer.valueOf(2), result.get(0).get(0)); Assert.assertEquals(2, result.get(1).size()); Assert.assertEquals(Integer.valueOf(1), result.get(1).get(0)); Assert.assertEquals(Integer.valueOf(3), result.get(1).get(1)); }
@Test public void test_grouping_3() { List<Integer> result = Flow.of(1, 2, 3) .groupBy(new Mapper<Integer, Boolean>() { @Override public Boolean map(Integer it) { return it % 2 == 0; } }) .flatMap(new Mapper<FlowGroup<Boolean, Integer>, FlowProcessOnEnd<?, Integer>>() { @Override public FlowProcessOnEnd<?, Integer> map(FlowGroup<Boolean, Integer> group) { return group.first(); } }) .toSortedList() .get(); Assert.assertEquals(2, result.size()); Assert.assertEquals(Integer.valueOf(1), result.get(0)); Assert.assertEquals(Integer.valueOf(2), result.get(1)); }
.flatMap(new Mapper<FlowGroup<Boolean, Integer>, FlowProcessOnEnd<?, ArrayList<Integer>>>() { @Override public FlowProcessOnEnd<?, ArrayList<Integer>> map(final FlowGroup<Boolean, Integer> group) {
@Test public void test_grouping_4() { final AtomicInteger counter = new AtomicInteger(); Integer result = Flow.of(1, 2, 3) .groupBy(new Mapper<Integer, Boolean>() { @Override public Boolean map(Integer it) { counter.incrementAndGet(); return it % 2 == 0; } }) .flatMap(new Mapper<FlowGroup<Boolean, Integer>, FlowProcessOnEnd<?, Integer>>() { @Override public FlowProcessOnEnd<?, Integer> map(FlowGroup<Boolean, Integer> group) { return group.first(); } }) .first() .get(); Assert.assertEquals(Integer.valueOf(1), result); Assert.assertEquals(1, counter.get()); }
.flatMap(new Mapper<FlowGroup<Boolean, Integer>, FlowProcessOnEnd<?, ArrayList<Integer>>>() { int counter = 0;