#!/usr/bin/env python

"""
append test

testing the timing of appending
"""

import time
import numpy as np


# lists:

def list_time(N):
    timing = []
    for i in xrange(0 ,100*N, N):
        l = []
        start = time.clock()
        for j in xrange(i):
            l.append(1)
        t = time.clock() - start
        timing.append( (i, t) )
    return  np.array(timing)

## numpy arrays:
def array_time(N):
    timing = []
    for i in xrange(0 , 100*N, N):
        a = np.empty((0,), dtype=np.int)
        start = time.clock()
        for j in xrange(i):
            np.append(a, 1)
        t = time.clock() - start
        timing.append( (i, t) )
    return np.array(timing)

#if you want to plot it:
import pylab


def plot(timing, title, p):
    pylab.subplot(1, 2, p)
    pylab.plot(timing[:,0], timing[:,1])
    pylab.title(title)
    pylab.xlabel('number of items')
    pylab.ylabel('time')

plot(list_time(100000), 'List',1)
plot(array_time(10000), 'Array',2)

pylab.show()



#pylab.show()