33 lines
923 B
Nim
33 lines
923 B
Nim
import strformat
|
|
import src/nimdeque
|
|
|
|
|
|
when isMainModule:
|
|
const size = 10000
|
|
var deque = newLinkedDeque[int]()
|
|
echo &"Generating {size} values"
|
|
for i in countup(0, size, 1):
|
|
deque.add(i)
|
|
echo "Checking values"
|
|
for i in countup(0, size, 1):
|
|
doAssert deque[i] == i
|
|
echo "Popping off the head"
|
|
doAssert deque.pop() == 0
|
|
echo "Popping off the tail"
|
|
doAssert deque.pop(deque.high()) == size
|
|
echo "Checking new head"
|
|
doAssert deque[0] == 1
|
|
echo "Checking new tail"
|
|
doAssert deque[deque.high()] == size - 1
|
|
echo "Re-checking values"
|
|
for i in countup(0, size - 2, 1):
|
|
doAssert deque[i] == i + 1
|
|
echo "Appending value at the beginning"
|
|
deque.addLeft(0)
|
|
echo "Re-checking head"
|
|
doAssert deque[0] == 0
|
|
echo "Re-checking values"
|
|
for i in countup(0, size - 1, 1):
|
|
doAssert deque[i] == i
|
|
echo "All tests passed!"
|