@@ -398,6 +398,27 @@ takeWhile1 =
399 predicate = (== 0)
399 predicate = (== 0)
401+takeWhileP :: Property
403+ forAll (listOf (chooseInt (0, 1))) $ \ls ->
404+ forAll (chooseInt (min_value, max_value)) $ \n ->
409+ P.takeWhileP predicate
410+ $ P.fromFold (FL.take n FL.toList)
412+ takeWhileTillLen maxLen prd list =
413+ Prelude.take maxLen $ Prelude.takeWhile prd list
415+ case S.parse prsr (S.fromList ls) of
416+ Right parsed_list ->
419+ (takeWhileTillLen n predicate ls)
420+ Left _ -> property False
401choice :: Property
422choice :: Property
@@ -785,6 +806,7 @@ main =
785 prop "P.takeWhile = Prelude.takeWhile" Main.takeWhile
806 prop "P.takeWhile = Prelude.takeWhile" Main.takeWhile
786 prop ("P.takeWhile1 = Prelude.takeWhile if taken something,"
807 prop ("P.takeWhile1 = Prelude.takeWhile if taken something,"
787 ++ " else check why failed") takeWhile1
808 ++ " else check why failed") takeWhile1
809+ prop "takeWhileP prd P.take = takeWhileMaxLen prd" takeWhileP
788 prop ("P.takeP = Prelude.take") takeP
810 prop ("P.takeP = Prelude.take") takeP
789 prop "P.groupBy = Prelude.head . Prelude.groupBy" groupBy
811 prop "P.groupBy = Prelude.head . Prelude.groupBy" groupBy
790 prop "many (P.wordBy ' ') = words'" wordBy
812 prop "many (P.wordBy ' ') = words'" wordBy