Skip to content

Commit 456d46d

Browse files
committed
---
yaml --- r: 4619 b: refs/heads/master c: 5c042a0 h: refs/heads/master i: 4617: 843905f 4615: f1ba257 v: v3
1 parent ae4f97e commit 456d46d

File tree

3 files changed

+86
-106
lines changed

3 files changed

+86
-106
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: 72773e6d4dedca633acbd5807d6a06a9e361c9c4
2+
refs/heads/master: 5c042a02cd3c2cbaa0a69cc6d7e90568593193d8

trunk/src/lib/bitv.rs

Lines changed: 3 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,9 @@ export difference;
1414
export set;
1515
export is_true;
1616
export is_false;
17-
export to_vec;
17+
export to_ivec;
1818
export to_str;
19-
export eq_vec;
19+
export eq_ivec;
2020

2121

2222
// FIXME: With recursive object types, we could implement binary methods like
@@ -145,39 +145,19 @@ fn is_false(v: &t) -> bool {
145145

146146
fn init_to_vec(v: t, i: uint) -> uint { ret if get(v, i) { 1u } else { 0u }; }
147147

148-
fn to_vec(v: &t) -> vec[uint] {
149-
let sub = bind init_to_vec(v, _);
150-
ret vec::init_fn[uint](sub, v.nbits);
151-
}
152-
153148
fn to_ivec(v: &t) -> [uint] {
154149
let sub = bind init_to_vec(v, _);
155150
ret ivec::init_fn[uint](sub, v.nbits);
156151
}
157152

158153
fn to_str(v: &t) -> str {
159154
let rs = "";
160-
for i: uint in bitv::to_vec(v) {
155+
for i: uint in to_ivec(v) {
161156
if i == 1u { rs += "1"; } else { rs += "0"; }
162157
}
163158
ret rs;
164159
}
165160

166-
167-
// FIXME: can we just use structural equality on to_vec?
168-
fn eq_vec(v0: &t, v1: &vec[uint]) -> bool {
169-
assert (v0.nbits == vec::len[uint](v1));
170-
let len = v0.nbits;
171-
let i = 0u;
172-
while i < len {
173-
let w0 = get(v0, i);
174-
let w1 = v1.(i);
175-
if !w0 && w1 != 0u || w0 && w1 == 0u { ret false; }
176-
i = i + 1u;
177-
}
178-
ret true;
179-
}
180-
181161
fn eq_ivec(v0: &t, v1: &[uint]) -> bool {
182162
assert (v0.nbits == ivec::len[uint](v1));
183163
let len = v0.nbits;

trunk/src/test/stdtest/bitv.rs

Lines changed: 82 additions & 82 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,26 @@
11

22
use std;
3-
import std::vec;
3+
import std::ivec;
44
import std::bitv;
55

66
#[test]
77
fn test_0_elements() {
88
let act;
99
let exp;
1010
act = bitv::create(0u, false);
11-
exp = vec::init_elt[uint](0u, 0u);
11+
exp = ivec::init_elt[uint](0u, 0u);
1212
// FIXME: why can't I write vec[uint]()?
1313

14-
assert (bitv::eq_vec(act, exp));
14+
assert (bitv::eq_ivec(act, exp));
1515
}
1616

1717
#[test]
1818
fn test_1_element() {
1919
let act;
2020
act = bitv::create(1u, false);
21-
assert (bitv::eq_vec(act, [0u]));
21+
assert (bitv::eq_ivec(act, ~[0u]));
2222
act = bitv::create(1u, true);
23-
assert (bitv::eq_vec(act, [1u]));
23+
assert (bitv::eq_ivec(act, ~[1u]));
2424
}
2525

2626
#[test]
@@ -29,11 +29,11 @@ fn test_10_elements() {
2929
// all 0
3030

3131
act = bitv::create(10u, false);
32-
assert (bitv::eq_vec(act, [0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u]));
32+
assert (bitv::eq_ivec(act, ~[0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u]));
3333
// all 1
3434

3535
act = bitv::create(10u, true);
36-
assert (bitv::eq_vec(act, [1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u]));
36+
assert (bitv::eq_ivec(act, ~[1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u]));
3737
// mixed
3838

3939
act = bitv::create(10u, false);
@@ -42,7 +42,7 @@ fn test_10_elements() {
4242
bitv::set(act, 2u, true);
4343
bitv::set(act, 3u, true);
4444
bitv::set(act, 4u, true);
45-
assert (bitv::eq_vec(act, [1u, 1u, 1u, 1u, 1u, 0u, 0u, 0u, 0u, 0u]));
45+
assert (bitv::eq_ivec(act, ~[1u, 1u, 1u, 1u, 1u, 0u, 0u, 0u, 0u, 0u]));
4646
// mixed
4747

4848
act = bitv::create(10u, false);
@@ -51,15 +51,15 @@ fn test_10_elements() {
5151
bitv::set(act, 7u, true);
5252
bitv::set(act, 8u, true);
5353
bitv::set(act, 9u, true);
54-
assert (bitv::eq_vec(act, [0u, 0u, 0u, 0u, 0u, 1u, 1u, 1u, 1u, 1u]));
54+
assert (bitv::eq_ivec(act, ~[0u, 0u, 0u, 0u, 0u, 1u, 1u, 1u, 1u, 1u]));
5555
// mixed
5656

5757
act = bitv::create(10u, false);
5858
bitv::set(act, 0u, true);
5959
bitv::set(act, 3u, true);
6060
bitv::set(act, 6u, true);
6161
bitv::set(act, 9u, true);
62-
assert (bitv::eq_vec(act, [1u, 0u, 0u, 1u, 0u, 0u, 1u, 0u, 0u, 1u]));
62+
assert (bitv::eq_ivec(act, ~[1u, 0u, 0u, 1u, 0u, 0u, 1u, 0u, 0u, 1u]));
6363
}
6464

6565
#[test]
@@ -68,17 +68,17 @@ fn test_31_elements() {
6868
// all 0
6969

7070
act = bitv::create(31u, false);
71-
assert (bitv::eq_vec(act,
72-
[0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u,
73-
0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u,
74-
0u, 0u, 0u, 0u, 0u]));
71+
assert (bitv::eq_ivec(act,
72+
~[0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u,
73+
0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u,
74+
0u, 0u, 0u, 0u, 0u]));
7575
// all 1
7676

7777
act = bitv::create(31u, true);
78-
assert (bitv::eq_vec(act,
79-
[1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u,
80-
1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u,
81-
1u, 1u, 1u, 1u, 1u]));
78+
assert (bitv::eq_ivec(act,
79+
~[1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u,
80+
1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u,
81+
1u, 1u, 1u, 1u, 1u]));
8282
// mixed
8383

8484
act = bitv::create(31u, false);
@@ -90,10 +90,10 @@ fn test_31_elements() {
9090
bitv::set(act, 5u, true);
9191
bitv::set(act, 6u, true);
9292
bitv::set(act, 7u, true);
93-
assert (bitv::eq_vec(act,
94-
[1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 0u, 0u, 0u, 0u, 0u,
95-
0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u,
96-
0u, 0u, 0u, 0u, 0u]));
93+
assert (bitv::eq_ivec(act,
94+
~[1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 0u, 0u, 0u, 0u, 0u,
95+
0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u,
96+
0u, 0u, 0u, 0u, 0u]));
9797
// mixed
9898

9999
act = bitv::create(31u, false);
@@ -105,10 +105,10 @@ fn test_31_elements() {
105105
bitv::set(act, 21u, true);
106106
bitv::set(act, 22u, true);
107107
bitv::set(act, 23u, true);
108-
assert (bitv::eq_vec(act,
109-
[0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u,
110-
0u, 0u, 0u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 0u, 0u,
111-
0u, 0u, 0u, 0u, 0u]));
108+
assert (bitv::eq_ivec(act,
109+
~[0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u,
110+
0u, 0u, 0u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 0u, 0u,
111+
0u, 0u, 0u, 0u, 0u]));
112112
// mixed
113113

114114
act = bitv::create(31u, false);
@@ -119,20 +119,20 @@ fn test_31_elements() {
119119
bitv::set(act, 28u, true);
120120
bitv::set(act, 29u, true);
121121
bitv::set(act, 30u, true);
122-
assert (bitv::eq_vec(act,
123-
[0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u,
124-
0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 1u, 1u,
125-
1u, 1u, 1u, 1u, 1u]));
122+
assert (bitv::eq_ivec(act,
123+
~[0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u,
124+
0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 1u, 1u,
125+
1u, 1u, 1u, 1u, 1u]));
126126
// mixed
127127

128128
act = bitv::create(31u, false);
129129
bitv::set(act, 3u, true);
130130
bitv::set(act, 17u, true);
131131
bitv::set(act, 30u, true);
132-
assert (bitv::eq_vec(act,
133-
[0u, 0u, 0u, 1u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u,
134-
0u, 0u, 0u, 0u, 1u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u,
135-
0u, 0u, 0u, 0u, 1u]));
132+
assert (bitv::eq_ivec(act,
133+
~[0u, 0u, 0u, 1u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u,
134+
0u, 0u, 0u, 0u, 1u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u,
135+
0u, 0u, 0u, 0u, 1u]));
136136
}
137137

138138
#[test]
@@ -141,17 +141,17 @@ fn test_32_elements() {
141141
// all 0
142142

143143
act = bitv::create(32u, false);
144-
assert (bitv::eq_vec(act,
145-
[0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u,
146-
0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u,
147-
0u, 0u, 0u, 0u, 0u, 0u]));
144+
assert (bitv::eq_ivec(act,
145+
~[0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u,
146+
0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u,
147+
0u, 0u, 0u, 0u, 0u, 0u]));
148148
// all 1
149149

150150
act = bitv::create(32u, true);
151-
assert (bitv::eq_vec(act,
152-
[1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u,
153-
1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u,
154-
1u, 1u, 1u, 1u, 1u, 1u]));
151+
assert (bitv::eq_ivec(act,
152+
~[1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u,
153+
1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u,
154+
1u, 1u, 1u, 1u, 1u, 1u]));
155155
// mixed
156156

157157
act = bitv::create(32u, false);
@@ -163,10 +163,10 @@ fn test_32_elements() {
163163
bitv::set(act, 5u, true);
164164
bitv::set(act, 6u, true);
165165
bitv::set(act, 7u, true);
166-
assert (bitv::eq_vec(act,
167-
[1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 0u, 0u, 0u, 0u, 0u,
168-
0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u,
169-
0u, 0u, 0u, 0u, 0u, 0u]));
166+
assert (bitv::eq_ivec(act,
167+
~[1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 0u, 0u, 0u, 0u, 0u,
168+
0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u,
169+
0u, 0u, 0u, 0u, 0u, 0u]));
170170
// mixed
171171

172172
act = bitv::create(32u, false);
@@ -178,10 +178,10 @@ fn test_32_elements() {
178178
bitv::set(act, 21u, true);
179179
bitv::set(act, 22u, true);
180180
bitv::set(act, 23u, true);
181-
assert (bitv::eq_vec(act,
182-
[0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u,
183-
0u, 0u, 0u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 0u, 0u,
184-
0u, 0u, 0u, 0u, 0u, 0u]));
181+
assert (bitv::eq_ivec(act,
182+
~[0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u,
183+
0u, 0u, 0u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 0u, 0u,
184+
0u, 0u, 0u, 0u, 0u, 0u]));
185185
// mixed
186186

187187
act = bitv::create(32u, false);
@@ -193,21 +193,21 @@ fn test_32_elements() {
193193
bitv::set(act, 29u, true);
194194
bitv::set(act, 30u, true);
195195
bitv::set(act, 31u, true);
196-
assert (bitv::eq_vec(act,
197-
[0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u,
198-
0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 1u, 1u,
199-
1u, 1u, 1u, 1u, 1u, 1u]));
196+
assert (bitv::eq_ivec(act,
197+
~[0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u,
198+
0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 1u, 1u,
199+
1u, 1u, 1u, 1u, 1u, 1u]));
200200
// mixed
201201

202202
act = bitv::create(32u, false);
203203
bitv::set(act, 3u, true);
204204
bitv::set(act, 17u, true);
205205
bitv::set(act, 30u, true);
206206
bitv::set(act, 31u, true);
207-
assert (bitv::eq_vec(act,
208-
[0u, 0u, 0u, 1u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u,
209-
0u, 0u, 0u, 0u, 1u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u,
210-
0u, 0u, 0u, 0u, 1u, 1u]));
207+
assert (bitv::eq_ivec(act,
208+
~[0u, 0u, 0u, 1u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u,
209+
0u, 0u, 0u, 0u, 1u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u,
210+
0u, 0u, 0u, 0u, 1u, 1u]));
211211
}
212212

213213
#[test]
@@ -216,17 +216,17 @@ fn test_33_elements() {
216216
// all 0
217217

218218
act = bitv::create(33u, false);
219-
assert (bitv::eq_vec(act,
220-
[0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u,
221-
0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u,
222-
0u, 0u, 0u, 0u, 0u, 0u, 0u]));
219+
assert (bitv::eq_ivec(act,
220+
~[0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u,
221+
0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u,
222+
0u, 0u, 0u, 0u, 0u, 0u, 0u]));
223223
// all 1
224224

225225
act = bitv::create(33u, true);
226-
assert (bitv::eq_vec(act,
227-
[1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u,
228-
1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u,
229-
1u, 1u, 1u, 1u, 1u, 1u, 1u]));
226+
assert (bitv::eq_ivec(act,
227+
~[1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u,
228+
1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u,
229+
1u, 1u, 1u, 1u, 1u, 1u, 1u]));
230230
// mixed
231231

232232
act = bitv::create(33u, false);
@@ -238,10 +238,10 @@ fn test_33_elements() {
238238
bitv::set(act, 5u, true);
239239
bitv::set(act, 6u, true);
240240
bitv::set(act, 7u, true);
241-
assert (bitv::eq_vec(act,
242-
[1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 0u, 0u, 0u, 0u, 0u,
243-
0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u,
244-
0u, 0u, 0u, 0u, 0u, 0u, 0u]));
241+
assert (bitv::eq_ivec(act,
242+
~[1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 0u, 0u, 0u, 0u, 0u,
243+
0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u,
244+
0u, 0u, 0u, 0u, 0u, 0u, 0u]));
245245
// mixed
246246

247247
act = bitv::create(33u, false);
@@ -253,10 +253,10 @@ fn test_33_elements() {
253253
bitv::set(act, 21u, true);
254254
bitv::set(act, 22u, true);
255255
bitv::set(act, 23u, true);
256-
assert (bitv::eq_vec(act,
257-
[0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u,
258-
0u, 0u, 0u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 0u, 0u,
259-
0u, 0u, 0u, 0u, 0u, 0u, 0u]));
256+
assert (bitv::eq_ivec(act,
257+
~[0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u,
258+
0u, 0u, 0u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 0u, 0u,
259+
0u, 0u, 0u, 0u, 0u, 0u, 0u]));
260260
// mixed
261261

262262
act = bitv::create(33u, false);
@@ -268,10 +268,10 @@ fn test_33_elements() {
268268
bitv::set(act, 29u, true);
269269
bitv::set(act, 30u, true);
270270
bitv::set(act, 31u, true);
271-
assert (bitv::eq_vec(act,
272-
[0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u,
273-
0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 1u, 1u,
274-
1u, 1u, 1u, 1u, 1u, 1u, 0u]));
271+
assert (bitv::eq_ivec(act,
272+
~[0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u,
273+
0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 1u, 1u,
274+
1u, 1u, 1u, 1u, 1u, 1u, 0u]));
275275
// mixed
276276

277277
act = bitv::create(33u, false);
@@ -280,9 +280,9 @@ fn test_33_elements() {
280280
bitv::set(act, 30u, true);
281281
bitv::set(act, 31u, true);
282282
bitv::set(act, 32u, true);
283-
assert (bitv::eq_vec(act,
284-
[0u, 0u, 0u, 1u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u,
285-
0u, 0u, 0u, 0u, 1u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u,
286-
0u, 0u, 0u, 0u, 1u, 1u, 1u]));
283+
assert (bitv::eq_ivec(act,
284+
~[0u, 0u, 0u, 1u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u,
285+
0u, 0u, 0u, 0u, 1u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u,
286+
0u, 0u, 0u, 0u, 1u, 1u, 1u]));
287287
}
288288

0 commit comments

Comments
 (0)