Skip to content

Commit b5b4304

Browse files
committed
---
yaml --- r: 2729 b: refs/heads/master c: bac68e4 h: refs/heads/master i: 2727: bc360dd v: v3
1 parent 4bfc021 commit b5b4304

File tree

2 files changed

+42
-1
lines changed

2 files changed

+42
-1
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
---
2-
refs/heads/master: b4c9f782e4ef8ec44e6de944023557df9a34c212
2+
refs/heads/master: bac68e4af3592dfcd6867fb8a73d2999daff744f

trunk/src/test/run-pass/lib-list.rs

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import std::list;
33
import std::list::car;
44
import std::list::cdr;
55
import std::list::from_vec;
6+
import std::option;
67

78
fn test_from_vec() {
89
auto l = from_vec([0, 1, 2]);
@@ -11,6 +12,46 @@ fn test_from_vec() {
1112
assert (car(cdr(cdr(l))) == 2);
1213
}
1314

15+
fn test_foldl() {
16+
auto l = from_vec([0, 1, 2, 3, 4]);
17+
fn add (&int a, &uint b) -> uint {
18+
ret (a as uint) + b;
19+
}
20+
auto res = list::foldl(l, 0u, add);
21+
assert (res == 10u);
22+
}
23+
24+
fn test_find_success() {
25+
auto l = from_vec([0, 1, 2]);
26+
fn match (&int i) -> option::t[int] {
27+
ret if (i == 2) {
28+
option::some(i)
29+
} else {
30+
option::none[int]
31+
};
32+
}
33+
auto res = list::find(l, match);
34+
assert (res == option::some(2));
35+
}
36+
37+
fn test_find_fail() {
38+
auto l = from_vec([0, 1, 2]);
39+
fn match (&int i) -> option::t[int] {
40+
ret option::none[int];
41+
}
42+
auto res = list::find(l, match);
43+
assert (res == option::none[int]);
44+
}
45+
46+
fn test_length() {
47+
auto l = from_vec([0, 1, 2]);
48+
assert (list::length(l) == 3u);
49+
}
50+
1451
fn main() {
1552
test_from_vec();
53+
test_foldl();
54+
test_find_success();
55+
test_find_fail();
56+
test_length();
1657
}

0 commit comments

Comments
 (0)