MCPcopy Create free account
hub / github.com/douchuan/algorithm / index_max_pq

Function index_max_pq

tests/test_common.rs:125–156  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

123
124#[test]
125fn index_max_pq() {
126 fn queue(i: &str) -> Queue<&str> {
127 let mut queue = Queue::default();
128 for s in i.split_whitespace() {
129 queue.enqueue(s);
130 }
131 queue
132 }
133 let mut inputs = vec![
134 queue("A B C F G I I Z"),
135 queue("B D H P Q Q"),
136 queue("A B E F J N"),
137 ];
138
139 // init
140 let mut pq = IndexPQ::new_max_pq(inputs.len());
141 for i in 0..inputs.len() {
142 if let Some(v) = inputs[i].dequeue() {
143 let _ = pq.enqueue(i, v);
144 }
145 }
146
147 let mut vec = Vec::new();
148 while !pq.is_empty() {
149 vec.push(pq.peek_key().unwrap().to_string());
150 let i = pq.dequeue().unwrap();
151 if let Some(v) = inputs[i as usize].dequeue() {
152 let _ = pq.enqueue(i as usize, v);
153 }
154 }
155 assert_eq!("B D H P Q Q A B E F J N A B C F G I I Z", vec.join(" "));
156}
157
158#[test]
159fn quick_find_uf() {

Callers

nothing calls this directly

Calls 7

pushMethod · 0.80
peek_keyMethod · 0.80
lenMethod · 0.45
dequeueMethod · 0.45
enqueueMethod · 0.45
is_emptyMethod · 0.45
to_stringMethod · 0.45

Tested by

no test coverage detected