packages feed

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 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