private void shrinkToMaximumUnitSize( final List<List<MutationDetails>> chunked, final Collection<MutationDetails> each) { if (this.unitSize > 0) { for (final List<MutationDetails> ms : FCollection.splitToLength( this.unitSize, each)) { chunked.add(ms); } } else { chunked.add(new ArrayList<>(each)); } }
@Test public void shouldSplitCollectionIntoOneBucketWhenListSizeEqualToBucketSize() { this.is = Arrays.asList(1, 2, 3); final List<List<Integer>> actual = FCollection.splitToLength(3, this.is); assertEquals(1, actual.size()); assertThat(actual.get(0)).contains(1, 2, 3); }
@Test public void shouldSplitCollectionIntoTwoBucketsWhenListSizeOneGreaterThanBucketSize() { this.is = Arrays.asList(1, 2, 3); final List<List<Integer>> actual = FCollection.splitToLength(2, this.is); assertEquals(2, actual.size()); assertThat(actual.get(0)).contains(1, 2); assertThat(actual.get(1)).contains(3); }
@Test public void shouldSplitCollectionIntoManyBucketsWhenListManyTimesGreaterThanBucketSize() { this.is = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11); final List<List<Integer>> actual = FCollection.splitToLength(2, this.is); assertEquals(6, actual.size()); assertThat(actual.get(0)).contains(1, 2); assertThat(actual.get(1)).contains(3, 4); assertThat(actual.get(5)).contains(11); }