@@ -7,6 +7,10 @@ import std::option::some;
7
7
8
8
fn square ( uint n) -> uint { ret n * n; }
9
9
10
+ fn square_alias ( & uint n) -> uint { ret n * n; }
11
+
12
+ pred is_three( & uint n) -> bool { ret n == 3 u; }
13
+
10
14
fn test_reserve_and_on_heap ( ) {
11
15
let int[ ] v = ~[ 1 , 2 ] ;
12
16
assert ( !ivec:: on_heap ( v) ) ;
@@ -167,15 +171,15 @@ fn test_grow_set() {
167
171
fn test_map ( ) {
168
172
// Test on-stack map.
169
173
auto v = ~[ 1 u, 2 u, 3 u ] ;
170
- auto w = ivec:: map ( square , v) ;
174
+ auto w = ivec:: map ( square_alias , v) ;
171
175
assert ( ivec:: len ( w) == 3 u) ;
172
176
assert ( w. ( 0 ) == 1 u) ;
173
177
assert ( w. ( 1 ) == 4 u) ;
174
178
assert ( w. ( 2 ) == 9 u) ;
175
179
176
180
// Test on-heap map.
177
181
v = ~[ 1 u, 2 u, 3 u, 4 u, 5 u ] ;
178
- w = ivec:: map ( square , v) ;
182
+ w = ivec:: map ( square_alias , v) ;
179
183
assert ( ivec:: len ( w) == 5 u) ;
180
184
assert ( w. ( 0 ) == 1 u) ;
181
185
assert ( w. ( 1 ) == 4 u) ;
@@ -184,6 +188,18 @@ fn test_map() {
184
188
assert ( w. ( 4 ) == 25 u) ;
185
189
}
186
190
191
+ fn test_any_and_all ( ) {
192
+ assert ( ivec:: any ( is_three, ~[ 1 u, 2 u, 3 u ] ) ) ;
193
+ assert ( !ivec:: any ( is_three, ~[ 0 u, 1 u, 2 u ] ) ) ;
194
+ assert ( ivec:: any ( is_three, ~[ 1 u, 2 u, 3 u, 4 u, 5 u ] ) ) ;
195
+ assert ( !ivec:: any ( is_three, ~[ 1 u, 2 u, 4 u, 5 u, 6 u ] ) ) ;
196
+
197
+ assert ( ivec:: all ( is_three, ~[ 3 u, 3 u, 3 u ] ) ) ;
198
+ assert ( !ivec:: all ( is_three, ~[ 3 u, 3 u, 2 u ] ) ) ;
199
+ assert ( ivec:: all ( is_three, ~[ 3 u, 3 u, 3 u, 3 u, 3 u ] ) ) ;
200
+ assert ( !ivec:: all ( is_three, ~[ 3 u, 3 u, 0 u, 1 u, 2 u ] ) ) ;
201
+ }
202
+
187
203
fn main ( ) {
188
204
test_reserve_and_on_heap ( ) ;
189
205
test_unsafe_ptrs ( ) ;
@@ -204,5 +220,6 @@ fn main() {
204
220
205
221
// Functional utilities
206
222
test_map ( ) ;
223
+ test_any_and_all ( ) ;
207
224
}
208
225
0 commit comments