-
-
Notifications
You must be signed in to change notification settings - Fork 524
/
Copy pathsimple_linked_list_test.rb
142 lines (121 loc) · 2.98 KB
/
simple_linked_list_test.rb
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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
require 'minitest/autorun'
require_relative 'simple_linked_list'
class LinkedListTest < Minitest::Test
def test_element
element = Element.new(1)
assert_equal 1, element.datum
end
def test_element_can_hold_a_different_value
skip
element = Element.new(10)
assert_equal 10, element.datum
end
def test_element_next
skip
element = Element.new(1)
assert_nil element.next
end
def test_element_next_can_be_assigned_to
skip
first = Element.new(1)
second = Element.new(2)
first.next = second
assert_equal second, first.next
end
def test_list_push
skip
list = SimpleLinkedList.new
element = Element.new(1)
assert_equal list, list.push(element)
end
def test_list_pop
skip
list = SimpleLinkedList.new
element = Element.new(1)
list.push(element)
assert_equal element, list.pop
end
def test_list_pop_empty
skip
list = SimpleLinkedList.new
assert_nil list.pop
end
def test_list_pop_is_last_in_first_out
skip
list = SimpleLinkedList.new
first = Element.new(1)
second = Element.new(2)
list.push(first).push(second)
assert_equal second, list.pop
end
def test_list_empty_to_array
skip
list = SimpleLinkedList.new
assert_empty list.to_a
end
def test_list_single_to_array
skip
list = SimpleLinkedList.new
first = Element.new(1)
list.push(first)
assert_equal [1], list.to_a
end
def test_list_multiple_to_array
skip
list = SimpleLinkedList.new
first = Element.new(1)
second = Element.new(2)
third = Element.new(3)
list.push(first).push(second).push(third)
assert_equal [3, 2, 1], list.to_a
end
def test_list_create_from_array
skip
array = [1, 2, 3]
list = SimpleLinkedList.new(array)
assert_equal [3, 2, 1], list.to_a
end
def test_list_created_from_array_still_made_up_of_elements
skip
array = [1, 2, 3]
list = SimpleLinkedList.new(array)
assert_instance_of Element, list.pop
end
def test_list_from_array_still_acts_as_lifo
skip
array = [1, 2, 3]
list = SimpleLinkedList.new(array)
element = list.pop
assert_equal 3, element.datum
end
def test_list_in_place_reverse!
skip
first = Element.new(1)
second = Element.new(2)
third = Element.new(3)
list = SimpleLinkedList.new
list.push(first).push(second).push(third)
assert_equal [1, 2, 3], list.reverse!.to_a
end
def test_list_in_place_reverse_are_the_same_elements
skip
first = Element.new(1)
second = Element.new(2)
list = SimpleLinkedList.new
list.push(first).push(second)
list.reverse!
assert_equal first, list.pop
assert_equal second, list.pop
end
def test_list_reverse_empty_list
skip
list = SimpleLinkedList.new
assert_equal list, list.reverse!
end
def test_works_for_1_through_10
skip
list = SimpleLinkedList.new(1..10)
expected = [10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
assert_equal expected, list.to_a
end
end