diff options
author | John MacFarlane <jgm@berkeley.edu> | 2011-01-29 11:24:16 -0800 |
---|---|---|
committer | John MacFarlane <jgm@berkeley.edu> | 2011-01-29 11:24:16 -0800 |
commit | 570d8ff08c7007c4fffd345c9bf2057201a0bdd4 (patch) | |
tree | 1e420ee65bbde87c52b714449622c5ef2adcd194 /tests/Tests/Arbitrary.hs | |
parent | fbf166b6c30a752047c7f49c20313421e3465009 (diff) | |
download | pandoc-570d8ff08c7007c4fffd345c9bf2057201a0bdd4.tar.gz |
Moved tests to src.
Diffstat (limited to 'tests/Tests/Arbitrary.hs')
-rw-r--r-- | tests/Tests/Arbitrary.hs | 181 |
1 files changed, 0 insertions, 181 deletions
diff --git a/tests/Tests/Arbitrary.hs b/tests/Tests/Arbitrary.hs deleted file mode 100644 index 978717bef..000000000 --- a/tests/Tests/Arbitrary.hs +++ /dev/null @@ -1,181 +0,0 @@ -{-# OPTIONS_GHC -fno-warn-orphans #-} -{-# LANGUAGE TypeSynonymInstances #-} --- provides Arbitrary instance for Pandoc types -module Tests.Arbitrary () -where -import Test.QuickCheck.Gen -import Test.QuickCheck.Arbitrary -import Control.Monad (liftM, liftM2) -import Text.Pandoc -import Text.Pandoc.Shared -import Text.Pandoc.Builder - -realString :: Gen String -realString = resize 8 arbitrary -- elements wordlist - -{- -wordlist :: [String] -wordlist = ["foo","Bar","baz","\\","/",":","\"","'","féé"] --} - -instance Arbitrary Inlines where - arbitrary = liftM fromList arbitrary - -instance Arbitrary Blocks where - arbitrary = liftM fromList arbitrary - -instance Arbitrary Inline where - arbitrary = resize 3 $ arbInline 3 - --- restrict to 3 levels of nesting max; otherwise we get --- bogged down in indefinitely large structures -arbInline :: Int -> Gen Inline -arbInline n = frequency $ [ (60, liftM Str realString) - , (60, return Space) - , (10, liftM2 Code arbitrary realString) - , (5, return EmDash) - , (5, return EnDash) - , (5, return Apostrophe) - , (5, return Ellipses) - , (5, elements [ RawInline "html" "<a>*&*</a>" - , RawInline "latex" "\\my{command}" ]) - ] ++ [ x | x <- nesters, n > 1] - where nesters = [ (10, liftM Emph $ listOf $ arbInline (n-1)) - , (10, liftM Strong $ listOf $ arbInline (n-1)) - , (10, liftM Strikeout $ listOf $ arbInline (n-1)) - , (10, liftM Superscript $ listOf $ arbInline (n-1)) - , (10, liftM Subscript $ listOf $ arbInline (n-1)) - , (10, liftM SmallCaps $ listOf $ arbInline (n-1)) - , (10, do x1 <- arbitrary - x2 <- listOf $ arbInline (n-1) - return $ Quoted x1 x2) - , (10, do x1 <- arbitrary - x2 <- realString - return $ Math x1 x2) - , (10, do x1 <- listOf $ arbInline (n-1) - x3 <- realString - x2 <- realString - return $ Link x1 (x2,x3)) - , (10, do x1 <- listOf $ arbInline (n-1) - x3 <- realString - x2 <- realString - return $ Image x1 (x2,x3)) - , (2, liftM Note $ resize 3 $ listOf1 arbitrary) - ] - -instance Arbitrary Block where - arbitrary = resize 3 $ arbBlock 3 - -arbBlock :: Int -> Gen Block -arbBlock n = frequency $ [ (10, liftM Plain arbitrary) - , (15, liftM Para arbitrary) - , (5, liftM2 CodeBlock arbitrary realString) - , (2, elements [ RawBlock "html" - "<div>\n*&*\n</div>" - , RawBlock "latex" - "\\begin[opt]{env}\nhi\n{\\end{env}" - ]) - , (5, do x1 <- choose (1 :: Int, 6) - x2 <- arbitrary - return (Header x1 x2)) - , (2, return HorizontalRule) - ] ++ [x | x <- nesters, n > 0] - where nesters = [ (5, liftM BlockQuote $ listOf $ arbBlock (n-1)) - , (5, liftM2 OrderedList arbitrary - $ (listOf1 $ listOf1 $ arbBlock (n-1))) - , (5, liftM BulletList $ (listOf1 $ listOf1 $ arbBlock (n-1))) - , (5, do x1 <- listOf $ listOf1 $ listOf1 $ arbBlock (n-1) - x2 <- arbitrary - return (DefinitionList $ zip x2 x1)) - , (2, do rs <- choose (1 :: Int, 4) - cs <- choose (1 :: Int, 4) - x1 <- arbitrary - x2 <- vector cs - x3 <- vectorOf cs $ elements [0, 0.25] - x4 <- vectorOf cs $ listOf $ arbBlock (n-1) - x5 <- vectorOf rs $ vectorOf cs - $ listOf $ arbBlock (n-1) - return (Table x1 x2 x3 x4 x5)) - ] - -instance Arbitrary Pandoc where - arbitrary = resize 8 $ liftM normalize - $ liftM2 Pandoc arbitrary arbitrary - -{- -instance Arbitrary CitationMode where - arbitrary - = do x <- choose (0 :: Int, 2) - case x of - 0 -> return AuthorInText - 1 -> return SuppressAuthor - 2 -> return NormalCitation - _ -> error "FATAL ERROR: Arbitrary instance, logic bug" - -instance Arbitrary Citation where - arbitrary - = do x1 <- liftM (filter (`notElem` ",;]@ \t\n")) arbitrary - x2 <- arbitrary - x3 <- arbitrary - x4 <- arbitrary - x5 <- arbitrary - x6 <- arbitrary - return (Citation x1 x2 x3 x4 x5 x6) --} - -instance Arbitrary MathType where - arbitrary - = do x <- choose (0 :: Int, 1) - case x of - 0 -> return DisplayMath - 1 -> return InlineMath - _ -> error "FATAL ERROR: Arbitrary instance, logic bug" - -instance Arbitrary QuoteType where - arbitrary - = do x <- choose (0 :: Int, 1) - case x of - 0 -> return SingleQuote - 1 -> return DoubleQuote - _ -> error "FATAL ERROR: Arbitrary instance, logic bug" - -instance Arbitrary Meta where - arbitrary - = do x1 <- arbitrary - x2 <- liftM (filter (not . null)) arbitrary - x3 <- arbitrary - return (Meta x1 x2 x3) - -instance Arbitrary Alignment where - arbitrary - = do x <- choose (0 :: Int, 3) - case x of - 0 -> return AlignLeft - 1 -> return AlignRight - 2 -> return AlignCenter - 3 -> return AlignDefault - _ -> error "FATAL ERROR: Arbitrary instance, logic bug" - -instance Arbitrary ListNumberStyle where - arbitrary - = do x <- choose (0 :: Int, 6) - case x of - 0 -> return DefaultStyle - 1 -> return Example - 2 -> return Decimal - 3 -> return LowerRoman - 4 -> return UpperRoman - 5 -> return LowerAlpha - 6 -> return UpperAlpha - _ -> error "FATAL ERROR: Arbitrary instance, logic bug" - -instance Arbitrary ListNumberDelim where - arbitrary - = do x <- choose (0 :: Int, 3) - case x of - 0 -> return DefaultDelim - 1 -> return Period - 2 -> return OneParen - 3 -> return TwoParens - _ -> error "FATAL ERROR: Arbitrary instance, logic bug" - |