|
21 | 21 |
|
22 | 22 | package cats.tests |
23 | 23 |
|
24 | | -import cats.{Align, Alternative, CoflatMap, Eval, Functor, Monad, Semigroupal, Traverse, TraverseFilter} |
| 24 | +import cats.{Align, Alternative, CoflatMap, Eval, Functor, Monad, Reducible, Semigroupal, Traverse, TraverseFilter} |
25 | 25 | import cats.data.{NonEmptyList, ZipList} |
26 | 26 | import cats.laws.discipline.{ |
27 | 27 | AlignTests, |
@@ -139,25 +139,27 @@ class ListSuite extends CatsSuite { |
139 | 139 | } |
140 | 140 |
|
141 | 141 | test("splitWhen") { |
142 | | - forAll { (li: List[Int]) => |
143 | | - val pred = (x: Int) => x > 0 |
| 142 | + forAll { (li: List[Int], x: Int) => |
| 143 | + val pred = (y: Int) => x == y |
144 | 144 | val res = li.splitWhen(pred) |
145 | 145 | val expectedFiltered = li.filterNot(pred) |
146 | 146 | val expectedSize = li.size - expectedFiltered.size + 1 |
147 | 147 | assert(res.size === expectedSize) |
148 | 148 | assert(res.toList.flatten === expectedFiltered) |
| 149 | + assert(Reducible[NonEmptyList].nonEmptyIntercalate(res, List(x)) == li) |
149 | 150 | } |
150 | 151 | } |
151 | 152 |
|
152 | 153 | test("splitWhenM") { |
153 | | - forAll { (li: List[Int]) => |
154 | | - val pred = (x: Int) => x > 0 |
155 | | - val predM = (x: Int) => Eval.now(pred(x)) |
156 | | - val res = li.splitWhenM(predM) |
| 154 | + forAll { (li: List[Int], x: Int) => |
| 155 | + val pred = (y: Int) => x == y |
| 156 | + val predM = (y: Int) => Eval.now(pred(y)) |
| 157 | + val res = li.splitWhenM(predM).value |
157 | 158 | val expectedFiltered = li.filterNot(pred) |
158 | 159 | val expectedSize = li.size - expectedFiltered.size + 1 |
159 | | - assert(res.value.size === expectedSize) |
160 | | - assert(res.value.toList.flatten === expectedFiltered) |
| 160 | + assert(res.size === expectedSize) |
| 161 | + assert(res.toList.flatten === expectedFiltered) |
| 162 | + assert(Reducible[NonEmptyList].nonEmptyIntercalate(res, List(x)) == li) |
161 | 163 | } |
162 | 164 | } |
163 | 165 | } |
|
0 commit comments