File: Extra.hs

package info (click to toggle)
haskell-unicode-transforms 0.4.0.1-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 3,312 kB
  • sloc: haskell: 786; sh: 15; makefile: 7
file content (31 lines) | stat: -rw-r--r-- 794 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
module Main (main) where

import Data.Text.Normalize (NormalizationMode(NFD))
import QuickCheckUtils ()
import Test.QuickCheck (quickCheck)

-- Misc, trivial, boundary test cases

t_eq :: NormalizationMode -> Bool
t_eq mode = mode == NFD || mode /= NFD

t_enum :: NormalizationMode -> Bool
t_enum mode = mode == toEnum (fromEnum mode)
    && if (fromEnum mode == 0)
          then length (enumFromThen mode (succ mode)) /= 0
          else succ (pred mode) == mode
    && length (enumFrom mode) /= 0

t_show :: NormalizationMode -> Bool
t_show mode =
       not (null (showsPrec 0 mode "x"))
    && not (null (show mode))
    && not (null (showList [mode] "x"))


main :: IO ()
main = do
    -- test "NormalizationMode" instances
    quickCheck t_eq
    quickCheck t_enum
    quickCheck t_show