import datatypes as dt fn test_is_empty() { mut stack := dt.Stack{} assert stack.is_empty() == true stack.push(1) assert stack.is_empty() == false } fn test_len() ? { mut stack := dt.Stack{} assert stack.len() == 0 stack.push(1) assert stack.len() == 1 stack.pop()? assert stack.len() == 0 } fn test_peek() ? { mut stack := dt.Stack{} stack.push(1) assert stack.peek()? == 1 stack.push(2) assert stack.peek()? == 2 stack = dt.Stack{} stack.peek() or { return } assert false } fn test_push() ? { mut stack := dt.Stack{} 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{} 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{} stack.pop() or { return } assert false }