""" Time performance of two queue implementations """

from time import time
from queues import PLQueue, LLQueue


def time_queue(queue, num_elements):
    print('Adding {} elements to queue'.format(num_elements))
    start = time()
    for i in range(num_elements):
        queue.add(i)
    finish = time() - start
    print('Time to add {} elements: {}'.format(num_elements, finish))
    print('Removing {} elements from queue'.format(num_elements))
    start = time()
    for i in range(num_elements):
        queue.remove()
    finish = time() - start
    print('Time to remove {} elements: {}'.format(num_elements, finish))

if __name__ == '__main__':
    num_elements = 10000
    pylistqueue = PLQueue()
    print('Timing PLQueue...\n========')
    time_queue(pylistqueue, num_elements)
    print('\n\n')
    lnklistqueue = LLQueue()
    print('Timing LLQueue...\n========')
    time_queue(lnklistqueue, num_elements)
