1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
|
import core::*;
use std;
import option;
import std::treemap::*;
import option::some;
import option::none;
import str;
#[test]
fn init_treemap() { let _m = init::<int, int>(); }
#[test]
fn insert_one() { let m = init(); insert(m, 1, 2); }
#[test]
fn insert_two() { let m = init(); insert(m, 1, 2); insert(m, 3, 4); }
#[test]
fn insert_find() {
let m = init();
insert(m, 1, 2);
assert (find(m, 1) == some(2));
}
#[test]
fn find_empty() { let m = init::<int, int>(); assert (find(m, 1) == none); }
#[test]
fn find_not_found() {
let m = init();
insert(m, 1, 2);
assert (find(m, 2) == none);
}
#[test]
fn traverse_in_order() {
let m = init();
insert(m, 3, ());
insert(m, 0, ());
insert(m, 4, ());
insert(m, 2, ());
insert(m, 1, ());
let n = @mutable 0;
fn t(n: @mutable int, &&k: int, &&_v: ()) { assert (*n == k); *n += 1; }
traverse(m, bind t(n, _, _));
}
#[test]
fn u8_map() {
let m = init();
let k1 = str::bytes("foo");
let k2 = str::bytes("bar");
insert(m, k1, "foo");
insert(m, k2, "bar");
assert (find(m, k2) == some("bar"));
assert (find(m, k1) == some("foo"));
}
|