Skip to content

Commit 5551c55

Browse files
committed
---
yaml --- r: 3231 b: refs/heads/master c: ef65542 h: refs/heads/master i: 3229: 9611c69 3227: ce62412 3223: 63c5039 3215: 9b497f4 3199: a260665 v: v3
1 parent eb34dc4 commit 5551c55

File tree

2 files changed

+58
-3
lines changed

2 files changed

+58
-3
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: 2ba7729ae742d163e79cf47f9d6de4856ccb1bfa
2+
refs/heads/master: ef65542b1d9b80272e1f8c49db47b45622c10ef8

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

Lines changed: 57 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
use std;
44
import std::ivec;
5+
import std::option::none;
6+
import std::option::some;
57

68
fn test_reserve_and_on_heap() {
79
let int[] v = ~[ 1, 2 ];
@@ -37,14 +39,14 @@ fn test_unsafe_ptrs() {
3739
fn test_init_fn() {
3840
fn square(uint n) -> uint { ret n * n; }
3941

40-
// Test on-stack init-fn.
42+
// Test on-stack init_fn.
4143
auto v = ivec::init_fn(square, 3u);
4244
assert (ivec::len(v) == 3u);
4345
assert (v.(0) == 0u);
4446
assert (v.(1) == 1u);
4547
assert (v.(2) == 4u);
4648

47-
// Test on-heap init-fn.
49+
// Test on-heap init_fn.
4850
v = ivec::init_fn(square, 5u);
4951
assert (ivec::len(v) == 5u);
5052
assert (v.(0) == 0u);
@@ -54,9 +56,62 @@ fn test_init_fn() {
5456
assert (v.(4) == 16u);
5557
}
5658

59+
fn test_init_elt() {
60+
// Test on-stack init_elt.
61+
auto v = ivec::init_elt(10u, 2u);
62+
assert (ivec::len(v) == 2u);
63+
assert (v.(0) == 10u);
64+
assert (v.(1) == 10u);
65+
66+
// Test on-heap init_elt.
67+
v = ivec::init_elt(20u, 6u);
68+
assert (v.(0) == 20u);
69+
assert (v.(1) == 20u);
70+
assert (v.(2) == 20u);
71+
assert (v.(3) == 20u);
72+
assert (v.(4) == 20u);
73+
assert (v.(5) == 20u);
74+
}
75+
76+
fn test_last() {
77+
auto n = ivec::last(~[]);
78+
assert (n == none);
79+
n = ivec::last(~[ 1, 2, 3 ]);
80+
assert (n == some(3));
81+
n = ivec::last(~[ 1, 2, 3, 4, 5 ]);
82+
assert (n == some(5));
83+
}
84+
85+
fn test_slice() {
86+
// Test on-stack -> on-stack slice.
87+
auto v = ivec::slice(~[ 1, 2, 3 ], 1u, 3u);
88+
assert (ivec::len(v) == 2u);
89+
assert (v.(0) == 2);
90+
assert (v.(1) == 3);
91+
92+
// Test on-heap -> on-stack slice.
93+
v = ivec::slice(~[ 1, 2, 3, 4, 5 ], 0u, 3u);
94+
assert (ivec::len(v) == 3u);
95+
assert (v.(0) == 1);
96+
assert (v.(1) == 2);
97+
assert (v.(2) == 3);
98+
99+
// Test on-heap -> on-heap slice.
100+
v = ivec::slice(~[ 1, 2, 3, 4, 5, 6 ], 1u, 6u);
101+
assert (ivec::len(v) == 5u);
102+
assert (v.(0) == 2);
103+
assert (v.(1) == 3);
104+
assert (v.(2) == 4);
105+
assert (v.(3) == 5);
106+
assert (v.(4) == 6);
107+
}
108+
57109
fn main() {
58110
test_reserve_and_on_heap();
59111
test_unsafe_ptrs();
60112
test_init_fn();
113+
test_init_elt();
114+
test_last();
115+
test_slice();
61116
}
62117

0 commit comments

Comments
 (0)