@@ -20,6 +20,8 @@ class StreamTest extends GroovyTestCase {
2020
2121 assert integers. collect { it * 2 } == stream. toList()
2222 assert integers. reverse(). collect { it * 2 } == stream. reverse(). toList()
23+
24+ assert integers. size() == stream. count()
2325 }
2426
2527 void testSelectMany () {
@@ -71,9 +73,10 @@ class StreamTest extends GroovyTestCase {
7173 assert result. get(1 ). elements. toList() == [1 , 3 , 5 , 7 , 9 ]
7274
7375 // groupBy with key and element selectors
74- result = stream(integers)
76+ def groupByStream = stream(integers)
7577 .groupBy(keySelector, elementSelector)
76- .toList()
78+
79+ result = groupByStream. toList()
7780
7881 assert result. size() == 2
7982
@@ -82,6 +85,14 @@ class StreamTest extends GroovyTestCase {
8285
8386 assert result. get(1 ). key == " Odd"
8487 assert result. get(1 ). elements. toList() == [10 , 30 , 50 , 70 , 90 ]
88+
89+ // test reverse
90+ def reverseResult = groupByStream. reverse(). toList()
91+ assert reverseResult. get(0 ). key == " Odd"
92+ assert reverseResult. get(0 ). elements. toList() == [10 , 30 , 50 , 70 , 90 ]
93+
94+ assert reverseResult. get(1 ). key == " Even"
95+ assert reverseResult. get(1 ). elements. toList() == [00 , 20 , 40 , 60 , 80 ]
8596 }
8697
8798 void testOrderBy () {
@@ -104,6 +115,13 @@ class StreamTest extends GroovyTestCase {
104115 .orderBy({ n -> n }, { n1 , n2 -> n1 - n2 })
105116 .toList()
106117
118+
119+ // orderBy count()
120+ assert shuffledItems. size() ==
121+ stream(shuffledItems)
122+ .orderBy({ n -> n }, { n1 , n2 -> n1 - n2 })
123+ .count()
124+
107125 // orderBy descending
108126 assert integersDescending ==
109127 stream(shuffledItems)
@@ -150,6 +168,10 @@ class StreamTest extends GroovyTestCase {
150168 assert stream(integers). take(10 ). toList(). size() == 10
151169 // takes 100 items (get all items)
152170 assert stream(integers). take(100 ). toList(). size() == 10
171+ // takes 5 and count
172+ assert stream(integers). take(5 ). count() == 5
173+ // takes 5 and reverses
174+ assert stream(integers). take(5 ). reverse(). toList() == [4 , 3 , 2 , 1 , 0 ]
153175 }
154176
155177 void testSkip () {
@@ -170,6 +192,10 @@ class StreamTest extends GroovyTestCase {
170192 assert stream(integers). skip(10 ). toList(). size() == 0
171193 // skips 100 items (more than present in the collection)
172194 assert stream(integers). skip(100 ). toList(). size() == 0
195+ // skips 5 and count
196+ assert stream(integers). skip(5 ). count() == 5
197+ // skips 5 and reverses
198+ assert stream(integers). skip(5 ). reverse(). toList() == [9 , 8 , 7 , 6 , 5 ]
173199 }
174200
175201 void testDistinct () {
@@ -379,4 +405,12 @@ class StreamTest extends GroovyTestCase {
379405 assert stream([]). toMap(keySelector). isEmpty()
380406 assert stream([]). toMap(keySelector, elementSelector). isEmpty()
381407 }
408+
409+ void testReverse () {
410+ def integers = 0 .. 9
411+
412+ assert integers ==
413+ stream(integers). reverse(). reverse(). toList()
414+ }
382415}
416+
0 commit comments