Files
c3c/test/unit/stdlib/collections/priorityqueue.c3
Christoffer Lerno 8b49e6c14d Rename def to alias.
2025-03-13 11:22:27 +01:00

62 lines
1.2 KiB
Plaintext

module priorityqueue_test @test;
import std::collections;
import std::collections::priorityqueue;
alias Queue = PriorityQueue{int};
fn void priorityqueue()
{
Queue q;
defer q.free();
assert(q.is_empty());
q.push(1);
q.push(2);
assert(q.len() == 2);
int x;
x = q.pop()!!;
assert(x == 1, "got %d; want %d", x, 1);
x = q.pop()!!;
assert(x == 2, "got %d; want %d", x, 2);
q.push(3);
q.push(2);
q.push(1);
x = q.pop()!!;
assert(x == 1, "got %d; want %d", x, 1);
x = q.pop()!!;
assert(x == 2, "got %d; want %d", x, 2);
x = q.pop()!!;
assert(x == 3, "got %d; want %d", x, 3);
}
alias QueueMax = PriorityQueueMax{int};
fn void priorityqueue_max()
{
QueueMax q;
defer q.free();
assert(q.is_empty());
q.push(1);
q.push(2);
assert(q.len() == 2);
int x;
x = q.pop()!!;
assert(x == 2, "got %d; want %d", x, 2);
x = q.pop()!!;
assert(x == 1, "got %d; want %d", x, 1);
q.push(3);
q.push(2);
q.push(1);
x = q.pop()!!;
assert(x == 3, "got %d; want %d", x, 3);
x = q.pop()!!;
assert(x == 2, "got %d; want %d", x, 2);
x = q.pop()!!;
assert(x == 1, "got %d; want %d", x, 1);
}