Skip to content

Commit 3294ffb

Browse files
committed
Adding tests for map functionality
1 parent 8f1ae3c commit 3294ffb

File tree

4 files changed

+73
-0
lines changed

4 files changed

+73
-0
lines changed

test/AllTests.agda

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,7 @@ import EraseType
6969
import Issue257
7070
import HaskellDataOpenImport
7171
import HaskellDataQualifiedImport
72+
import Map
7273

7374
{-# FOREIGN AGDA2HS
7475
import Issue14
@@ -137,4 +138,5 @@ import Inlining
137138
import EraseType
138139
import HaskellDataOpenImport
139140
import HaskellDataQualifiedImport
141+
import Map
140142
#-}

test/Map.agda

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
-- A test pack for Data.Map.
2+
module Map where
3+
4+
open import Agda.Builtin.Equality
5+
open import Agda.Builtin.Nat
6+
open import Haskell.Prim.Maybe
7+
open import Haskell.Prim.Ord
8+
import Haskell.Data.Map as Map
9+
open Map using (Map)
10+
11+
firstMap : Map Nat Nat
12+
firstMap = Map.insert 50 5 (Map.insert 40 4 (Map.insert 100 10 Map.empty))
13+
{-# COMPILE AGDA2HS firstMap #-}
14+
15+
val1 : Maybe Nat
16+
val1 = Map.lookup 100 firstMap
17+
{-# COMPILE AGDA2HS val1 #-}
18+
19+
@0 test1 : val1 ≡ Just 10
20+
test1 = refl
21+
22+
val2 : Maybe Nat
23+
val2 = Map.lookup 15 firstMap
24+
{-# COMPILE AGDA2HS val2 #-}
25+
26+
@0 test2 : val2 ≡ Nothing
27+
test2 = refl
28+
29+
secondMap : Map Nat Nat
30+
secondMap = Map.delete 50 firstMap
31+
{-# COMPILE AGDA2HS secondMap #-}
32+
33+
val3 : Maybe Nat
34+
val3 = Map.lookup 50 secondMap
35+
{-# COMPILE AGDA2HS val3 #-}
36+
37+
@0 test3 : val3 ≡ Nothing
38+
test3 = refl
39+
40+
val4 : Maybe Nat
41+
val4 = Map.lookup 100 secondMap
42+
{-# COMPILE AGDA2HS val4 #-}
43+
44+
@0 test4 : val4 ≡ Just 10
45+
test4 = refl

test/golden/AllTests.hs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,4 +66,5 @@ import Inlining
6666
import EraseType
6767
import HaskellDataOpenImport
6868
import HaskellDataQualifiedImport
69+
import Map
6970

test/golden/Map.hs

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
module Map where
2+
3+
import Data.Map (Map)
4+
import qualified Data.Map as Map (delete, empty, insert, lookup)
5+
import Numeric.Natural (Natural)
6+
7+
firstMap :: Map Natural Natural
8+
firstMap
9+
= Map.insert 50 5 (Map.insert 40 4 (Map.insert 100 10 Map.empty))
10+
11+
val1 :: Maybe Natural
12+
val1 = Map.lookup 100 firstMap
13+
14+
val2 :: Maybe Natural
15+
val2 = Map.lookup 15 firstMap
16+
17+
secondMap :: Map Natural Natural
18+
secondMap = Map.delete 50 firstMap
19+
20+
val3 :: Maybe Natural
21+
val3 = Map.lookup 50 secondMap
22+
23+
val4 :: Maybe Natural
24+
val4 = Map.lookup 100 secondMap
25+

0 commit comments

Comments
 (0)