///|
test {
let _queue : @queue.Queue[Int] = Queue([])
let _queue1 = @queue.from_array([1, 2, 3])
}///|
test {
let queue = @queue.from_array([1, 2, 3])
queue.clear()
}///|
test {
let queue = @queue.from_array([1, 2, 3])
@test.assert_eq(queue.length(), 3)
@test.assert_eq(queue.is_empty(), false)
}///|
test {
let queue = @queue.Queue([])
queue.push(1)
queue.push(2)
@test.assert_eq(queue.pop(), Some(1))
@test.assert_eq(queue.pop(), Some(2))
}///|
test {
let queue = @queue.from_array([1, 2, 3])
@test.assert_eq(queue.peek(), Some(1))
}///|
test {
let queue = @queue.from_iter([1, 2, 3].iter())
@test.assert_eq(queue.length(), 3)
}///|
test {
let queue = @queue.from_array([1, 2, 3])
// each
let buf = []
queue.each(fn(x) { buf.push(x) })
@test.assert_eq(buf, [1, 2, 3])
// eachi
let pairs = []
queue.eachi(fn(i, x) { pairs.push((i, x)) })
@test.assert_eq(pairs, [(0, 1), (1, 2), (2, 3)])
// fold
let sum = queue.fold(init=0, fn(acc, x) { acc + x })
@test.assert_eq(sum, 6)
}///|
test {
let queue = @queue.from_array([1, 2, 3])
debug_inspect(queue.iter().to_array(), content="[1, 2, 3]")
}///|
test {
let queue = @queue.from_array([1, 2, 3])
let cloned = queue.copy()
@test.assert_eq(cloned.pop(), Some(1))
@test.assert_eq(queue.length(), 3) // original unchanged
}///|
test {
let dst = @queue.from_array([1, 2])
let src = @queue.from_array([3, 4])
src.transfer(dst)
@test.assert_eq(src.is_empty(), true)
@test.assert_eq(dst.length(), 4)
@test.assert_eq(dst.pop(), Some(1))
}type Queue[A]test {
let array = Array::makei(3, idx => idx + 1)
let queue : @queue.Queue[Int] = Queue(array)
@test.assert_eq(queue.length(), 3)
}test {
let queue : @queue.Queue[Int] = @queue.from_array([1, 2, 3, 4])
queue.clear()
}test {
let queue : @queue.Queue[Int] = @queue.from_array([1, 2, 3, 4])
let queue2 : @queue.Queue[Int] = queue.copy()
@test.assert_eq(queue2.length(), 4)
}test {
let queue : @queue.Queue[Int] = @queue.from_array([1, 2, 3, 4])
let mut sum = 0
queue.each(x => sum x)
inspect(sum, content="10")
}test {
let queue : @queue.Queue[Int] = @queue.from_array([1, 2, 3, 4])
let mut sum = 0
queue.eachi((i, x) => sum i * x)
inspect(sum, content="20")
}test {
let queue : @queue.Queue[Int] = Queue([])
let sum = queue.fold(init=0, (acc, x) => acc + x)
@test.assert_eq(sum, 0)
}test {
let queue : @queue.Queue[Int] = @queue.from_iter(Iter::empty())
@test.assert_eq(queue.length(), 0)
}test {
let queue : @queue.Queue[Int] = Queue([])
assert_true(queue.is_empty())
}test {
let queue : @queue.Queue[Int] = @queue.from_array([5, 6, 7, 8])
let sum = queue.iter().fold((x, y) => x + y, init=0)
@test.assert_eq(sum, 26)
}test {
let queue : @queue.Queue[Int] = Queue([])
@test.assert_eq(queue.length(), 0)
}test {
let queue : @queue.Queue[Int] = @queue.from_array([1, 2, 3, 4])
@test.assert_eq(queue.peek(), Some(1))
}test {
let queue : @queue.Queue[Int] = @queue.from_array([1, 2, 3, 4])
@test.assert_eq(queue.pop(), Some(1))
}test {
let queue : @queue.Queue[Int] = Queue([])
queue.push(1)
}test {
let dst : @queue.Queue[Int] = Queue([])
let src : @queue.Queue[Int] = @queue.from_array([5, 6, 7, 8])
src.transfer(dst)
}Install
Installed by default