@Test public void test_reduce2() { Assert.assertEquals(Integer.valueOf(6), Flow.of(1, 2, 3).reduce(new Reducer<Integer>() { @Override public Integer reduce(Integer a, Integer b) { return a > b ? a : b; } }).map(new Mapper<Integer, Integer>() { @Override public Integer map(Integer integer) { return integer * 2; } }).first().get()); Assert.assertEquals(Integer.valueOf(6), Flow.of(3, 2, 1).reduce(new Reducer<Integer>() { @Override public Integer reduce(Integer a, Integer b) { return a > b ? a : b; } }).map(new Mapper<Integer, Integer>() { @Override public Integer map(Integer integer) { return integer * 2; } }).first().get()); }