@@ -21,7 +21,7 @@ main = do
21
21
m_even = M. fromAscList elems_even :: M. Map Int Int
22
22
m_odd = M. fromAscList elems_odd :: M. Map Int Int
23
23
evaluate $ rnf [m, m_even, m_odd]
24
- evaluate $ rnf elems_rev
24
+ evaluate $ rnf [ elems_rev, elems_asc, elems_desc]
25
25
defaultMain
26
26
[ bench " lookup absent" $ whnf (lookup evens) m_odd
27
27
, bench " lookup present" $ whnf (lookup evens) m_even
@@ -88,8 +88,11 @@ main = do
88
88
, bench " intersection" $ whnf (M. intersection m) m_even
89
89
, bench " split" $ whnf (M. split (bound `div` 2 )) m
90
90
, bench " fromList" $ whnf M. fromList elems
91
- , bench " fromList-desc" $ whnf M. fromList (reverse elems)
92
- , bench " fromAscList" $ whnf M. fromAscList elems
91
+ , bench " fromList-desc" $ whnf M. fromList elems_desc
92
+ , bench " fromAscList" $ whnf M. fromAscList elems_asc
93
+ , bench " fromAscListWithKey" $ whnf (M. fromAscListWithKey (\ k v2 v1 -> k + v2 + v1)) elems_asc
94
+ , bench " fromDescList" $ whnf M. fromDescList elems_desc
95
+ , bench " fromDescListWithKey" $ whnf (M. fromDescListWithKey (\ k v2 v1 -> k + v2 + v1)) elems_desc
93
96
, bench " fromDistinctAscList" $ whnf M. fromDistinctAscList elems
94
97
, bench " fromDistinctAscList:fusion" $ whnf (\ n -> M. fromDistinctAscList [(i,i) | i <- [1 .. n]]) bound
95
98
, bench " fromDistinctDescList" $ whnf M. fromDistinctDescList elems_rev
@@ -102,6 +105,10 @@ main = do
102
105
elems_even = zip evens evens
103
106
elems_odd = zip odds odds
104
107
elems_rev = reverse elems
108
+ keys_asc = map (`div` 2 ) [1 .. bound]
109
+ elems_asc = zip keys_asc values
110
+ keys_desc = map (`div` 2 ) [bound,bound- 1 .. 1 ]
111
+ elems_desc = zip keys_desc values
105
112
keys = [1 .. bound]
106
113
evens = [2 ,4 .. bound]
107
114
odds = [1 ,3 .. bound]
0 commit comments