packages feed

hspec-core 2.7.3 → 2.7.4

raw patch · 4 files changed

+37/−9 lines, 4 files

Files

hspec-core.cabal view
@@ -5,7 +5,7 @@ -- see: https://github.com/sol/hpack  name:             hspec-core-version:          2.7.3+version:          2.7.4 license:          MIT license-file:     LICENSE copyright:        (c) 2011-2019 Simon Hengel,
src/Test/Hspec/Core/Runner.hs view
@@ -317,10 +317,4 @@ randomizeForest :: Integer -> [Tree c a] -> [Tree c a] randomizeForest seed t = runST $ do   ref <- newSTRef (mkStdGen $ fromIntegral seed)-  mapM (randomizeTree ref) t--randomizeTree :: STRef s StdGen -> Tree c a -> ST s (Tree c a)-randomizeTree ref t = case t of-  Node d xs -> Node d <$> shuffle ref xs-  NodeWithCleanup c xs -> NodeWithCleanup c <$> shuffle ref xs-  Leaf {} -> return t+  shuffleForest ref t
src/Test/Hspec/Core/Shuffle.hs view
@@ -1,18 +1,29 @@ {-# LANGUAGE CPP #-} module Test.Hspec.Core.Shuffle (-  shuffle+  shuffleForest #ifdef TEST+, shuffle , mkArray #endif ) where  import           Prelude () import           Test.Hspec.Core.Compat+import           Test.Hspec.Core.Tree  import           System.Random import           Control.Monad.ST import           Data.STRef import           Data.Array.ST++shuffleForest :: STRef s StdGen -> [Tree c a] -> ST s [Tree c a]+shuffleForest ref xs = (shuffle ref xs >>= mapM (shuffleTree ref))++shuffleTree :: STRef s StdGen -> Tree c a -> ST s (Tree c a)+shuffleTree ref t = case t of+  Node d xs -> Node d <$> shuffleForest ref xs+  NodeWithCleanup c xs -> NodeWithCleanup c <$> shuffleForest ref xs+  Leaf {} -> return t  shuffle :: STRef s StdGen -> [a] -> ST s [a] shuffle ref xs = do
test/Test/Hspec/Core/ShuffleSpec.hs view
@@ -4,6 +4,7 @@ import           Helper  import qualified Test.Hspec.Core.Shuffle as H+import           Test.Hspec.Core.Tree  import           Data.Array.ST import           Control.Monad.ST@@ -12,6 +13,28 @@  spec :: Spec spec = do+  describe "shuffleForest" $ do+    let+      shuffleForest :: Int -> [Tree () Int] -> [Tree () Int]+      shuffleForest seed xs = runST $ do+        gen <- newSTRef (mkStdGen seed)+        H.shuffleForest gen xs++    it "shuffles a forest" $ do+      shuffleForest 2+        [Leaf 1, Leaf 2, Leaf 3] `shouldBe`+        [Leaf 3, Leaf 1, Leaf 2]++    it "recurses into Node" $ do+      shuffleForest 1+        [Node "foo" [Node "bar" [Leaf 1, Leaf 2, Leaf 3]]] `shouldBe`+        [Node "foo" [Node "bar" [Leaf 2, Leaf 3, Leaf 1]]]++    it "recurses into NodeWithCleanup" $ do+      shuffleForest 1+        [NodeWithCleanup () [NodeWithCleanup () [Leaf 1, Leaf 2, Leaf 3]]] `shouldBe`+        [NodeWithCleanup () [NodeWithCleanup () [Leaf 2, Leaf 3, Leaf 1]]]+   describe "shuffle" $ do     it "shuffles a list" $ do       runST $ do