git.iko.soy/purescript-literals
on main help sign in
55 lines 1.3 kB history raw
1module Test.Main where
3import Prelude
5import Effect (Effect)
6import Literals (NumberLit, StringLit, IntLit, intLit, numberLit, stringLit)
7import Literals.Undefined (undefined)
8import Test.Assert (assertEqual, assertTrue)
9import Unsafe.Coerce (unsafeCoerce)
12main :: Effect Unit
13main = do
14 assertEqual
15 { actual: unsafeCoerce (stringLit :: StringLit "foo")
16 , expected: "foo"
17 }
18 assertEqual
19 { actual: unsafeCoerce (numberLit :: NumberLit "8.0")
20 , expected: 8.0
21 }
22 assertEqual
23 { actual: unsafeCoerce (numberLit :: NumberLit "-8.0")
24 , expected: -8.0
25 }
26 assertEqual
27 { actual: unsafeCoerce (intLit :: IntLit "8")
28 , expected: 8
29 }
30 assertEqual
31 { actual: unsafeCoerce (intLit :: IntLit "-8")
32 , expected: -8
33 }
35 -- Eq instance
36 assertTrue $ undefined == undefined
37 assertTrue $ (stringLit :: StringLit "foo") == (stringLit :: StringLit "foo")
39 -- Show instance
40 assertEqual
41 { actual: show (stringLit :: StringLit "foo")
42 , expected: "(Literal \"foo\")"
43 }
44 assertEqual
45 { actual: show (numberLit :: NumberLit "8.0")
46 , expected: "(Literal 8.0)"
47 }
48 assertEqual
49 { actual: show (intLit :: IntLit "8")
50 , expected: "(Literal 8)"
51 }
52 assertEqual
53 { actual: show undefined
54 , expected: "Undefined"
55 }