module Char8Spec where import qualified Data.Char as C import Data.Char8 import Test.Hspec import Test.Hspec.QuickCheck spec :: Spec spec = do describe "isControl" $ do prop "behaves like model" $ \c -> isControl c == C.isControl c describe "isSpace" $ do prop "behaves like model" $ \c -> isSpace c == C.isSpace c describe "isLower" $ do prop "behaves like model" $ \c -> isLower c == C.isLower c describe "isUpper" $ do prop "behaves like model" $ \c -> isUpper c == C.isUpper c describe "isAlpha" $ do prop "behaves like model" $ \c -> isAlpha c == C.isAlpha c describe "isAlphaNum" $ do prop "behaves like model" $ \c -> isAlphaNum c == C.isAlphaNum c describe "isPrint" $ do prop "behaves like model" $ \c -> isPrint c == C.isPrint c describe "isDigit" $ do prop "behaves like model" $ \c -> isDigit c == C.isDigit c describe "isOctDigit" $ do prop "behaves like model" $ \c -> isOctDigit c == C.isOctDigit c describe "isHexDigit" $ do prop "behaves like model" $ \c -> isHexDigit c == C.isHexDigit c describe "isLetter" $ do prop "behaves like model" $ \c -> isLetter c == C.isLetter c describe "isMark" $ do prop "behaves like model" $ \c -> isMark c == C.isMark c describe "isNumber" $ do prop "behaves like model" $ \c -> isNumber c == C.isNumber c describe "isPunctuation" $ do prop "behaves like model" $ \c -> isPunctuation c == C.isPunctuation c describe "isSymbol" $ do prop "behaves like model" $ \c -> isSymbol c == C.isSymbol c describe "isSeparator" $ do prop "behaves like model" $ \c -> isSeparator c == C.isSeparator c describe "isAscii" $ do prop "behaves like model" $ \c -> isAscii c == C.isAscii c describe "isLatin1" $ do prop "behaves like model" $ \c -> isLatin1 c == C.isLatin1 c describe "isAsciiUpper" $ do prop "behaves like model" $ \c -> isAsciiUpper c == C.isAsciiUpper c describe "isAsciiLower" $ do prop "behaves like model" $ \c -> isAsciiLower c == C.isAsciiLower c describe "toUpper" $ do prop "behaves like model" $ prop_toUpper describe "toLower" $ do prop "behaves like model" $ \c -> toLower c == C.toLower c describe "toTitle" $ do prop "behaves like model" $ prop_toTitle prop_toUpper :: Char -> Bool prop_toUpper c | c == _mu = True | c == _ydieresis = True | otherwise = toUpper c == C.toUpper c prop_toTitle :: Char -> Bool prop_toTitle c | c == _mu = True | c == _ydieresis = True | otherwise = toTitle c == C.toTitle c ---------------------------------------------------------------- _mu, _ydieresis :: Char _mu = '\xb5' _ydieresis = '\xff'