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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113
|
--------------------------------------------------------------------------------
{-# LANGUAGE OverloadedLists #-}
module Language.Haskell.Stylish.Step.Squash.Tests
( tests
) where
--------------------------------------------------------------------------------
import Test.Framework (Test, testGroup)
import Test.Framework.Providers.HUnit (testCase)
import Test.HUnit (Assertion)
--------------------------------------------------------------------------------
import Language.Haskell.Stylish.Step.Squash
import Language.Haskell.Stylish.Tests.Util
--------------------------------------------------------------------------------
tests :: Test
tests = testGroup "Language.Haskell.Stylish.Step.SimpleSquash.Tests"
[ testCase "case 01" case01
, testCase "case 02" case02
, testCase "case 03" case03
, testCase "case 04" case04
, testCase "case 05" case05
, testCase "case 06 (issue #355)" case06
]
--------------------------------------------------------------------------------
case01 :: Assertion
case01 = assertSnippet step
[ "data Foo = Foo"
, " { foo :: Int"
, " , barqux :: String"
, " } deriving (Show)"
]
[ "data Foo = Foo"
, " { foo :: Int"
, " , barqux :: String"
, " } deriving (Show)"
]
--------------------------------------------------------------------------------
case02 :: Assertion
case02 = assertSnippet step
[ "data Foo = Foo"
, " { fooqux"
, " , bar :: String"
, " } deriving (Show)"
]
[ "data Foo = Foo"
, " { fooqux"
, " , bar :: String"
, " } deriving (Show)"
]
--------------------------------------------------------------------------------
case03 :: Assertion
case03 = assertSnippet step
[ "maybe y0 f mx ="
, " case mx of"
, " Nothing -> y0"
, " Just x -> f x"
]
[ "maybe y0 f mx ="
, " case mx of"
, " Nothing -> y0"
, " Just x -> f x"
]
--------------------------------------------------------------------------------
case04 :: Assertion
case04 = assertSnippet step
[ "maybe y0 f mx ="
, " case mx of"
, " Nothing ->"
, " y0"
, " Just x ->"
, " f x"
]
[ "maybe y0 f mx ="
, " case mx of"
, " Nothing ->"
, " y0"
, " Just x ->"
, " f x"
]
--------------------------------------------------------------------------------
case05 :: Assertion
case05 = assertSnippet step
[ "maybe y0 _ Nothing = y"
, "maybe _ f (Just x) = f x"
]
[ "maybe y0 _ Nothing = y"
, "maybe _ f (Just x) = f x"
]
--------------------------------------------------------------------------------
-- See <https://github.com/haskell/stylish-haskell/issues/355>
case06 :: Assertion
case06 = assertSnippet step
[ "main = (\\x -> putStrLn x) \"Hello, World!\""
]
[ "main = (\\x -> putStrLn x) \"Hello, World!\""
]
|