@@ -2,7 +2,8 @@ package scala.collection
22package decorators
33
44import org .junit .{Assert , Test }
5- import scala .collection .immutable .{LazyList , List , Range , Map }
5+
6+ import scala .collection .immutable .{LazyList , List , Map , Range }
67
78class IterableDecoratorTest {
89
@@ -36,4 +37,44 @@ class IterableDecoratorTest {
3637 Assert .assertEquals(2 , result2)
3738 }
3839
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+ }
3980}
0 commit comments