packages feed

genvalidity-containers 0.1.0.0 → 0.1.0.1

raw patch · 2 files changed

+14/−13 lines, 2 files

Files

genvalidity-containers.cabal view
@@ -1,5 +1,5 @@ name:                genvalidity-containers-version:             0.1.0.0+version:             0.1.0.1 synopsis:            GenValidity support for containers description:         Please see README.md homepage:            https://github.com/NorfairKing/validity#readme
src/Data/GenValidity/Tree.hs view
@@ -13,21 +13,22 @@      -- | There should be at least one invalid element, either it's here or it's     -- further down the tree.-    genInvalid   = oneof-        [ Node <$> genInvalid   <*> genUnchecked-        , Node <$> genUnchecked <*> genInvalid-        ]+    genInvalid   = sized $ \n -> do+        size   <- upTo n+        (a, b) <- genSplit size+        oneof+            [ Node <$> resize a genInvalid   <*> resize b genUnchecked+            , Node <$> resize a genUnchecked <*> resize b genInvalid+            ]  -- | Generate a tree of values that are generated as specified. -- -- This takes the size parameter much better into account genTreeOf :: Gen a -> Gen (Tree a)-genTreeOf func = sized $ \n -> -- Sized is the size of the trees.-    case n of-        0 -> Node <$> func <*> pure []-        1 -> Node <$> func <*> pure []-        m -> do-            value <- func-            forest <- resize (m - 1) $ genListOf $ genTreeOf func-            return $ Node value forest+genTreeOf func = sized $ \n -> do+    size   <- upTo n+    (a, b) <- genSplit size+    value  <- resize a func+    forest <- resize b $ genListOf $ genTreeOf func+    return $ Node value forest