from tester import *

# not running this test by default. No DOS against travis.

from PIL import PyAccess

import time

def iterate_get(size, access):
    (w,h) = size
    for x in range(w):
        for y in range(h):
            access[(x,y)]

def iterate_set(size, access):
    (w,h) = size
    for x in range(w):
        for y in range(h):
            access[(x,y)] = access[(x,y)]

def timer(func, label, *args):
    starttime = time.time()
    func(*args)
    endtime = time.time()
    print ("%s: %.4f s" %(label, endtime-starttime))

def test_direct():
    im = lena()
    im.load()
    caccess = im.im.pixel_access(False)
    access = PyAccess.new(im, False)

    assert_equal(caccess[(0,0)], access[(0,0)])

    print ("Size: %sx%s" % im.size)
    timer(iterate_get, 'PyAccess - get', im.size, access)
    timer(iterate_set, 'PyAccess - set', im.size, access)
    timer(iterate_get, 'C-api - get', im.size, caccess)
    timer(iterate_set, 'C-api - set', im.size, caccess)