packages feed

quickcheck-regex 0.0.2 → 0.0.3

raw patch · 2 files changed

+9/−3 lines, 2 files

Files

quickcheck-regex.cabal view
@@ -1,5 +1,5 @@ Name:                quickcheck-regex-Version:             0.0.2+Version:             0.0.3 Homepage:            http://github.com/audreyt/quickcheck-regex/ Category:            QuickCheck, test, regex Synopsis:            Generate regex-constrained strings for QuickCheck
src/Test/QuickCheck/Regex.hs view
@@ -20,6 +20,10 @@ import Text.Regex.TDFA.ReadRegex (parseRegex) import qualified Data.Set as Set +minChar, maxChar :: Char+minChar = ' '+maxChar = '~'+ matching :: String -> Gen String matching regex = case parseRegex regex of     Left x -> fail $ show x@@ -31,7 +35,9 @@         POr ps      -> oneof (map go ps)         PConcat ps  -> concat `fmap` mapM go ps         PQuest p    -> oneof [return "", go p]-        PDot{}      -> (:[]) `fmap` arbitrary+        PDot{}      -> do+            n <- choose (fromEnum minChar, fromEnum maxChar)+            return [toEnum n]         PPlus p     -> concat `fmap` listOf (go p)         PStar _ p   -> concat `fmap` listOf1 (go p)         PBound low high p -> do@@ -43,7 +49,7 @@         PAnyNot{ getPatternSet = PatternSet (Just cset) _ _ _ } -> oneChar $ charExclude (Set.toList cset)         _           -> fail $ "Invalid pattern: " ++ show pat     oneChar = oneof . map (return . (:[]))-    charExclude = (['\0'..'\255'] \\)+    charExclude = ([minChar .. maxChar] \\)     expandEscape ch = case ch of         'n' -> "\n"         't' -> "\t"