Skip to content

Commit 3e427b5

Browse files
authored
Merge pull request #3 from DutchCodingCompany/feature/add_between
✨ Added addBetween iterable extension
2 parents 61f6e2d + 2fe3262 commit 3e427b5

File tree

2 files changed

+38
-0
lines changed

2 files changed

+38
-0
lines changed
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
import 'package:collection/collection.dart';
2+
3+
/// Insert additional value into iterables.
4+
extension Insert<T> on Iterable<T> {
5+
/// Insert [value] between each element of the iterable.
6+
Iterable<T> addBetween(T value) {
7+
return expandIndexed((int index, T element) sync* {
8+
yield element;
9+
if (index < length - 1) yield value;
10+
});
11+
}
12+
}
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
import 'package:dcc_toolkit/common/extensions/iterable.dart';
2+
import 'package:flutter_test/flutter_test.dart';
3+
import 'package:parameterized_test/parameterized_test.dart';
4+
5+
void main() {
6+
parameterizedTest2('addBetween tests', [
7+
[
8+
<int>[],
9+
<int>[],
10+
],
11+
[
12+
[1],
13+
[1],
14+
],
15+
[
16+
[1, 2],
17+
[1, 0, 2],
18+
],
19+
[
20+
[1, 2, 3],
21+
[1, 0, 2, 0, 3],
22+
],
23+
], (List<int> initial, List<int> expected) {
24+
expect(initial.addBetween(0), expected);
25+
});
26+
}

0 commit comments

Comments
 (0)