///|
test {
let _queue1 : @priority_queue.PriorityQueue[Int] = PriorityQueue([])
let _queue2 = @priority_queue.from_array([1, 2, 3])
}///|
test {
let pq = @priority_queue.PriorityQueue([])
@test.assert_eq(pq.length(), 0)
@test.assert_eq(pq.push(1).length(), 1)
}///|
test {
let pq : @priority_queue.PriorityQueue[Int] = PriorityQueue([])
@test.assert_eq(pq.is_empty(), true)
}///|
test {
let pq = @priority_queue.from_array([1, 2, 3, 4, 5])
@test.assert_eq(pq.peek(), Some(5))
// @json.json_inspect(pq)
// we have to add `@json` package in test-import
// it's reported unused package currently
}///|
test {
let pq : @priority_queue.PriorityQueue[Int] = PriorityQueue([])
@test.assert_eq(pq.push(1).peek(), Some(1))
}///|
test {
let pq = @priority_queue.from_array([5, 4, 3, 2, 1])
let val = match pq.pop() {
Some(q) => q.peek()
None => None
}
@test.assert_eq(val, Some(4))
}type PriorityQueue[A]impl Compare for PriorityQueue[A]test {
let pq1 = @priority_queue.from_array([1, 2, 3])
let pq2 = @priority_queue.from_array([1, 2, 4])
let pq3 = @priority_queue.from_array([1, 2])
inspect(pq1.compare(pq2), content="-1") // pq1 < pq2
inspect(pq1.compare(pq3), content="1") // pq1 > pq3 (longer)
inspect(pq3.compare(pq1), content="-1") // pq3 < pq1 (shorter)
inspect(pq1.compare(pq1), content="0") // pq1 = pq1
}impl Eq for PriorityQueue[A]impl Hash for PriorityQueue[A]impl Show for PriorityQueue[A]impl ToJson for PriorityQueue[A]impl Debug for PriorityQueue[A]#as_free_fn(of, deprecated="Use from_array instead")
#alias(of, deprecated="Use from_array instead")
#as_free_fn(from_array)
#alias(from_array)
fn[A : Compare + Eq] PriorityQueue::PriorityQueue(array : ArrayView[A]) -> PriorityQueue[A]test {
let queue = @priority_queue.PriorityQueue([1, 2, 3, 4, 5])
inspect(queue.length(), content="5")
}fn[A : Compare + Eq] PriorityQueue::compare(self : PriorityQueue[A], other : PriorityQueue[A]) -> Intfn[A : Compare + Eq] PriorityQueue::equal(self : PriorityQueue[A], other : PriorityQueue[A]) -> Bool#as_free_fn(from_iterator, deprecated="Use PriorityQueue::from_iter instead.")
#alias(from_iterator, deprecated="`from_iterator` is deprecated, use `from_iter` instead")
#as_free_fn
fn[A : Compare + Eq] PriorityQueue::from_iter(iter : Iter[A]) -> PriorityQueue[A]test {
let queue = @priority_queue.PriorityQueue([])
inspect(queue.is_empty(), content="true")
@test.assert_eq(queue.push(1).is_empty(), false)
}#alias(iterator, deprecated="`iterator` is deprecated, use `iter` instead")
fn[A : Compare + Eq] PriorityQueue::iter(self : PriorityQueue[A]) -> Iter[A]test {
let queue = @priority_queue.PriorityQueue([])
inspect(queue.length(), content="0")
@test.assert_eq(queue.push(1).length(), 1)
}#as_free_fn(deprecated="Use `PriorityQueue([])` instead")
#deprecated("Use `PriorityQueue([])` instead")
fn[A] PriorityQueue::new() -> PriorityQueue[A]test {
let queue = @priority_queue.from_array([1, 2, 3, 4])
@test.assert_eq(queue.peek(), Some(4))
}test {
let queue = @priority_queue.from_array([1, 2, 3, 4])
let first = queue.pop()
@test.assert_eq(first, Some(@priority_queue.from_array([1, 2, 3])))
}test {
let queue = @priority_queue.PriorityQueue([])
@test.assert_eq(queue.push(1).length(), 1)
}Install
Installed by default