|
| 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 Agda.Builtin.List |
| 7 | +open import Haskell.Prim.Maybe |
| 8 | +open import Haskell.Prim.Ord |
| 9 | +open import Haskell.Prim.Tuple |
| 10 | +open import Haskell.Law.Equality |
| 11 | +import Haskell.Data.Map as Map |
| 12 | +open Map using (Map) |
| 13 | + |
| 14 | +firstMap : Map Nat Nat |
| 15 | +firstMap = Map.fromList ((50 , 5) ∷ (40 , 4) ∷ (100 , 10) ∷ []) |
| 16 | +{-# COMPILE AGDA2HS firstMap #-} |
| 17 | + |
| 18 | +val1 : Maybe Nat |
| 19 | +val1 = Map.lookup 100 firstMap |
| 20 | +{-# COMPILE AGDA2HS val1 #-} |
| 21 | + |
| 22 | +@0 test1 : val1 ≡ Just 10 |
| 23 | +test1 = trans (Map.insertNotChangingOthers 100 50 5 (Map.fromList ((40 , 4) ∷ (100 , 10) ∷ []))) |
| 24 | + (trans (Map.insertNotChangingOthers 100 40 4 (Map.fromList ((100 , 10) ∷ []))) |
| 25 | + (Map.memberAfterInsertion 100 10 Map.empty)) |
| 26 | + |
| 27 | +val2 : Maybe Nat |
| 28 | +val2 = Map.lookup 15 firstMap |
| 29 | +{-# COMPILE AGDA2HS val2 #-} |
| 30 | + |
| 31 | +@0 test2 : val2 ≡ Nothing |
| 32 | +test2 = trans (Map.insertNotChangingOthers 15 50 5 (Map.fromList ((40 , 4) ∷ (100 , 10) ∷ []))) |
| 33 | + (trans (Map.insertNotChangingOthers 15 40 4 (Map.fromList ((100 , 10) ∷ []))) |
| 34 | + (trans (Map.insertNotChangingOthers 15 100 10 Map.empty) |
| 35 | + (fst (Map.notMember↔Nothing 15 Map.empty) |
| 36 | + (Map.nullHasNoMembers Map.empty Map.emptyIsNull 15)))) |
| 37 | + |
| 38 | +secondMap : Map Nat Nat |
| 39 | +secondMap = Map.delete 50 firstMap |
| 40 | +{-# COMPILE AGDA2HS secondMap #-} |
| 41 | + |
| 42 | +val3 : Maybe Nat |
| 43 | +val3 = Map.lookup 50 secondMap |
| 44 | +{-# COMPILE AGDA2HS val3 #-} |
| 45 | + |
| 46 | +@0 test3 : val3 ≡ Nothing |
| 47 | +test3 = fst (Map.notMember↔Nothing 50 secondMap) |
| 48 | + (Map.notMemberAfterDeletion 50 firstMap) |
| 49 | + |
| 50 | +val4 : Maybe Nat |
| 51 | +val4 = Map.lookup 100 secondMap |
| 52 | +{-# COMPILE AGDA2HS val4 #-} |
| 53 | + |
| 54 | +@0 test4 : val4 ≡ Just 10 |
| 55 | +test4 = trans (Map.deleteNotChangingOthers 100 50 firstMap) |
| 56 | + test1 |
0 commit comments