From 4ac6cc5baad5287196fd7b886fdfa0375b1d1fa0 Mon Sep 17 00:00:00 2001 From: Hans-Peter Deifel Date: Sun, 23 Dec 2018 13:14:15 +0100 Subject: [PATCH] tests: Ensure queue size is always positive Queue.empty was being called with negative sizes --- tests/Data/BlockQueueSpec.hs | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/tests/Data/BlockQueueSpec.hs b/tests/Data/BlockQueueSpec.hs index c607417..0bbcff7 100644 --- a/tests/Data/BlockQueueSpec.hs +++ b/tests/Data/BlockQueueSpec.hs @@ -10,9 +10,6 @@ import Test.QuickCheck import Control.Monad.ST import qualified Data.List as List (delete) -import Data.Vector (Vector) -import qualified Data.Vector as V - import Data.BlockQueue import Data.RefinablePartition (Block(..)) @@ -24,10 +21,10 @@ spec = do emptySpec :: Spec emptySpec = describe "empty" $ do it "creates an empty queue" $ - property $ \sizes -> runST $ empty sizes >>= null + property $ \size -> size >= 0 ==> runST $ empty size >>= null it "creates a queue where no block is present" $ - property $ \size -> runST $ do + property $ \size -> size >= 0 ==> runST $ do q <- empty size all not <$> mapM (\b -> Block b `elem` q) [0..size-1] @@ -55,7 +52,3 @@ enqueueSpec = describe "enqueue" $ do Just 0 <- dequeue q null q in runST enqtwice `shouldBe` True - -instance Arbitrary a => Arbitrary (Vector a) where - arbitrary = V.fromList <$> arbitrary - shrink = fmap V.fromList . shrink . V.toList -- GitLab