>>> test_stack()
()
| 159 | |
| 160 | |
| 161 | def test_stack() -> None: |
| 162 | """ |
| 163 | >>> test_stack() |
| 164 | """ |
| 165 | stack: Stack[int] = Stack(10) |
| 166 | assert bool(stack) is False |
| 167 | assert stack.is_empty() is True |
| 168 | assert stack.is_full() is False |
| 169 | assert str(stack) == "[]" |
| 170 | |
| 171 | try: |
| 172 | _ = stack.pop() |
| 173 | raise AssertionError # This should not happen |
| 174 | except StackUnderflowError: |
| 175 | assert True # This should happen |
| 176 | |
| 177 | try: |
| 178 | _ = stack.peek() |
| 179 | raise AssertionError # This should not happen |
| 180 | except StackUnderflowError: |
| 181 | assert True # This should happen |
| 182 | |
| 183 | for i in range(10): |
| 184 | assert stack.size() == i |
| 185 | stack.push(i) |
| 186 | |
| 187 | assert bool(stack) |
| 188 | assert not stack.is_empty() |
| 189 | assert stack.is_full() |
| 190 | assert str(stack) == str(list(range(10))) |
| 191 | assert stack.pop() == 9 |
| 192 | assert stack.peek() == 8 |
| 193 | |
| 194 | stack.push(100) |
| 195 | assert str(stack) == str([0, 1, 2, 3, 4, 5, 6, 7, 8, 100]) |
| 196 | |
| 197 | try: |
| 198 | stack.push(200) |
| 199 | raise AssertionError # This should not happen |
| 200 | except StackOverflowError: |
| 201 | assert True # This should happen |
| 202 | |
| 203 | assert not stack.is_empty() |
| 204 | assert stack.size() == 10 |
| 205 | |
| 206 | assert 5 in stack |
| 207 | assert 55 not in stack |
| 208 | |
| 209 | |
| 210 | if __name__ == "__main__": |