@@ -47,6 +47,8 @@ test() ->
47
47
ok = test_sort (),
48
48
ok = test_split (),
49
49
ok = test_usort (),
50
+ ok = test_dropwhile (),
51
+ ok = test_duplicate (),
50
52
ok = test_filtermap (),
51
53
ok = test_last (),
52
54
ok = test_mapfoldl (),
@@ -99,54 +101,45 @@ test_keydelete() ->
99
101
? ASSERT_MATCH (lists :keydelete (a , 1 , []), []),
100
102
? ASSERT_MATCH (lists :keydelete (a , 1 , [{a , x }, b , []]), [b , []]),
101
103
? ASSERT_MATCH (lists :keydelete (a , 1 , [b , {a , x }, []]), [b , []]),
102
- ? ASSERT_MATCH (lists :keydelete (a , 1 , [b , {a , x }, {a , x }, {a , x }, []]), [b , {a , x }, {a , x }, []]),
104
+ ? ASSERT_MATCH (
105
+ lists :keydelete (a , 1 , [b , {a , x }, {a , x }, {a , x }, []]),
106
+ [b , {a , x }, {a , x }, []]
107
+ ),
103
108
ok .
104
109
105
110
test_keyreplace () ->
106
111
? ASSERT_MATCH (lists :keyreplace (a , 1 , [], {foo , bar }), []),
107
112
? ASSERT_MATCH (lists :keyreplace (a , 1 , [{a , x }, b , []], {1 , 2 }), [{1 , 2 }, b , []]),
108
113
? ASSERT_MATCH (lists :keyreplace (x , 2 , [b , {a , x }, []], {1 , 2 }), [b , {1 , 2 }, []]),
109
- ? ASSERT_MATCH (lists :keyreplace (a , 1 , [b , {a , x }, {a , x }, {a , x }, []], {1 , 2 }), [
110
- b ,
111
- {1 , 2 },
112
- {a , x },
113
- {a , x },
114
- []
115
- ]),
116
- ? ASSERT_MATCH (lists :keyreplace (a , 3 , [b , {a , x }, {a , x }, {a , x }, []], {1 , 2 }), [
117
- b ,
118
- {a , x },
119
- {a , x },
120
- {a , x },
121
- []
122
- ]),
114
+ ? ASSERT_MATCH (
115
+ lists :keyreplace (a , 1 , [b , {a , x }, {a , x }, {a , x }, []], {1 , 2 }),
116
+ [b , {1 , 2 }, {a , x }, {a , x }, []]
117
+ ),
118
+ ? ASSERT_MATCH (
119
+ lists :keyreplace (a , 3 , [b , {a , x }, {a , x }, {a , x }, []], {1 , 2 }),
120
+ [b , {a , x }, {a , x }, {a , x }, []]
121
+ ),
123
122
ok .
124
123
125
124
test_keystore () ->
126
125
? ASSERT_MATCH (lists :keystore (a , 1 , [], {foo , bar }), [{foo , bar }]),
127
126
? ASSERT_MATCH (lists :keystore (a , 1 , [{a , x }, b , []], {1 , 2 }), [{1 , 2 }, b , []]),
128
127
? ASSERT_MATCH (lists :keystore (x , 2 , [b , {a , x }, []], {1 , 2 }), [b , {1 , 2 }, []]),
129
- ? ASSERT_MATCH (lists :keystore (a , 1 , [b , {a , x }, {a , x }, {a , x }, []], {1 , 2 }), [
130
- b ,
131
- {1 , 2 },
132
- {a , x },
133
- {a , x },
134
- []
135
- ]),
136
- ? ASSERT_MATCH (lists :keystore (a , 3 , [b , {a , x }, {a , x }, {a , x }, []], {1 , 2 }), [
137
- b ,
138
- {a , x },
139
- {a , x },
140
- {a , x },
141
- [],
142
- {1 , 2 }
143
- ]),
128
+ ? ASSERT_MATCH (
129
+ lists :keystore (a , 1 , [b , {a , x }, {a , x }, {a , x }, []], {1 , 2 }),
130
+ [b , {1 , 2 }, {a , x }, {a , x }, []]
131
+ ),
132
+ ? ASSERT_MATCH (
133
+ lists :keystore (a , 3 , [b , {a , x }, {a , x }, {a , x }, []], {1 , 2 }),
134
+ [b , {a , x }, {a , x }, {a , x }, [], {1 , 2 }]
135
+ ),
144
136
ok .
145
137
146
138
test_keytake () ->
147
139
List1 = [{name , " Joe" }, {name , " Robert" }, {name , " Mike" }],
148
140
? ASSERT_MATCH (
149
- lists :keytake (" Joe" , 2 , List1 ), {value , {name , " Joe" }, [{name , " Robert" }, {name , " Mike" }]}
141
+ lists :keytake (" Joe" , 2 , List1 ),
142
+ {value , {name , " Joe" }, [{name , " Robert" }, {name , " Mike" }]}
150
143
),
151
144
? ASSERT_MATCH (
152
145
lists :keytake (" Robert" , 2 , List1 ),
@@ -208,7 +201,10 @@ test_flatten() ->
208
201
? ASSERT_MATCH (lists :flatten ([[a ], [b ]]), [a , b ]),
209
202
? ASSERT_MATCH (lists :flatten ([[a ], [b , [c ]]]), [a , b , c ]),
210
203
? ASSERT_MATCH (lists :flatten ([[a ], [b , {c , [d , [e , [f ]]]}]]), [a , b , {c , [d , [e , [f ]]]}]),
211
- ? ASSERT_MATCH (lists :flatten ([[a , b , c ], [d , e , f ], [g , h , i ]]), [a , b , c , d , e , f , g , h , i ]),
204
+ ? ASSERT_MATCH (
205
+ lists :flatten ([[a , b , c ], [d , e , f ], [g , h , i ]]),
206
+ [a , b , c , d , e , f , g , h , i ]
207
+ ),
212
208
ok .
213
209
214
210
test_filter () ->
@@ -243,7 +239,6 @@ test_seq() ->
243
239
? ASSERT_ERROR (lists :seq (- 1 , 1 , - 1 )),
244
240
? ASSERT_ERROR (lists :seq (1 , - 1 , 1 )),
245
241
? ASSERT_ERROR (lists :seq (1 , 2 , 0 )),
246
-
247
242
ok .
248
243
249
244
test_sort () ->
@@ -286,13 +281,32 @@ test_usort() ->
286
281
? ASSERT_MATCH (lists :usort ([1 , 3 , 5 , 2 , 1 , 4 ]), [1 , 2 , 3 , 4 , 5 ]),
287
282
? ASSERT_MATCH (lists :usort ([1 , 3 , 5 , 2 , 5 , 4 ]), [1 , 2 , 3 , 4 , 5 ]),
288
283
289
- ? ASSERT_MATCH (lists :usort (fun (A , B ) -> A > B end , [1 , 2 , 3 , 4 , 3 , 5 ]), [5 , 4 , 3 , 3 , 2 , 1 ]),
284
+ ? ASSERT_MATCH (
285
+ lists :usort (fun (A , B ) -> A > B end , [1 , 2 , 3 , 4 , 3 , 5 ]),
286
+ [5 , 4 , 3 , 3 , 2 , 1 ]
287
+ ),
290
288
? ASSERT_MATCH (lists :usort (fun (A , B ) -> A >= B end , [1 , 2 , 3 , 4 , 3 , 5 ]), [5 , 4 , 3 , 2 , 1 ]),
291
289
292
290
? ASSERT_ERROR (lists :usort (1 ), function_clause ),
293
291
? ASSERT_ERROR (lists :usort (fun (A , B ) -> A > B end , 1 ), function_clause ),
294
292
? ASSERT_ERROR (lists :usort (1 , [1 ]), function_clause ),
293
+ ok .
294
+
295
+ test_dropwhile () ->
296
+ ? ASSERT_MATCH (lists :dropwhile (fun (_X ) -> true end , []), []),
297
+ ? ASSERT_MATCH (lists :dropwhile (fun (_X ) -> false end , []), []),
298
+ ? ASSERT_MATCH (lists :dropwhile (fun (_X ) -> false end , [1 ]), [1 ]),
299
+ ? ASSERT_MATCH (lists :dropwhile (fun (X ) -> X == 1 end , [1 , 1 , 1 , 2 , 3 ]), [2 , 3 ]),
300
+ ? ASSERT_ERROR (lists :dropwhile ([], []), function_clause ),
301
+ ? ASSERT_ERROR (lists :dropwhile (fun (X ) -> X == 1 end , [1 | 1 ]), function_clause ),
302
+ ok .
295
303
304
+ test_duplicate () ->
305
+ ? ASSERT_MATCH (lists :duplicate (0 , x ), []),
306
+ ? ASSERT_MATCH (lists :duplicate (1 , x ), [x ]),
307
+ ? ASSERT_MATCH (lists :duplicate (3 , []), [[], [], []]),
308
+ ? ASSERT_ERROR (lists :duplicate (- 1 , x ), function_clause ),
309
+ ? ASSERT_ERROR (lists :duplicate (x , x ), function_clause ),
296
310
ok .
297
311
298
312
test_filtermap () ->
@@ -319,7 +333,10 @@ test_last() ->
319
333
320
334
test_mapfoldl () ->
321
335
? ASSERT_MATCH ({[], 1 }, lists :mapfoldl (fun (X , A ) -> {X * A , A + 1 } end , 1 , [])),
322
- ? ASSERT_MATCH ({[1 , 4 , 9 ], 4 }, lists :mapfoldl (fun (X , A ) -> {X * A , A + 1 } end , 1 , [1 , 2 , 3 ])),
336
+ ? ASSERT_MATCH (
337
+ {[1 , 4 , 9 ], 4 },
338
+ lists :mapfoldl (fun (X , A ) -> {X * A , A + 1 } end , 1 , [1 , 2 , 3 ])
339
+ ),
323
340
? ASSERT_ERROR (lists :mapfoldl (fun (X , A ) -> {X * A , A + 1 } end , 1 , foo ), function_clause ),
324
341
ok .
325
342
@@ -335,4 +352,5 @@ test_append() ->
335
352
? ASSERT_ERROR (lists :append (1 , 3 ), badarg ),
336
353
ok .
337
354
338
- id (X ) -> X .
355
+ id (X ) ->
356
+ X .
0 commit comments