angle-0.8.1.0: tests/Test/Angle/Parse/Token.hs
module Test.Angle.Parse.Token
( tests
) where
import Numeric (showFFloat)
import Angle.Parse.Token
import TestHelper
testTokInt :: Int -> Bool
testTokInt x = evalParse (show x) tokInt == Right x
testTokFloat :: Double -> Bool
testTokFloat x = evalParse (showFFloat Nothing x "") tokFloat == Right x
testTokChar :: Char -> Bool
testTokChar c = evalParse (show c) tokChar == Right c
testTokCharAscii :: AsciiChar -> Bool
testTokCharAscii (AsciiChar c) = evalParse (show c) tokChar == Right c
newtype AsciiChar = AsciiChar Char
deriving (Show, Eq, Ord)
instance Arbitrary AsciiChar where
arbitrary = liftM AsciiChar (elements [toEnum 0..toEnum 128])
tests :: [TestTree]
tests = [ testGroup "numbers"
[ testProperty "integer" testTokInt
, testProperty "float" testTokFloat
]
, testGroup "strings and characters"
[ testProperty "tokChar" testTokChar
, testProperty "tokCharAscii" testTokCharAscii
]
]