@@ -2,21 +2,21 @@ module Test.Main where
2
2
3
3
import Prelude
4
4
5
- import Control.Monad.Eff (Eff ())
6
5
import Control.Monad.Eff.Console (log )
7
- import Data.Maybe (Maybe (..))
8
- import Data.Maybe.Unsafe (fromJust )
6
+
7
+ import Data.Argonaut.Core (Json , JNull , toObject , toArray , toString , toNumber , toBoolean , toNull , fromObject , foldJsonObject , fromNumber , fromArray , foldJsonArray , fromString , foldJsonString , foldJsonNumber , fromBoolean , foldJsonBoolean , fromNull , foldJsonNull , foldJson , isObject , isArray , isString , isNumber , isBoolean , isNull )
8
+ import Data.Argonaut.Parser (jsonParser )
9
+ import Data.Argonaut.Printer (printJson )
10
+ import Data.Array as A
9
11
import Data.Either (isLeft , isRight , Either (..))
10
- import Data.Tuple (Tuple (..))
11
12
import Data.Foldable (for_ )
12
- import qualified Data.Array as A
13
- import qualified Data.StrMap as M
13
+ import Data.Maybe (Maybe (..), fromJust )
14
+ import Data.StrMap as M
15
+ import Data.Tuple (Tuple (..))
14
16
15
- import Data.Argonaut.Core
16
- import Data.Argonaut.Parser
17
- import Data.Argonaut.Printer
17
+ import Partial.Unsafe (unsafePartial )
18
18
19
- import Test.StrongCheck (assert , (<?>), quickCheck , Result ())
19
+ import Test.StrongCheck (SC , assert , (<?>), quickCheck , Result ())
20
20
21
21
foreign import thisIsNull :: Json
22
22
foreign import thisIsBoolean :: Json
@@ -26,7 +26,7 @@ foreign import thisIsArray :: Json
26
26
foreign import thisIsObject :: Json
27
27
foreign import nil :: JNull
28
28
29
- isTest :: Eff _ Unit
29
+ isTest :: SC () Unit
30
30
isTest = do
31
31
assert (isNull thisIsNull <?> " Error in null test" )
32
32
assert (isBoolean thisIsBoolean <?> " Error in boolean test" )
@@ -35,7 +35,7 @@ isTest = do
35
35
assert (isArray thisIsArray <?> " Error in array test" )
36
36
assert (isObject thisIsObject <?> " Error in object test" )
37
37
38
- foldTest :: Eff _ Unit
38
+ foldTest :: SC () Unit
39
39
foldTest = do
40
40
assert (foldFn thisIsNull == " null" <?> " Error in foldJson null" )
41
41
assert (foldFn thisIsBoolean == " boolean" <?> " Error in foldJson boolean" )
@@ -44,7 +44,6 @@ foldTest = do
44
44
assert (foldFn thisIsArray == " array" <?> " Error in foldJson array" )
45
45
assert (foldFn thisIsObject == " object" <?> " Error in foldJson object" )
46
46
47
-
48
47
foldFn :: Json -> String
49
48
foldFn = foldJson
50
49
(const " null" )
@@ -55,7 +54,7 @@ foldFn = foldJson
55
54
(const " object" )
56
55
57
56
cases :: Array Json
58
- cases =
57
+ cases =
59
58
[ thisIsNull
60
59
, thisIsBoolean
61
60
, thisIsNumber
@@ -64,7 +63,7 @@ cases =
64
63
, thisIsObject
65
64
]
66
65
67
- foldXXX :: Eff _ Unit
66
+ foldXXX :: SC () Unit
68
67
foldXXX = do
69
68
assert ((foldJsonNull " not null" (const " null" ) <$> cases) ==
70
69
[" null" , " not null" , " not null" , " not null" , " not null" , " not null" ] <?>
@@ -88,7 +87,7 @@ foldXXX = do
88
87
" Error in foldJsonObject" )
89
88
90
89
91
- fromTest :: Eff _ Unit
90
+ fromTest :: SC () Unit
92
91
fromTest = do
93
92
assert ((foldJsonNull false (const true ) (fromNull nil)) <?> " Error in fromNull" )
94
93
quickCheck (\bool -> foldJsonBoolean Nothing Just (fromBoolean bool) == Just bool <?> " Error in fromBoolean" )
@@ -105,7 +104,7 @@ fromTest = do
105
104
in (foldJsonObject Nothing Just (fromObject sm) == Just sm)
106
105
<?> " Error in fromObject" )
107
106
108
- toTest :: Eff _ Unit
107
+ toTest :: SC () Unit
109
108
toTest = do
110
109
assert (assertion toNull thisIsNull " Error in toNull" )
111
110
assert (assertion toBoolean thisIsBoolean " Error in toBoolean" )
@@ -117,25 +116,25 @@ toTest = do
117
116
assertion :: forall a . (Eq a ) => (Json -> Maybe a ) -> Json -> String -> Result
118
117
assertion fn j msg =
119
118
let forCases = A .catMaybes (fn <$> cases)
120
- exact = A .singleton $ fromJust $ fn j
119
+ exact = A .singleton $ unsafePartial fromJust $ fn j
121
120
in forCases == exact <?> msg
122
121
123
122
124
- parserTest :: Eff _ Unit
123
+ parserTest :: SC () Unit
125
124
parserTest = do
126
125
assert ((isRight (jsonParser " {\" foo\" : 1}" )) <?> " Error in jsonParser" )
127
126
assert ((isLeft (jsonParser " \\\f fff" )) <?> " Error in jsonParser" )
128
127
129
- printJsonTest :: Eff _ Unit
128
+ printJsonTest :: SC () Unit
130
129
printJsonTest = do
131
130
for_ cases (assert <<< assertion)
132
131
where
133
132
assertion :: Json -> Result
134
133
assertion j = ((jsonParser (printJson j)) == Right j) <?> " Error in printJson"
135
134
136
- main :: Eff _ Unit
135
+ main :: SC () Unit
137
136
main = do
138
- log " isXxx tests"
137
+ log " isXxx tests"
139
138
isTest
140
139
log " foldJson tests"
141
140
foldTest
@@ -147,5 +146,5 @@ main = do
147
146
toTest
148
147
log " jsonParser tests"
149
148
parserTest
150
- log " printJson tests"
149
+ log " printJson tests"
151
150
printJsonTest
0 commit comments