hw-balancedparens 0.0.0.1 → 0.0.0.2
raw patch · 5 files changed
+61/−73 lines, 5 filesdep −bytestringdep −conduitdep −hw-string-parsePVP ok
version bump matches the API change (PVP)
Dependencies removed: bytestring, conduit, hw-string-parse, mmap, safe
API changes (from Hackage documentation)
Files
- LICENSE +26/−17
- app/Main.hs +0/−4
- bench/Main.hs +0/−6
- hw-balancedparens.cabal +5/−19
- test/HaskellWorks/Data/BalancedParens/RangeMinMaxSpec.hs +30/−27
LICENSE view
@@ -1,21 +1,30 @@-MIT License+Copyright John Ky (c) 2016 -Copyright (c) 2016 John Ky+All rights reserved. -Permission is hereby granted, free of charge, to any person obtaining a copy-of this software and associated documentation files (the "Software"), to deal-in the Software without restriction, including without limitation the rights-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell-copies of the Software, and to permit persons to whom the Software is-furnished to do so, subject to the following conditions:+Redistribution and use in source and binary forms, with or without+modification, are permitted provided that the following conditions are met: -The above copyright notice and this permission notice shall be included in all-copies or substantial portions of the Software.+ * Redistributions of source code must retain the above copyright+ notice, this list of conditions and the following disclaimer. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE-SOFTWARE.+ * Redistributions in binary form must reproduce the above+ copyright notice, this list of conditions and the following+ disclaimer in the documentation and/or other materials provided+ with the distribution.++ * Neither the name of Author name here nor the names of other+ contributors may be used to endorse or promote products derived+ from this software without specific prior written permission.++THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
− app/Main.hs
@@ -1,4 +0,0 @@-module Main where--main :: IO ()-main = putStrLn "Hello world"
bench/Main.hs view
@@ -10,7 +10,6 @@ import HaskellWorks.Data.Bits.Broadword import HaskellWorks.Data.Bits.FromBitTextByteString import HaskellWorks.Data.Naive-import HaskellWorks.Data.RankSelect.Base setupEnvVector :: Int -> IO (DVS.Vector Word64) setupEnvVector n = return $ DVS.fromList (take n (cycle [maxBound, 0]))@@ -64,11 +63,6 @@ ] , env (setupEnvVector 1000000) $ \bv -> bgroup "RangeMinMax" [ bench "findClose" (nf (map (findClose bv)) [0, 1000..10000000])- ]- , env (setupEnvVector 1000000) $ \bv -> bgroup "Rank"- [ bench "Rank - Once" (whnf (rank1 bv) 1)- , bench "Select - Once" (whnf (select1 bv) 1)- , bench "Rank - Many" (nf (map (rank1 bv)) [0, 1000..10000000]) ] ]
hw-balancedparens.cabal view
@@ -1,9 +1,9 @@ name: hw-balancedparens-version: 0.0.0.1-synopsis: Conduits for tokenizing streams.+version: 0.0.0.2+synopsis: Balanced parentheses description: Please see README.md homepage: http://github.com/haskell-works/hw-balancedparens#readme-license: MIT+license: BSD3 license-file: LICENSE author: John Ky maintainer: newhoggy@gmail.com@@ -13,14 +13,6 @@ extra-source-files: README.md cabal-version: >= 1.22 -executable hw-balancedparens-example- hs-source-dirs: app- main-is: Main.hs- ghc-options: -threaded -rtsopts -with-rtsopts=-N -O2 -Wall -msse4.2- build-depends: base >= 4 && < 5- , hw-balancedparens- default-language: Haskell2010- library hs-source-dirs: src exposed-modules: HaskellWorks.Data.BalancedParens@@ -43,8 +35,6 @@ , hw-excess >= 0.0.0.1 , hw-prim >= 0.3.0.5 , hw-rankselect-base >= 0.1.0.0- , hw-string-parse >= 0.0.0.2- , safe , vector default-language: Haskell2010@@ -60,9 +50,9 @@ , HaskellWorks.Data.BalancedParens.SimpleSpec build-depends: base >= 4 && < 5 , hspec+ , hw-balancedparens , hw-bits >= 0.3.0.0 , hw-prim >= 0.3.0.5- , hw-balancedparens , hw-rankselect-base >= 0.1.0.0 , QuickCheck , vector@@ -80,12 +70,8 @@ GHC-Options: -O2 -Wall -msse4.2 Default-Language: Haskell2010 Build-Depends: base >= 4 && < 5- , bytestring- , conduit , criterion+ , hw-balancedparens , hw-bits >= 0.3.0.0 , hw-prim >= 0.3.0.5- , hw-balancedparens- , hw-rankselect-base >= 0.1.0.0- , mmap , vector
test/HaskellWorks/Data/BalancedParens/RangeMinMaxSpec.hs view
@@ -7,11 +7,11 @@ import qualified Data.Vector.Storable as DVS import Data.Word--- import HaskellWorks.Data.BalancedParens--- import HaskellWorks.Data.BalancedParens.RangeMinMax--- import HaskellWorks.Data.Bits.BitLength+import HaskellWorks.Data.BalancedParens+import HaskellWorks.Data.BalancedParens.RangeMinMax+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 @@ -37,26 +37,29 @@ spec = describe "HaskellWorks.Data.BalancedParens.RangeMinMaxSpec" $ 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- -- 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 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- -- 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- -- forAll (vectorSizedBetween 1 factor) $ \(ShowVector v) -> do- -- forAll (choose (1, bitLength v)) $ \p -> do- -- let !rmm = mkRangeMinMax v- -- nextSibling rmm p `shouldBe` nextSibling v p+ 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+ quickCheckWith stdArgs { maxSuccess = 10 } $ 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+ 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+ forAll (vectorSizedBetween 1 factor) $ \(ShowVector v) -> do+ forAll (choose (1, bitLength v)) $ \p -> do+ let !rmm = mkRangeMinMax v+ nextSibling rmm p `shouldBe` nextSibling v p