nimdeque/example.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!"