-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtest_stack_queue_pseudo.py
More file actions
73 lines (54 loc) · 1.76 KB
/
test_stack_queue_pseudo.py
File metadata and controls
73 lines (54 loc) · 1.76 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
import pytest
from stacks.stacks import Node, Stack
from stack_queue_pseudo.stack_queue_pseuodo import PseuedoQueue
def test_can_instantiate_a_new_PseuedoQueue_class():
new_pseudo = PseuedoQueue()
actual1 = new_pseudo.stack1.top
actual2 = new_pseudo.stack2.top
expected1 = None
expected2 = None
assert actual1 == expected1
assert actual2 == expected2
def test_can_succefully_enqueue_one_value():
new_pseudo = PseuedoQueue()
new_pseudo.enqueue("a")
actual = new_pseudo.stack1.top.value
expected = "a"
assert actual == expected
def test_can_succesfully_enqueue_multiple_values(new_pseudo):
actual1 = new_pseudo.stack1.top.value
expected1 = "d"
actual2 = new_pseudo.stack1.top.next.value
expected2 = "c"
assert actual1 == expected1
assert actual2 == expected2
def test_can_succesfully_dequeue_one_node(new_pseudo):
actual = new_pseudo.dequeue()
expected = "a"
assert actual == expected
def test_can_succesfully_dequeue_until_empty(new_pseudo):
while not new_pseudo.isEmpty():
new_pseudo.dequeue()
assert new_pseudo.stack1.isEmpty()
def test_dequeeing_an_empty_queue_will_raise_exception():
empty_pseudo = PseuedoQueue()
with pytest.raises(Exception):
empty_pseudo.dequeue()
######################
# Fixtures
######################
@pytest.fixture
def new_pseudo():
new_pseudo = PseuedoQueue()
new_pseudo.enqueue("a")
new_pseudo.enqueue("b")
new_pseudo.enqueue("c")
new_pseudo.enqueue("d")
return new_pseudo
@pytest.fixture(autouse=True)
def clean():
"""runs before each test automatically
There's also a more advanced way to run code after each test as well
Check the docs for that. Hint: it uses yield
"""
new_pseudo = None