v/vlib/datatypes/stack_test.v

53 lines
950 B
V

import datatypes as dt
fn test_is_empty() {
mut stack := dt.Stack<int>{}
assert stack.is_empty() == true
stack.push(1)
assert stack.is_empty() == false
}
fn test_len() ? {
mut stack := dt.Stack<int>{}
assert stack.len() == 0
stack.push(1)
assert stack.len() == 1
stack.pop()?
assert stack.len() == 0
}
fn test_peek() ? {
mut stack := dt.Stack<int>{}
stack.push(1)
assert stack.peek()? == 1
stack.push(2)
assert stack.peek()? == 2
stack = dt.Stack<int>{}
stack.peek() or { return }
assert false
}
fn test_push() ? {
mut stack := dt.Stack<int>{}
stack.push(1)
assert stack.peek()? == 1
stack.push(2)
assert stack.peek()? == 2
stack.push(3)
assert stack.peek()? == 3
}
fn test_pop() ? {
mut stack := dt.Stack<int>{}
stack.push(1)
stack.push(2)
stack.push(3)
assert stack.pop()? == 3
stack.push(4)
assert stack.pop()? == 4
assert stack.pop()? == 2
stack = dt.Stack<int>{}
stack.pop() or { return }
assert false
}