package com.codepoetics.protonpack;
import org.junit.Test;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Stream;
import static java.util.Arrays.asList;
import static java.util.stream.Collectors.toList;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.contains;
import static org.hamcrest.Matchers.iterableWithSize;
public class GroupRunsTest {
@Test
public void
group_runs() {
Stream<Integer> integerStream = Stream.of(1, 1, 2, 2, 3, 4, 5);
List<List<Integer>> runs = StreamUtils.groupRuns(integerStream).collect(toList());
assertThat(runs, contains(
asList(1, 1),
asList(2, 2),
asList(3),
asList(4),
asList(5)));
}
@Test
public void
group_runs_end_has_run() {
Stream<Integer> integerStream = Stream.of(1, 1, 2, 2, 3, 4, 5, 5);
List<List<Integer>> runs = StreamUtils.groupRuns(integerStream).collect(toList());
assertThat(runs, contains(
asList(1, 1),
asList(2, 2),
asList(3),
asList(4),
asList(5, 5)));
}
@Test
public void
group_is_empty() {
List<List<Integer>> runs = StreamUtils.groupRuns(new ArrayList<Integer>().stream()).collect(toList());
assertThat(runs, iterableWithSize(0));
}
}