@@ -2,7 +2,8 @@ package scala.collection
2
2
package decorators
3
3
4
4
import org .junit .{Assert , Test }
5
- import scala .collection .immutable .{LazyList , List , Range , Map }
5
+
6
+ import scala .collection .immutable .{LazyList , List , Map , Range }
6
7
7
8
class IterableDecoratorTest {
8
9
@@ -36,4 +37,44 @@ class IterableDecoratorTest {
36
37
Assert .assertEquals(2 , result2)
37
38
}
38
39
40
+ @ Test
41
+ def splitByShouldHonorEmptyIterator (): Unit = {
42
+ val split = Vector .empty[Int ].splitBy(identity)
43
+ Assert .assertEquals(Vector .empty, split)
44
+ }
45
+
46
+ @ Test
47
+ def splitByShouldReturnSingleSeqWhenSingleElement (): Unit = {
48
+ val value = Vector (" 1" )
49
+ val split = value.splitBy(identity)
50
+ Assert .assertEquals(Vector (value), split)
51
+ }
52
+
53
+ @ Test
54
+ def splitByShouldReturnSingleSeqWhenAllElHaveTheSameKey (): Unit = {
55
+ val value = Vector (" 1" , " 1" , " 1" )
56
+ val split = value.splitBy(identity)
57
+ Assert .assertEquals(Vector (value), split)
58
+ }
59
+
60
+ @ Test
61
+ def splitByShouldReturnVectorOfVectorOrConsecutiveElementsWithTheSameKey (): Unit = {
62
+ val value = Vector (" 1" , " 2" , " 2" , " 3" , " 3" , " 3" , " 2" , " 2" )
63
+ val split : Vector [Vector [String ]] = value.splitBy(identity)
64
+ Assert .assertEquals(Vector (Vector (" 1" ), Vector (" 2" , " 2" ), Vector (" 3" , " 3" , " 3" ), Vector (" 2" , " 2" )), split)
65
+ }
66
+
67
+ @ Test
68
+ def splitByShouldReturnListOfListOfConsecutiveElementsWithTheSameKey (): Unit = {
69
+ val value = List (" 1" , " 2" , " 2" , " 3" , " 3" , " 3" , " 2" , " 2" )
70
+ val split : List [List [String ]] = value.splitBy(identity)
71
+ Assert .assertEquals(List (List (" 1" ), List (" 2" , " 2" ), List (" 3" , " 3" , " 3" ), List (" 2" , " 2" )), split)
72
+ }
73
+
74
+ @ Test
75
+ def splitByShouldReturnSetOfSetOfConsecutiveElementsWithTheSameKey (): Unit = {
76
+ val value = Set (" 1" , " 2" , " 2" , " 3" , " 3" , " 3" , " 2" , " 2" )
77
+ val split : Set [Set [String ]] = value.splitBy(identity)
78
+ Assert .assertEquals(Set (Set (" 1" ), Set (" 2" ), Set (" 3" )), split)
79
+ }
39
80
}
0 commit comments