2021-12-26 17:01:36 +03:00
|
|
|
import datatypes as dt
|
2021-12-23 16:16:29 +03:00
|
|
|
|
|
|
|
fn test_is_empty() {
|
2021-12-26 17:01:36 +03:00
|
|
|
mut stack := dt.Stack<int>{}
|
2021-12-23 16:16:29 +03:00
|
|
|
assert stack.is_empty() == true
|
|
|
|
stack.push(1)
|
|
|
|
assert stack.is_empty() == false
|
|
|
|
}
|
|
|
|
|
|
|
|
fn test_len() ? {
|
2021-12-26 17:01:36 +03:00
|
|
|
mut stack := dt.Stack<int>{}
|
2021-12-23 16:16:29 +03:00
|
|
|
assert stack.len() == 0
|
|
|
|
stack.push(1)
|
|
|
|
assert stack.len() == 1
|
2022-05-13 06:56:21 +03:00
|
|
|
stack.pop()?
|
2021-12-23 16:16:29 +03:00
|
|
|
assert stack.len() == 0
|
|
|
|
}
|
|
|
|
|
|
|
|
fn test_peek() ? {
|
2021-12-26 17:01:36 +03:00
|
|
|
mut stack := dt.Stack<int>{}
|
2021-12-23 16:16:29 +03:00
|
|
|
stack.push(1)
|
2022-05-13 06:56:21 +03:00
|
|
|
assert stack.peek()? == 1
|
2021-12-23 16:16:29 +03:00
|
|
|
stack.push(2)
|
2022-05-13 06:56:21 +03:00
|
|
|
assert stack.peek()? == 2
|
2021-12-26 17:01:36 +03:00
|
|
|
stack = dt.Stack<int>{}
|
2021-12-23 16:16:29 +03:00
|
|
|
stack.peek() or { return }
|
|
|
|
assert false
|
|
|
|
}
|
|
|
|
|
|
|
|
fn test_push() ? {
|
2021-12-26 17:01:36 +03:00
|
|
|
mut stack := dt.Stack<int>{}
|
2021-12-23 16:16:29 +03:00
|
|
|
stack.push(1)
|
2022-05-13 06:56:21 +03:00
|
|
|
assert stack.peek()? == 1
|
2021-12-23 16:16:29 +03:00
|
|
|
stack.push(2)
|
2022-05-13 06:56:21 +03:00
|
|
|
assert stack.peek()? == 2
|
2021-12-23 16:16:29 +03:00
|
|
|
stack.push(3)
|
2022-05-13 06:56:21 +03:00
|
|
|
assert stack.peek()? == 3
|
2021-12-23 16:16:29 +03:00
|
|
|
}
|
|
|
|
|
|
|
|
fn test_pop() ? {
|
2021-12-26 17:01:36 +03:00
|
|
|
mut stack := dt.Stack<int>{}
|
2021-12-23 16:16:29 +03:00
|
|
|
stack.push(1)
|
|
|
|
stack.push(2)
|
|
|
|
stack.push(3)
|
2022-05-13 06:56:21 +03:00
|
|
|
assert stack.pop()? == 3
|
2021-12-23 16:16:29 +03:00
|
|
|
stack.push(4)
|
2022-05-13 06:56:21 +03:00
|
|
|
assert stack.pop()? == 4
|
|
|
|
assert stack.pop()? == 2
|
2021-12-26 17:01:36 +03:00
|
|
|
stack = dt.Stack<int>{}
|
2021-12-23 16:16:29 +03:00
|
|
|
stack.pop() or { return }
|
|
|
|
assert false
|
|
|
|
}
|