@@ -8,7 +8,9 @@ let make _ =
8
8
9
9
let v = Vec. make ~capacity: 8 () in
10
10
assert_equal 0 (Vec. length v);
11
- assert_equal 8 (Vec. capacity v)
11
+ assert_equal 8 (Vec. capacity v);
12
+
13
+ assert_raises ~msg: " make negative capacity" (Invalid_argument " Negative capacity" ) (Vec. make ~capacity: (- 1 ))
12
14
13
15
let capacity _ =
14
16
let v = Vec. make () in
@@ -31,7 +33,7 @@ let get_set _ =
31
33
assert_raises ~msg: " set out of range" (Invalid_argument " Index out of range" ) (fun () -> v.! [0 ] < - 0 );
32
34
33
35
assert_equal None v.?[0 ];
34
- assert_bool " try_set out of range" (not @@ v.?[0 ] < - 0 );
36
+ assert_bool " try_set out of range" (not ( v.?[0 ] < - 0 ) );
35
37
36
38
Vec. push 1 v;
37
39
@@ -41,6 +43,14 @@ let get_set _ =
41
43
assert_bool " try_set in range" (v.?[0 ] < - 3 );
42
44
assert_equal (Some 3 ) v.?[0 ]
43
45
46
+ let range _ =
47
+ assert_equal [1 ; 2 ; 3 ; 4 ; 5 ] (Vec. to_list (1 -- 5 ));
48
+ assert_equal [5 ; 4 ; 3 ; 2 ; 1 ] (Vec. to_list (5 -- 1 ));
49
+
50
+ assert_equal [1 ] (Vec. to_list (1 -- 1 ));
51
+ assert_equal [0 ; 1 ] (Vec. to_list (0 -- 1 ));
52
+ assert_equal [1 ; 0 ] (Vec. to_list (1 -- 0 ))
53
+
44
54
let find _ =
45
55
let v = 1 -- 5 in
46
56
@@ -82,9 +92,11 @@ let push_pop _ =
82
92
Vec. push 3 v;
83
93
assert_equal 2 (Vec. length v);
84
94
85
- assert_equal (Some 3 ) (Vec. pop v);
86
- assert_equal (Some 1 ) (Vec. pop v);
87
- assert_equal None (Vec. pop v)
95
+ assert_equal (Some 3 ) (Vec. try_pop v);
96
+ assert_equal (Some 1 ) (Vec. try_pop v);
97
+
98
+ assert_equal None (Vec. try_pop v);
99
+ assert_raises ~msg: " pop empty" (Invalid_argument " Empty vector" ) (fun () -> Vec. pop v)
88
100
89
101
let map _ =
90
102
let v = 0 -- 4 in
@@ -115,26 +127,28 @@ let cartesian_product _ =
115
127
let b = Vec. of_list [10 ; 20 ; 30 ] in
116
128
let expected = [1 , 10 ; 1 , 20 ; 1 , 30 ; 2 , 10 ; 2 , 20 ; 2 , 30 ; 3 , 10 ; 3 , 20 ; 3 , 30 ] in
117
129
118
- assert_equal expected (Vec. to_list @@ Vec. cartesian_product a b)
130
+ assert_equal expected (Vec. to_list ( Vec. cartesian_product a b) )
119
131
120
132
let monad_ops _ =
121
133
let list = [[1 ; 2 ; 3 ]; [4 ; 5 ; 6 ]; [7 ; 8 ; 9 ]] in
122
134
let a = Vec. of_list < $> Vec. of_list list in
123
- assert_equal (List. flatten list ) (Vec. to_list @@ Vec. flatten a);
135
+ assert_equal (List. flatten list ) (Vec. to_list ( Vec. flatten a) );
124
136
125
137
let expected = [1 ; 1 ; 1 ; 2 ; 2 ; 2 ; 3 ; 3 ; 3 ; 4 ; 4 ; 4 ] in
126
138
let f i = Vec. of_list [i; i; i] in
127
139
let a = 1 -- 4 in
128
- assert_equal expected @@ Vec. to_list (a >> = f)
140
+ assert_equal expected ( Vec. to_list (a >> = f) )
129
141
130
142
let filter _ =
131
143
let v = 0 -- 10 in
132
144
let even i = i mod 2 = 0 in
133
- assert_equal [0 ; 2 ; 4 ; 6 ; 8 ; 10 ] (Vec. to_list @@ Vec. filter even v);
134
- assert_equal (Vec. length v) (Vec. length @@ Vec. filteri (= ) v);
145
+ assert_equal [0 ; 2 ; 4 ; 6 ; 8 ; 10 ] (Vec. to_list ( Vec. filter even v) );
146
+ assert_equal (Vec. length v) (Vec. length ( Vec. filteri (= ) v) );
135
147
148
+ let old_capacity = Vec. capacity v in
136
149
Vec. filter_in_place even v;
137
- assert_equal 6 (Vec. length v)
150
+ assert_equal 6 (Vec. length v);
151
+ assert_equal old_capacity (Vec. capacity v)
138
152
139
153
let conversions _ =
140
154
let l = [1 ; 2 ; 3 ; 4 ; 5 ] in
@@ -149,7 +163,7 @@ let conversions _ =
149
163
let rev _ =
150
164
let l = [1 ; 2 ; 3 ; 4 ; 5 ; 6 ] in
151
165
let v = Vec. of_list l in
152
- assert_equal (List. rev l) (Vec. to_list @@ Vec. rev v);
166
+ assert_equal (List. rev l) (Vec. to_list ( Vec. rev v) );
153
167
154
168
Vec. rev_in_place v;
155
169
assert_equal (List. rev l) (Vec. to_list v)
@@ -167,24 +181,24 @@ let append _ =
167
181
assert_equal l (Vec. to_list v');
168
182
assert_equal 10 (Vec. length v');
169
183
170
- assert_equal l (Vec. to_list @@ v @ v2)
184
+ assert_equal l (Vec. to_list ( v @ v2) )
171
185
172
186
let exists _ =
173
187
let v = Vec. of_list [1 ; 2 ; 3 ; 4 ; 5 ] in
174
188
assert_bool " exists" (Vec. exists ((= ) 4 ) v);
175
189
assert_bool " not exists" (not (Vec. exists ((= ) 6 ) v));
176
- assert_bool " exists empty" (not (Vec. exists (fun _ -> true ) @@ Vec. make () ))
190
+ assert_bool " exists empty" (not (Vec. exists (fun _ -> true ) ( Vec. make () )))
177
191
178
192
let for_all _ =
179
193
let v = 5 -- 1 in
180
194
assert_bool " for_all" (Vec. for_all ((< = ) 1 ) v);
181
195
assert_bool " not for_all" (not (Vec. for_all ((< = ) 3 ) v));
182
- assert_bool " for_all empty" (Vec. for_all (fun _ -> false ) @@ Vec. make () )
196
+ assert_bool " for_all empty" (Vec. for_all (fun _ -> false ) ( Vec. make () ))
183
197
184
198
let mem _ =
185
199
let v = 1 -- 100 in
186
200
assert_bool " mem" (Vec. mem 95 v);
187
- assert_bool " mem not" (not @@ Vec. mem 101 v);
201
+ assert_bool " mem not" (not ( Vec. mem 101 v) );
188
202
189
203
let a = [|1 ; 2 |] in
190
204
let b = [|1 ; 2 |] in
@@ -214,13 +228,13 @@ let zip _ =
214
228
let b = 4 -- 6 in
215
229
216
230
let expected = [1 , 4 ; 2 , 5 ; 3 , 6 ] in
217
- assert_equal expected (Vec. to_list @@ Vec. zip a b);
231
+ assert_equal expected (Vec. to_list ( Vec. zip a b) );
218
232
219
233
let expected = [5 ; 7 ; 9 ] in
220
- assert_equal expected (Vec. to_list @@ Vec. zip_with (+ ) a b)
234
+ assert_equal expected (Vec. to_list ( Vec. zip_with (+ ) a b) )
221
235
222
236
let equal _ =
223
- assert_bool " equal empty" @@ Vec. equal (Vec. make () ) (Vec. make () );
237
+ assert_bool " equal empty" ( Vec. equal (Vec. make () ) (Vec. make () ));
224
238
225
239
let a = Vec. of_list [1 ; 2 ; 3 ; 4 ; 5 ] in
226
240
let b = 1 -- 5 in
@@ -235,7 +249,7 @@ let equal _ =
235
249
assert_bool " equal diff length" (not (Vec. equal a b))
236
250
237
251
let compare _ =
238
- assert_equal 0 @@ Vec. compare (Vec. make () ) (Vec. make () );
252
+ assert_equal 0 ( Vec. compare (Vec. make () ) (Vec. make () ));
239
253
240
254
let a = Vec. of_list ['a' ; 'b' ; 'c' ] in
241
255
let b = Vec. of_list ['a' ; 'b' ; 'd' ] in
@@ -255,21 +269,22 @@ let compare _ =
255
269
let pretty_print _ =
256
270
let pp = Vec. pretty_print Int. to_string in
257
271
258
- assert_equal " []" (pp @@ Vec. make () );
259
- assert_equal " [2]" (pp @@ Vec. singleton 2 );
260
- assert_equal " [1; 2; 3; 4; 5]" (pp @@ 1 -- 5 );
272
+ assert_equal " []" (pp ( Vec. make () ));
273
+ assert_equal " [2]" (pp ( Vec. singleton 2 ) );
274
+ assert_equal " [1; 2; 3; 4; 5]" (pp ( 1 -- 5 ) );
261
275
262
276
let pp = Vec. pretty_print (fun s -> s) in
263
- assert_equal " [abc; def]" (pp @@ Vec. of_list [" abc" ; " def" ]);
277
+ assert_equal " [abc; def]" (pp ( Vec. of_list [" abc" ; " def" ]) );
264
278
265
- let pp = Vec. pretty_print (fun s -> Int. to_string @@ String. length s) in
266
- assert_equal " [3; 4; 5]" (pp @@ Vec. of_list [" aaa" ; " abcd" ; " abcde" ])
279
+ let pp = Vec. pretty_print (fun s -> Int. to_string ( String. length s) ) in
280
+ assert_equal " [3; 4; 5]" (pp ( Vec. of_list [" aaa" ; " abcd" ; " abcde" ]) )
267
281
268
282
let test_suite =
269
283
" Tests" > :::
270
284
[ " make" > :: make
271
285
; " capacity" > :: capacity
272
286
; " get_set" > :: get_set
287
+ ; " range" > :: range
273
288
; " find" > :: find
274
289
; " insert_remove" > :: insert_remove
275
290
; " push_pop" > :: push_pop
0 commit comments