2021-12-26 17:01:36 +03:00
|
|
|
module datatypes
|
2021-12-23 19:57:15 +03:00
|
|
|
|
|
|
|
fn test_is_empty() {
|
2022-11-26 19:23:26 +03:00
|
|
|
mut queue := Queue[int]{}
|
2021-12-23 19:57:15 +03:00
|
|
|
assert queue.is_empty() == true
|
|
|
|
queue.push(1)
|
|
|
|
assert queue.is_empty() == false
|
|
|
|
}
|
|
|
|
|
2022-11-28 11:24:47 +03:00
|
|
|
fn test_len() {
|
2022-11-26 19:23:26 +03:00
|
|
|
mut queue := Queue[int]{}
|
2021-12-23 19:57:15 +03:00
|
|
|
assert queue.len() == 0
|
|
|
|
queue.push(1)
|
|
|
|
assert queue.len() == 1
|
2022-11-28 11:24:47 +03:00
|
|
|
queue.pop()!
|
2021-12-23 19:57:15 +03:00
|
|
|
assert queue.len() == 0
|
|
|
|
}
|
|
|
|
|
2022-11-28 11:24:47 +03:00
|
|
|
fn test_peek() {
|
2022-11-26 19:23:26 +03:00
|
|
|
mut queue := Queue[int]{}
|
2021-12-23 19:57:15 +03:00
|
|
|
queue.push(1)
|
2022-11-28 11:24:47 +03:00
|
|
|
assert queue.peek()! == 1
|
2021-12-23 19:57:15 +03:00
|
|
|
queue.push(2)
|
2022-11-28 11:24:47 +03:00
|
|
|
assert queue.peek()! == 1
|
2022-11-26 19:23:26 +03:00
|
|
|
queue = Queue[int]{}
|
2021-12-23 19:57:15 +03:00
|
|
|
queue.peek() or { return }
|
|
|
|
assert false
|
|
|
|
}
|
|
|
|
|
2022-11-28 11:24:47 +03:00
|
|
|
fn test_last() {
|
2022-11-26 19:23:26 +03:00
|
|
|
mut queue := Queue[int]{}
|
2021-12-29 09:01:47 +03:00
|
|
|
queue.push(1)
|
2022-11-28 11:24:47 +03:00
|
|
|
assert queue.last()! == 1
|
2021-12-29 09:01:47 +03:00
|
|
|
queue.push(2)
|
2022-11-28 11:24:47 +03:00
|
|
|
assert queue.last()! == 2
|
2022-11-26 19:23:26 +03:00
|
|
|
queue = Queue[int]{}
|
2021-12-29 09:01:47 +03:00
|
|
|
queue.last() or { return }
|
|
|
|
assert false
|
|
|
|
}
|
|
|
|
|
2022-11-28 11:24:47 +03:00
|
|
|
fn test_index() {
|
2022-11-26 19:23:26 +03:00
|
|
|
mut queue := Queue[int]{}
|
2022-01-16 20:11:10 +03:00
|
|
|
queue.push(1)
|
2022-11-28 11:24:47 +03:00
|
|
|
assert queue.index(0)! == 1
|
2022-01-16 20:11:10 +03:00
|
|
|
queue.push(2)
|
2022-11-28 11:24:47 +03:00
|
|
|
assert queue.index(1)! == 2
|
|
|
|
queue.pop()!
|
2022-01-16 20:11:10 +03:00
|
|
|
queue.index(1) or { return }
|
|
|
|
assert false
|
|
|
|
}
|
|
|
|
|
2022-11-28 11:24:47 +03:00
|
|
|
fn test_push() {
|
2022-11-26 19:23:26 +03:00
|
|
|
mut queue := Queue[int]{}
|
2021-12-23 19:57:15 +03:00
|
|
|
queue.push(1)
|
|
|
|
queue.push(2)
|
2022-11-28 11:24:47 +03:00
|
|
|
assert queue.peek()! == 1
|
2021-12-23 19:57:15 +03:00
|
|
|
}
|
|
|
|
|
2022-11-28 11:24:47 +03:00
|
|
|
fn test_pop() {
|
2022-11-26 19:23:26 +03:00
|
|
|
mut queue := Queue[int]{}
|
2021-12-23 19:57:15 +03:00
|
|
|
queue.push(1)
|
|
|
|
queue.push(2)
|
|
|
|
queue.push(3)
|
2022-11-28 11:24:47 +03:00
|
|
|
assert queue.pop()! == 1
|
2021-12-23 19:57:15 +03:00
|
|
|
queue.push(4)
|
2022-11-28 11:24:47 +03:00
|
|
|
assert queue.pop()! == 2
|
|
|
|
assert queue.pop()! == 3
|
2022-11-26 19:23:26 +03:00
|
|
|
queue = Queue[int]{}
|
2021-12-23 19:57:15 +03:00
|
|
|
queue.pop() or { return }
|
|
|
|
assert false
|
|
|
|
}
|
2022-08-25 14:12:39 +03:00
|
|
|
|
2022-11-28 11:24:47 +03:00
|
|
|
fn test_array() {
|
2022-11-26 19:23:26 +03:00
|
|
|
mut queue := Queue[int]{}
|
2022-08-25 14:12:39 +03:00
|
|
|
queue.push(1)
|
|
|
|
queue.push(2)
|
|
|
|
assert queue.array() == [1, 2]
|
|
|
|
}
|