1
0
mirror of https://github.com/vlang/v.git synced 2023-08-10 21:13:21 +03:00
v/vlib/datatypes/stack_test.v

60 lines
1.0 KiB
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
}
fn test_array() {
mut stack := dt.Stack[int]{}
stack.push(1)
stack.push(2)
assert stack.array() == [1, 2]
}