added failing tests for #35, disabled by default
authormrkkrp <markkarpov@opmbx.org>
Sun, 5 Jul 2015 11:22:49 +0000 (17:22 +0600)
committerHarry Garrood <harry@garrood.me>
Fri, 13 May 2016 00:30:02 +0000 (01:30 +0100)
test/Bugs.hs
test/Bugs/Bug35.hs [new file with mode: 0644]

index 17c0a9b..53facf6 100644 (file)
@@ -8,9 +8,11 @@ import Test.Framework
 import qualified Bugs.Bug2
 import qualified Bugs.Bug6
 import qualified Bugs.Bug9
+-- import qualified Bugs.Bug35
 
 bugs :: [Test]
 bugs = [ Bugs.Bug2.main
        , Bugs.Bug6.main
        , Bugs.Bug9.main
+       -- , Bugs.Bug35.main
        ]
diff --git a/test/Bugs/Bug35.hs b/test/Bugs/Bug35.hs
new file mode 100644 (file)
index 0000000..ee2bbf0
--- /dev/null
@@ -0,0 +1,40 @@
+
+module Bugs.Bug35 (main) where
+
+import Text.Parsec
+import Text.Parsec.Language
+import Text.Parsec.String
+import qualified Text.Parsec.Token as Token
+
+import Test.HUnit hiding (Test)
+import Test.Framework
+import Test.Framework.Providers.HUnit
+
+trickyFloats :: [String]
+trickyFloats =
+    [ "1.5339794352098402e-118"
+    , "2.108934760892056e-59"
+    , "2.250634744599241e-19"
+    , "5.0e-324"
+    , "5.960464477539063e-8"
+    , "0.25996181067141905"
+    , "0.3572019862807257"
+    , "0.46817723004874223"
+    , "0.9640035681058178"
+    , "4.23808622486133"
+    , "4.540362294799751"
+    , "5.212384849884261"
+    , "13.958257048123212"
+    , "32.96176575630599"
+    , "38.47735512322269"
+    ]
+
+float :: Parser Double
+float = Token.float (Token.makeTokenParser emptyDef)
+
+testBatch :: Assertion
+testBatch = mapM_ testFloat trickyFloats
+    where testFloat x = parse float "" x @?= Right (read x :: Double)
+
+main :: Test
+main = testCase "Quality of output of Text.Parsec.Token.float (#35)" testBatch