hw-balancedparens 0.0.0.2 → 0.1.0.0
raw patch · 3 files changed
+95/−104 lines, 3 filesdep ~hw-bitsdep ~hw-excessdep ~hw-primPVP ok
version bump matches the API change (PVP)
Dependency ranges changed: hw-bits, hw-excess, hw-prim, hw-rankselect-base
API changes (from Hackage documentation)
Files
- hw-balancedparens.cabal +11/−11
- test/HaskellWorks/Data/BalancedParens/RangeMinMax2Spec.hs +75/−84
- test/HaskellWorks/Data/BalancedParens/RangeMinMaxSpec.hs +9/−9
hw-balancedparens.cabal view
@@ -1,5 +1,5 @@ name: hw-balancedparens-version: 0.0.0.2+version: 0.1.0.0 synopsis: Balanced parentheses description: Please see README.md homepage: http://github.com/haskell-works/hw-balancedparens#readme@@ -8,7 +8,7 @@ author: John Ky maintainer: newhoggy@gmail.com copyright: 2016 John Ky-category: Data, Conduit+category: Data build-type: Simple extra-source-files: README.md cabal-version: >= 1.22@@ -31,10 +31,10 @@ , HaskellWorks.Data.BalancedParens.RangeMinMax2 , HaskellWorks.Data.BalancedParens.Simple build-depends: base >= 4 && < 5- , hw-bits >= 0.3.0.0- , hw-excess >= 0.0.0.1- , hw-prim >= 0.3.0.5- , hw-rankselect-base >= 0.1.0.0+ , hw-bits >= 0.4.0.0+ , hw-excess >= 0.1.0.0+ , hw-prim >= 0.4.0.0+ , hw-rankselect-base >= 0.2.0.0 , vector default-language: Haskell2010@@ -51,9 +51,9 @@ build-depends: base >= 4 && < 5 , hspec , hw-balancedparens- , hw-bits >= 0.3.0.0- , hw-prim >= 0.3.0.5- , hw-rankselect-base >= 0.1.0.0+ , hw-bits >= 0.4.0.0+ , hw-prim >= 0.4.0.0+ , hw-rankselect-base >= 0.2.0.0 , QuickCheck , vector ghc-options: -threaded -rtsopts -with-rtsopts=-N -Wall@@ -72,6 +72,6 @@ Build-Depends: base >= 4 && < 5 , criterion , hw-balancedparens- , hw-bits >= 0.3.0.0- , hw-prim >= 0.3.0.5+ , hw-bits >= 0.4.0.0+ , hw-prim >= 0.4.0.0 , vector
test/HaskellWorks/Data/BalancedParens/RangeMinMax2Spec.hs view
@@ -7,12 +7,12 @@ import qualified Data.Vector.Storable as DVS import Data.Word--- import HaskellWorks.Data.BalancedParens--- import HaskellWorks.Data.BalancedParens.RangeMinMax+import HaskellWorks.Data.BalancedParens+import HaskellWorks.Data.BalancedParens.RangeMinMax -- import HaskellWorks.Data.BalancedParens.RangeMinMax2 -- import HaskellWorks.Data.Bits.BitLength import HaskellWorks.Data.Bits.BitShow--- import HaskellWorks.Data.Bits.FromBitTextByteString+import HaskellWorks.Data.Bits.FromBitTextByteString import Test.Hspec import Test.QuickCheck @@ -36,83 +36,93 @@ spec :: Spec spec = describe "HaskellWorks.Data.BalancedParens.RangeMinMaxSpec2" $ do- it "Skip tests" $ do- True `shouldBe` True- -- it "For a simple bit string can find close" $ do- -- let v = fromBitTextByteString "11101111 10100101 01111110 10110010 10111011 10111011 00011111 11011100" :: DVS.Vector Word64- -- let !rmm = mkRangeMinMax v- -- findClose rmm 61 `shouldBe` findClose v 61+ -- let maxSuccessDefault = 5+ it "For a simple bit string can find close" $ do+ let v = fromBitTextByteString "11101111 10100101 01111110 10110010 10111011 10111011 00011111 11011100" :: DVS.Vector Word64+ let !rmm = mkRangeMinMax v+ findClose rmm 61 `shouldBe` findClose v 61 -- it "findClose should return the same result" $ do- -- forAll (vectorSizedBetween 1 4) $ \(ShowVector v) -> do- -- let !rmm = mkRangeMinMax v- -- let len = bitLength v- -- [findClose rmm i | i <- [1..len]] `shouldBe `[findClose v i | i <- [1..len]]- -- it "findClose should return the same result over all counts" $ do- -- forAll (vectorSizedBetween 1 maxVectorSize) $ \(ShowVector v) -> do- -- forAll (choose (1, bitLength v)) $ \p -> do+ -- quickCheckWith stdArgs { maxSuccess = maxSuccessDefault } $ do+ -- forAll (vectorSizedBetween 1 4) $ \(ShowVector v) -> do -- let !rmm = mkRangeMinMax v- -- findClose rmm p `shouldBe` findClose v p+ -- let len = bitLength v+ -- [findClose rmm i | i <- [1..len]] `shouldBe `[findClose v i | i <- [1..len]]+ -- it "findClose should return the same result over all counts" $ do+ -- quickCheckWith stdArgs { maxSuccess = maxSuccessDefault } $ do+ -- forAll (vectorSizedBetween 1 maxVectorSize) $ \(ShowVector v) -> do+ -- forAll (choose (1, bitLength v)) $ \p -> do+ -- let !rmm = mkRangeMinMax v+ -- findClose rmm p `shouldBe` findClose v p -- it "nextSibling should return the same result" $ do -- forAll (vectorSizedBetween 1 maxVectorSize) $ \(ShowVector v) -> do -- let !rmm = mkRangeMinMax v -- nextSibling rmm 0 `shouldBe` nextSibling v 0 -- it "nextSibling should return the same result over all counts" $ do- -- forAll (vectorSizedBetween 1 maxVectorSize) $ \(ShowVector v) -> do- -- forAll (choose (1, bitLength v)) $ \p -> do- -- let !rmm = mkRangeMinMax v- -- nextSibling rmm p `shouldBe` nextSibling v p- -- it "Pass" $ do- -- True `shouldBe` True+ -- quickCheckWith stdArgs { maxSuccess = maxSuccessDefault } $ do+ -- forAll (vectorSizedBetween 1 maxVectorSize) $ \(ShowVector v) -> do+ -- forAll (choose (1, bitLength v)) $ \p -> do+ -- let !rmm = mkRangeMinMax v+ -- nextSibling rmm p `shouldBe` nextSibling v p -- it "rangeMinMaxBP should match" $ do- -- forAll (vectorSizedBetween 1 maxVectorSize) $ \(ShowVector v) -> do- -- let !rmm1 = mkRangeMinMax v- -- let !rmm2 = mkRangeMinMax2 v- -- rangeMinMax2BP rmm2 `shouldBe` rangeMinMaxBP rmm1+ -- quickCheckWith stdArgs { maxSuccess = maxSuccessDefault } $ do+ -- forAll (vectorSizedBetween 1 maxVectorSize) $ \(ShowVector v) -> do+ -- let !rmm1 = mkRangeMinMax v+ -- let !rmm2 = mkRangeMinMax2 v+ -- rangeMinMax2BP rmm2 `shouldBe` rangeMinMaxBP rmm1 -- it "rangeMinMaxL0Excess should match" $ do- -- forAll (vectorSizedBetween 1 maxVectorSize) $ \(ShowVector v) -> do- -- let !rmm1 = mkRangeMinMax v- -- let !rmm2 = mkRangeMinMax2 v- -- rangeMinMax2L0Excess rmm2 `shouldBe` rangeMinMaxL0Excess rmm1+ -- quickCheckWith stdArgs { maxSuccess = maxSuccessDefault } $ do+ -- forAll (vectorSizedBetween 1 maxVectorSize) $ \(ShowVector v) -> do+ -- let !rmm1 = mkRangeMinMax v+ -- let !rmm2 = mkRangeMinMax2 v+ -- rangeMinMax2L0Excess rmm2 `shouldBe` rangeMinMaxL0Excess rmm1 -- it "rangeMinMaxL0Min should match" $ do- -- forAll (vectorSizedBetween 1 maxVectorSize) $ \(ShowVector v) -> do- -- let !rmm1 = mkRangeMinMax v- -- let !rmm2 = mkRangeMinMax2 v- -- rangeMinMax2L0Min rmm2 `shouldBe` rangeMinMaxL0Min rmm1+ -- quickCheckWith stdArgs { maxSuccess = maxSuccessDefault } $ do+ -- forAll (vectorSizedBetween 1 maxVectorSize) $ \(ShowVector v) -> do+ -- let !rmm1 = mkRangeMinMax v+ -- let !rmm2 = mkRangeMinMax2 v+ -- rangeMinMax2L0Min rmm2 `shouldBe` rangeMinMaxL0Min rmm1 -- it "rangeMinMaxL0Max should match" $ do- -- forAll (vectorSizedBetween 1 maxVectorSize) $ \(ShowVector v) -> do- -- let !rmm1 = mkRangeMinMax v- -- let !rmm2 = mkRangeMinMax2 v- -- rangeMinMax2L0Max rmm2 `shouldBe` rangeMinMaxL0Max rmm1+ -- quickCheckWith stdArgs { maxSuccess = maxSuccessDefault } $ do+ -- forAll (vectorSizedBetween 1 maxVectorSize) $ \(ShowVector v) -> do+ -- let !rmm1 = mkRangeMinMax v+ -- let !rmm2 = mkRangeMinMax2 v+ -- rangeMinMax2L0Max rmm2 `shouldBe` rangeMinMaxL0Max rmm1 -- it "rangeMinMaxL1Min should match" $ do- -- forAll (vectorSizedBetween 1 maxVectorSize) $ \(ShowVector v) -> do- -- let !rmm1 = mkRangeMinMax v- -- let !rmm2 = mkRangeMinMax2 v- -- rangeMinMax2L1Min rmm2 `shouldBe` rangeMinMaxL1Min rmm1+ -- quickCheckWith stdArgs { maxSuccess = maxSuccessDefault } $ do+ -- forAll (vectorSizedBetween 1 maxVectorSize) $ \(ShowVector v) -> do+ -- let !rmm1 = mkRangeMinMax v+ -- let !rmm2 = mkRangeMinMax2 v+ -- rangeMinMax2L1Min rmm2 `shouldBe` rangeMinMaxL1Min rmm1 -- it "rangeMinMaxL1Max should match" $ do- -- forAll (vectorSizedBetween 1 maxVectorSize) $ \(ShowVector v) -> do- -- let !rmm1 = mkRangeMinMax v- -- let !rmm2 = mkRangeMinMax2 v- -- rangeMinMax2L1Max rmm2 `shouldBe` rangeMinMaxL1Max rmm1+ -- quickCheckWith stdArgs { maxSuccess = maxSuccessDefault } $ do+ -- forAll (vectorSizedBetween 1 maxVectorSize) $ \(ShowVector v) -> do+ -- let !rmm1 = mkRangeMinMax v+ -- let !rmm2 = mkRangeMinMax2 v+ -- rangeMinMax2L1Max rmm2 `shouldBe` rangeMinMaxL1Max rmm1 -- it "rangeMinMaxL1Excess should match" $ do- -- forAll (vectorSizedBetween 1 maxVectorSize) $ \(ShowVector v) -> do- -- let !rmm1 = mkRangeMinMax v- -- let !rmm2 = mkRangeMinMax2 v- -- rangeMinMax2L1Excess rmm2 `shouldBe` rangeMinMaxL1Excess rmm1+ -- quickCheckWith stdArgs { maxSuccess = maxSuccessDefault } $ do+ -- forAll (vectorSizedBetween 1 maxVectorSize) $ \(ShowVector v) -> do+ -- let !rmm1 = mkRangeMinMax v+ -- let !rmm2 = mkRangeMinMax2 v+ -- rangeMinMax2L1Excess rmm2 `shouldBe` rangeMinMaxL1Excess rmm1 -- it "rangeMinMaxL2Min should match" $ do- -- forAll (vectorSizedBetween 1 maxVectorSize) $ \(ShowVector v) -> do- -- let !rmm1 = mkRangeMinMax v- -- let !rmm2 = mkRangeMinMax2 v- -- rangeMinMax2L2Min rmm2 `shouldBe` rangeMinMaxL2Min rmm1+ -- quickCheckWith stdArgs { maxSuccess = maxSuccessDefault } $ do+ -- forAll (vectorSizedBetween 1 maxVectorSize) $ \(ShowVector v) -> do+ -- let !rmm1 = mkRangeMinMax v+ -- let !rmm2 = mkRangeMinMax2 v+ -- rangeMinMax2L2Min rmm2 `shouldBe` rangeMinMaxL2Min rmm1 -- it "rangeMinMaxL2Max should match" $ do- -- forAll (vectorSizedBetween 1 maxVectorSize) $ \(ShowVector v) -> do- -- let !rmm1 = mkRangeMinMax v- -- let !rmm2 = mkRangeMinMax2 v- -- rangeMinMax2L2Max rmm2 `shouldBe` rangeMinMaxL2Max rmm1+ -- quickCheckWith stdArgs { maxSuccess = maxSuccessDefault } $ do+ -- forAll (vectorSizedBetween 1 maxVectorSize) $ \(ShowVector v) -> do+ -- let !rmm1 = mkRangeMinMax v+ -- let !rmm2 = mkRangeMinMax2 v+ -- rangeMinMax2L2Max rmm2 `shouldBe` rangeMinMaxL2Max rmm1 -- it "rangeMinMaxL2Excess should match" $ do- -- forAll (vectorSizedBetween 1 maxVectorSize) $ \(ShowVector v) -> do- -- let !rmm1 = mkRangeMinMax v- -- let !rmm2 = mkRangeMinMax2 v- -- rangeMinMax2L2Excess rmm2 `shouldBe` rangeMinMaxL2Excess rmm1+ -- quickCheckWith stdArgs { maxSuccess = maxSuccessDefault } $ do+ -- forAll (vectorSizedBetween 1 maxVectorSize) $ \(ShowVector v) -> do+ -- let !rmm1 = mkRangeMinMax v+ -- let !rmm2 = mkRangeMinMax2 v+ -- rangeMinMax2L2Excess rmm2 `shouldBe` rangeMinMaxL2Excess rmm1 -- describe "For example long bit string" $ do -- let v = fromBitTextByteString " \ -- \ 01101101 01111100 10011111 01100101 11111100 01101111 00000000 00000000 10001010 11000000 01000010 01010010 01001101 01000101 00000000 00000000 \@@ -123,30 +133,11 @@ -- rangeMinMax2L0Max rmm2 `shouldBe` rangeMinMaxL0Max rmm1 -- it "l1 max matches" $ do -- rangeMinMax2L1Max rmm2 `shouldBe` rangeMinMaxL1Max rmm1- -- it "l2 max matches" $ do- -- rangeMinMax2L2Max rmm2 `shouldBe` rangeMinMaxL2Max rmm1+ -- -- it "l2 max matches" $ do+ -- -- rangeMinMax2L2Max rmm2 `shouldBe` rangeMinMaxL2Max rmm1 -- it "l0 min matches" $ do -- rangeMinMax2L0Min rmm2 `shouldBe` rangeMinMaxL0Min rmm1 -- it "l1 min matches" $ do -- rangeMinMax2L1Min rmm2 `shouldBe` rangeMinMaxL1Min rmm1 -- it "l2 min matches" $ do- -- putStrLn $ "--> data: " ++ show (BitShown (DVS.take 80 v))- -- putStrLn $ "--> rangeMinMaxAL0Min: " ++ show (DVS.take 80 (rangeMinMaxL0Min rmm1))- -- putStrLn $ "--> rangeMinMaxAL0Max: " ++ show (DVS.take 80 (rangeMinMaxL0Max rmm1))- -- putStrLn $ "--> rangeMinMaxAL0Excess: " ++ show (DVS.take 80 (rangeMinMaxL0Excess rmm1))- -- putStrLn $ "--> rangeMinMaxBL0Min: " ++ show (DVS.take 80 (rangeMinMax2L0Min rmm2))- -- putStrLn $ "--> rangeMinMaxBL0Max: " ++ show (DVS.take 80 (rangeMinMax2L0Max rmm2))- -- putStrLn $ "--> rangeMinMaxBL0Excess: " ++ show (DVS.take 80 (rangeMinMax2L0Excess rmm2))- -- putStrLn $ "--> rangeMinMaxAL1Min: " ++ show (DVS.take 80 (rangeMinMaxL1Min rmm1))- -- putStrLn $ "--> rangeMinMaxAL1Max: " ++ show (DVS.take 80 (rangeMinMaxL1Max rmm1))- -- putStrLn $ "--> rangeMinMaxAL1Excess: " ++ show (DVS.take 80 (rangeMinMaxL1Excess rmm1))- -- putStrLn $ "--> rangeMinMaxBL1Min: " ++ show (DVS.take 80 (rangeMinMax2L1Min rmm2))- -- putStrLn $ "--> rangeMinMaxBL1Max: " ++ show (DVS.take 80 (rangeMinMax2L1Max rmm2))- -- putStrLn $ "--> rangeMinMaxBL1Excess: " ++ show (DVS.take 80 (rangeMinMax2L1Excess rmm2))- -- putStrLn $ "--> rangeMinMaxAL2Min: " ++ show (DVS.take 80 (rangeMinMaxL2Min rmm1))- -- putStrLn $ "--> rangeMinMaxAL2Max: " ++ show (DVS.take 80 (rangeMinMaxL2Max rmm1))- -- putStrLn $ "--> rangeMinMaxAL2Excess: " ++ show (DVS.take 80 (rangeMinMaxL2Excess rmm1))- -- putStrLn $ "--> rangeMinMaxBL2Min: " ++ show (DVS.take 80 (rangeMinMax2L2Min rmm2))- -- putStrLn $ "--> rangeMinMaxBL2Max: " ++ show (DVS.take 80 (rangeMinMax2L2Max rmm2))- -- putStrLn $ "--> rangeMinMaxBL2Excess: " ++ show (DVS.take 80 (rangeMinMax2L2Excess rmm2)) -- rangeMinMax2L2Min rmm2 `shouldBe` rangeMinMaxL2Min rmm1
test/HaskellWorks/Data/BalancedParens/RangeMinMaxSpec.hs view
@@ -35,30 +35,30 @@ spec :: Spec spec = describe "HaskellWorks.Data.BalancedParens.RangeMinMaxSpec" $ do- it "Skip tests" $ do- True `shouldBe` True+ let defaultMaxSuccess = 5 it "For a simple bit string can find close" $ do let v = fromBitTextByteString "11101111 10100101 01111110 10110010 10111011 10111011 00011111 11011100" :: DVS.Vector Word64 let !rmm = mkRangeMinMax v findClose rmm 61 `shouldBe` findClose v 61 it "findClose should return the same result" $ do- forAll (vectorSizedBetween 1 4) $ \(ShowVector v) -> do- let !rmm = mkRangeMinMax v- let len = bitLength v- [findClose rmm i | i <- [1..len]] `shouldBe `[findClose v i | i <- [1..len]]+ quickCheckWith stdArgs { maxSuccess = defaultMaxSuccess } $ do+ forAll (vectorSizedBetween 1 4) $ \(ShowVector v) -> do+ let !rmm = mkRangeMinMax v+ let len = bitLength v+ [findClose rmm i | i <- [1..len]] `shouldBe `[findClose v i | i <- [1..len]] it "findClose should return the same result over all counts" $ do- quickCheckWith stdArgs { maxSuccess = 10 } $ do+ quickCheckWith stdArgs { maxSuccess = defaultMaxSuccess } $ do forAll (vectorSizedBetween 1 factor) $ \(ShowVector v) -> do forAll (choose (1, bitLength v)) $ \p -> do let !rmm = mkRangeMinMax v findClose rmm p `shouldBe` findClose v p it "nextSibling should return the same result" $ do- quickCheckWith stdArgs { maxSuccess = 10 } $ do+ quickCheckWith stdArgs { maxSuccess = defaultMaxSuccess } $ do forAll (vectorSizedBetween 1 factor) $ \(ShowVector v) -> do let !rmm = mkRangeMinMax v nextSibling rmm 0 `shouldBe` nextSibling v 0 it "nextSibling should return the same result over all counts" $ do- quickCheckWith stdArgs { maxSuccess = 10 } $ do+ quickCheckWith stdArgs { maxSuccess = defaultMaxSuccess } $ do forAll (vectorSizedBetween 1 factor) $ \(ShowVector v) -> do forAll (choose (1, bitLength v)) $ \p -> do let !rmm = mkRangeMinMax v