Skip to content

Commit f41d359

Browse files
thestingerbrson
authored andcommitted
---
yaml --- r: 38047 b: refs/heads/try c: e00c3b0 h: refs/heads/master i: 38045: 165dbf3 38043: 50cde2f 38039: d35d984 38031: 4c31daf 38015: 37ce93c v: v3
1 parent b8e0e0a commit f41d359

File tree

2 files changed

+24
-14
lines changed

2 files changed

+24
-14
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
refs/heads/master: 09bb07bed9166105ea961a42b5fff7739ae0d2e9
33
refs/heads/snap-stage1: e33de59e47c5076a89eadeb38f4934f58a3618a6
44
refs/heads/snap-stage3: eb8fd119c65c67f3b1b8268cc7341c22d39b7b61
5-
refs/heads/try: 8b13bf75306d7b5645531a0eb273b9ce9805e009
5+
refs/heads/try: e00c3b05e110ab4b3cf6d60e29c59fad2b5921d6
66
refs/tags/release-0.1: 1f5c5126e96c79d22cb7862f75304136e204f105
77
refs/heads/ndm: f3868061cd7988080c30d6d5bf352a5a5fe2460b
88
refs/heads/try2: a810c03263670238bccd64cabb12a23a46e3a278

branches/try/src/libstd/priority_queue.rs

Lines changed: 23 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -78,10 +78,10 @@ impl <T: Copy Ord> PriorityQueue<T> {
7878
/// Consume the PriorityQueue and return a vector in sorted (ascending) order
7979
pure fn to_sorted_vec(self) -> ~[T] {
8080
let mut q = self;
81-
let mut end = q.len() - 1;
82-
while end > 0 {
83-
q.data[end] <-> q.data[0];
81+
let mut end = q.len();
82+
while end > 1 {
8483
end -= 1;
84+
q.data[end] <-> q.data[0];
8585
unsafe { q.siftup_range(0, end) } // purity-checking workaround
8686
}
8787
q.to_vec()
@@ -206,10 +206,27 @@ mod tests {
206206
assert heap.len() == 5;
207207
}
208208

209+
fn check_to_vec(data: ~[int]) {
210+
let heap = from_vec(data);
211+
assert merge_sort(heap.to_vec(), le) == merge_sort(data, le);
212+
assert heap.to_sorted_vec() == merge_sort(data, le);
213+
}
214+
209215
#[test]
210-
fn test_to_sorted_vec() {
211-
let data = ~[2, 4, 6, 2, 1, 8, 10, 3, 5, 7, 0, 9, 1];
212-
assert from_vec(data).to_sorted_vec() == merge_sort(data, le);
216+
fn test_to_vec() {
217+
check_to_vec(~[]);
218+
check_to_vec(~[5]);
219+
check_to_vec(~[3, 2]);
220+
check_to_vec(~[2, 3]);
221+
check_to_vec(~[5, 1, 2]);
222+
check_to_vec(~[1, 100, 2, 3]);
223+
check_to_vec(~[1, 3, 5, 7, 9, 2, 4, 6, 8, 0]);
224+
check_to_vec(~[2, 4, 6, 2, 1, 8, 10, 3, 5, 7, 0, 9, 1]);
225+
check_to_vec(~[9, 11, 9, 9, 9, 9, 11, 2, 3, 4, 11, 9, 0, 0, 0, 0]);
226+
check_to_vec(~[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]);
227+
check_to_vec(~[10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]);
228+
check_to_vec(~[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 0, 0, 1, 2]);
229+
check_to_vec(~[5, 4, 3, 2, 1, 5, 4, 3, 2, 1, 5, 4, 3, 2, 1]);
213230
}
214231

215232
#[test]
@@ -237,11 +254,4 @@ mod tests {
237254
let mut heap = from_vec::<int>(~[]);
238255
heap.replace(5);
239256
}
240-
241-
#[test]
242-
fn test_to_vec() {
243-
let data = ~[1, 3, 5, 7, 9, 2, 4, 6, 8, 0];
244-
let heap = from_vec(copy data);
245-
assert merge_sort(heap.to_vec(), le) == merge_sort(data, le);
246-
}
247257
}

0 commit comments

Comments
 (0)