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

Function index_min_pq

tests/test_common.rs:91–122  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

89
90#[test]
91fn index_min_pq() {
92 fn queue(i: &str) -> Queue<&str> {
93 let mut queue = Queue::default();
94 for s in i.split_whitespace() {
95 queue.enqueue(s);
96 }
97 queue
98 }
99 let mut inputs = vec![
100 queue("A B C F G I I Z"),
101 queue("B D H P Q Q"),
102 queue("A B E F J N"),
103 ];
104
105 // init
106 let mut pq = IndexPQ::new_min_pq(inputs.len());
107 for i in 0..inputs.len() {
108 if let Some(v) = inputs[i].dequeue() {
109 let _ = pq.enqueue(i, v);
110 }
111 }
112
113 let mut vec = Vec::new();
114 while !pq.is_empty() {
115 vec.push(pq.peek_key().unwrap().to_string());
116 let i = pq.dequeue().unwrap();
117 if let Some(v) = inputs[i as usize].dequeue() {
118 let _ = pq.enqueue(i as usize, v);
119 }
120 }
121 assert_eq!("A A B B B C D E F F G H I I J N P Q Q Z", vec.join(" "));
122}
123
124#[test]
125fn index_max_pq() {

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