def test_combinations(): seed(1234) # random seed #XXX: archive/cache should allow scalar and list, also dict (as new table) ? dicts = [ {}, { 'a': 1 }, { 'a': [1, 2] }, { 'a': { 'x': 3 } }, ] init = dicts[0] archives = [ hdf_archive('memo.hdf5', init, serialized=True, meta=False), hdf_archive('memo.h5', init, serialized=False, meta=False), hdf_archive('xxxx.hdf5', init, serialized=True, meta=True), hdf_archive('xxxx.h5', init, serialized=False, meta=True), hdfdir_archive('memoq', init, serialized=False, meta=False), hdfdir_archive('memor', init, serialized=True, meta=False), hdfdir_archive('memos', init, serialized=False, meta=True), hdfdir_archive('memot', init, serialized=True, meta=True), ] if tuple(int(i) for i in h5py.__version__.split('.', 2)) < (3, 0, 0): #FIXME: hdfdir_archive fails with serialized=False in python 3.x archives = archives[:4] + archives[5::2] maps = [ None, keymap(typed=False, flat=True, sentinel=NOSENTINEL), keymap(typed=False, flat=False, sentinel=NOSENTINEL), keymap(typed=True, flat=False, sentinel=NOSENTINEL), hashmap(typed=False, flat=True, sentinel=NOSENTINEL), hashmap(typed=False, flat=False, sentinel=NOSENTINEL), hashmap(typed=True, flat=True, sentinel=NOSENTINEL), hashmap(typed=True, flat=False, sentinel=NOSENTINEL), stringmap(typed=False, flat=True, sentinel=NOSENTINEL), stringmap(typed=False, flat=False, sentinel=NOSENTINEL), stringmap(typed=True, flat=True, sentinel=NOSENTINEL), stringmap(typed=True, flat=False, sentinel=NOSENTINEL), picklemap(typed=False, flat=True, sentinel=NOSENTINEL), picklemap(typed=False, flat=False, sentinel=NOSENTINEL), picklemap(typed=True, flat=True, sentinel=NOSENTINEL), picklemap(typed=True, flat=False, sentinel=NOSENTINEL), ] for mapper in maps: #print (mapper) func = [_test_cache(cache, mapper) for cache in archives] _cleanup() for f in func: #print (f.info()) assert f.info().hit + f.info().miss + f.info().load == N
def test_combinations(): seed(1234) # random seed #XXX: archive/cache should allow scalar and list, also dict (as new table) ? dicts = [ {}, {'a':1}, {'a':[1,2]}, {'a':{'x':3}}, ] init = dicts[0] archives = [ hdf_archive('memo.hdf5',init,serialized=True,meta=False), hdf_archive('memo.h5',init,serialized=False,meta=False), hdf_archive('xxxx.hdf5',init,serialized=True,meta=True), hdf_archive('xxxx.h5',init,serialized=False,meta=True), # hdfdir_archive('memoq',init,serialized=False,meta=False), hdfdir_archive('memor',init,serialized=True,meta=False), # hdfdir_archive('memos',init,serialized=False,meta=True), hdfdir_archive('memot',init,serialized=True,meta=True), #FIXME: hdfdir_archive fails with serialized=False in python 3.x ] maps = [ None, keymap(typed=False, flat=True, sentinel=NOSENTINEL), keymap(typed=False, flat=False, sentinel=NOSENTINEL), keymap(typed=True, flat=False, sentinel=NOSENTINEL), hashmap(typed=False, flat=True, sentinel=NOSENTINEL), hashmap(typed=False, flat=False, sentinel=NOSENTINEL), hashmap(typed=True, flat=True, sentinel=NOSENTINEL), hashmap(typed=True, flat=False, sentinel=NOSENTINEL), stringmap(typed=False, flat=True, sentinel=NOSENTINEL), stringmap(typed=False, flat=False, sentinel=NOSENTINEL), stringmap(typed=True, flat=True, sentinel=NOSENTINEL), stringmap(typed=True, flat=False, sentinel=NOSENTINEL), picklemap(typed=False, flat=True, sentinel=NOSENTINEL), picklemap(typed=False, flat=False, sentinel=NOSENTINEL), picklemap(typed=True, flat=True, sentinel=NOSENTINEL), picklemap(typed=True, flat=False, sentinel=NOSENTINEL), ] for mapper in maps: #print (mapper) func = [_test_cache(cache, mapper) for cache in archives] _cleanup() for f in func: #print (f.info()) assert f.info().hit + f.info().miss + f.info().load == N
keymap(typed=False, flat=False, sentinel=NOSENTINEL), keymap(typed=True, flat=True, sentinel=NOSENTINEL), keymap(typed=True, flat=False, sentinel=NOSENTINEL), #keymap(typed=False, flat=True, sentinel=SENTINEL), #keymap(typed=False, flat=False, sentinel=SENTINEL), #keymap(typed=True, flat=True, sentinel=SENTINEL), #keymap(typed=True, flat=False, sentinel=SENTINEL), hashmap(typed=False, flat=True, sentinel=NOSENTINEL), hashmap(typed=False, flat=False, sentinel=NOSENTINEL), hashmap(typed=True, flat=True, sentinel=NOSENTINEL), hashmap(typed=True, flat=False, sentinel=NOSENTINEL), #hashmap(typed=False, flat=True, sentinel=SENTINEL), #hashmap(typed=False, flat=False, sentinel=SENTINEL), #hashmap(typed=True, flat=True, sentinel=SENTINEL), #hashmap(typed=True, flat=False, sentinel=SENTINEL), stringmap(typed=False, flat=True, sentinel=NOSENTINEL), stringmap(typed=False, flat=False, sentinel=NOSENTINEL), stringmap(typed=True, flat=True, sentinel=NOSENTINEL), stringmap(typed=True, flat=False, sentinel=NOSENTINEL), #stringmap(typed=False, flat=True, sentinel=SENTINEL), #stringmap(typed=False, flat=False, sentinel=SENTINEL), #stringmap(typed=True, flat=True, sentinel=SENTINEL), #stringmap(typed=True, flat=False, sentinel=SENTINEL), picklemap(typed=False, flat=True, sentinel=NOSENTINEL), picklemap(typed=False, flat=False, sentinel=NOSENTINEL), picklemap(typed=True, flat=True, sentinel=NOSENTINEL), picklemap(typed=True, flat=False, sentinel=NOSENTINEL), #picklemap(typed=False, flat=True, sentinel=SENTINEL), #picklemap(typed=False, flat=False, sentinel=SENTINEL), #picklemap(typed=True, flat=True, sentinel=SENTINEL), #picklemap(typed=True, flat=False, sentinel=SENTINEL),
def test_combinations(): seed(1234) # random seed #XXX: archive/cache should allow scalar and list, also dict (as new table) ? dicts = [ {}, {'a':1}, {'a':[1,2]}, {'a':{'x':3}}, ] init = dicts[0] archives = [ null_archive(None,init), dict_archive(None,init), file_archive(None,init,serialized=True), file_archive(None,init,serialized=False), file_archive('xxxx.pkl',init,serialized=True), file_archive('xxxx.py',init,serialized=False), dir_archive('memoi',init,serialized=False), dir_archive('memop',init,serialized=True), dir_archive('memoj',init,serialized=True,fast=True), dir_archive('memoz',init,serialized=True,compression=1), dir_archive('memom',init,serialized=True,memmode='r+'), #sqltable_archive(None,init), #sqltable_archive('sqlite:///memo.db',init), #sqltable_archive('memo',init), #sql_archive(None,init), #sql_archive('sqlite:///memo.db',init), #sql_archive('memo',init), ] #FIXME: even 'safe' archives throw Error when cache.load, cache.dump fails # (often demonstrated in sqltable_archive, as barfs on tuple & dict) #XXX: when running a single map, there should be 3 possible results: # 1) flat=False may produce unhashable keys: all misses # 2) typed=False doesn't distinguish float & int: more hits & loads # 3) typed=True distingushes float & int: less hits & loads #XXX: due to the seed, each of the 3 cases should yield the same results maps = [ None, keymap(typed=False, flat=True, sentinel=NOSENTINEL), keymap(typed=False, flat=False, sentinel=NOSENTINEL), #FIXME: keymap of (typed=True,flat=True) fails w/ dir_archive on Windows b/c # keymap(typed=True, flat=True, sentinel=NOSENTINEL), # bad directory name? keymap(typed=True, flat=False, sentinel=NOSENTINEL), #keymap(typed=False, flat=True, sentinel=SENTINEL), #keymap(typed=False, flat=False, sentinel=SENTINEL), #keymap(typed=True, flat=True, sentinel=SENTINEL), #keymap(typed=True, flat=False, sentinel=SENTINEL), hashmap(typed=False, flat=True, sentinel=NOSENTINEL), hashmap(typed=False, flat=False, sentinel=NOSENTINEL), hashmap(typed=True, flat=True, sentinel=NOSENTINEL), hashmap(typed=True, flat=False, sentinel=NOSENTINEL), #hashmap(typed=False, flat=True, sentinel=SENTINEL), #hashmap(typed=False, flat=False, sentinel=SENTINEL), #hashmap(typed=True, flat=True, sentinel=SENTINEL), #hashmap(typed=True, flat=False, sentinel=SENTINEL), stringmap(typed=False, flat=True, sentinel=NOSENTINEL), stringmap(typed=False, flat=False, sentinel=NOSENTINEL), stringmap(typed=True, flat=True, sentinel=NOSENTINEL), stringmap(typed=True, flat=False, sentinel=NOSENTINEL), #stringmap(typed=False, flat=True, sentinel=SENTINEL), #stringmap(typed=False, flat=False, sentinel=SENTINEL), #stringmap(typed=True, flat=True, sentinel=SENTINEL), #stringmap(typed=True, flat=False, sentinel=SENTINEL), picklemap(typed=False, flat=True, sentinel=NOSENTINEL), picklemap(typed=False, flat=False, sentinel=NOSENTINEL), picklemap(typed=True, flat=True, sentinel=NOSENTINEL), picklemap(typed=True, flat=False, sentinel=NOSENTINEL), #picklemap(typed=False, flat=True, sentinel=SENTINEL), #picklemap(typed=False, flat=False, sentinel=SENTINEL), #picklemap(typed=True, flat=True, sentinel=SENTINEL), #picklemap(typed=True, flat=False, sentinel=SENTINEL), ] #XXX: should have option to serialize value (as well as key) ? for mapper in maps: #print (mapper) func = [_test_cache(cache, mapper) for cache in archives] _cleanup() for f in func: #print (f.info()) assert f.info().hit + f.info().miss + f.info().load == N
#FIXME: keymap of (typed=True,flat=True) fails w/ dir_archive on Windows b/c # keymap(typed=True, flat=True, sentinel=NOSENTINEL), # bad directory name? keymap(typed=True, flat=False, sentinel=NOSENTINEL), #keymap(typed=False, flat=True, sentinel=SENTINEL), #keymap(typed=False, flat=False, sentinel=SENTINEL), #keymap(typed=True, flat=True, sentinel=SENTINEL), #keymap(typed=True, flat=False, sentinel=SENTINEL), hashmap(typed=False, flat=True, sentinel=NOSENTINEL), hashmap(typed=False, flat=False, sentinel=NOSENTINEL), hashmap(typed=True, flat=True, sentinel=NOSENTINEL), hashmap(typed=True, flat=False, sentinel=NOSENTINEL), #hashmap(typed=False, flat=True, sentinel=SENTINEL), #hashmap(typed=False, flat=False, sentinel=SENTINEL), #hashmap(typed=True, flat=True, sentinel=SENTINEL), #hashmap(typed=True, flat=False, sentinel=SENTINEL), stringmap(typed=False, flat=True, sentinel=NOSENTINEL), stringmap(typed=False, flat=False, sentinel=NOSENTINEL), stringmap(typed=True, flat=True, sentinel=NOSENTINEL), stringmap(typed=True, flat=False, sentinel=NOSENTINEL), #stringmap(typed=False, flat=True, sentinel=SENTINEL), #stringmap(typed=False, flat=False, sentinel=SENTINEL), #stringmap(typed=True, flat=True, sentinel=SENTINEL), #stringmap(typed=True, flat=False, sentinel=SENTINEL), picklemap(typed=False, flat=True, sentinel=NOSENTINEL), picklemap(typed=False, flat=False, sentinel=NOSENTINEL), picklemap(typed=True, flat=True, sentinel=NOSENTINEL), picklemap(typed=True, flat=False, sentinel=NOSENTINEL), #picklemap(typed=False, flat=True, sentinel=SENTINEL), #picklemap(typed=False, flat=False, sentinel=SENTINEL), #picklemap(typed=True, flat=True, sentinel=SENTINEL), #picklemap(typed=True, flat=False, sentinel=SENTINEL),
def test_combinations(): seed(1234) # random seed #XXX: archive/cache should allow scalar and list, also dict (as new table) ? dicts = [ {}, { 'a': 1 }, { 'a': [1, 2] }, { 'a': { 'x': 3 } }, ] init = dicts[0] archives = [ null_archive(None, init), dict_archive(None, init), file_archive(None, init, serialized=True), file_archive(None, init, serialized=False), file_archive('xxxx.pkl', init, serialized=True), file_archive('xxxx.py', init, serialized=False), dir_archive('memoi', init, serialized=False), dir_archive('memop', init, serialized=True), dir_archive('memoj', init, serialized=True, fast=True), dir_archive('memoz', init, serialized=True, compression=1), dir_archive('memom', init, serialized=True, memmode='r+'), #sqltable_archive(None,init), #sqltable_archive('sqlite:///memo.db',init), #sqltable_archive('memo',init), #sql_archive(None,init), #sql_archive('sqlite:///memo.db',init), #sql_archive('memo',init), ] #FIXME: even 'safe' archives throw Error when cache.load, cache.dump fails # (often demonstrated in sqltable_archive, as barfs on tuple & dict) #XXX: when running a single map, there should be 3 possible results: # 1) flat=False may produce unhashable keys: all misses # 2) typed=False doesn't distinguish float & int: more hits & loads # 3) typed=True distingushes float & int: less hits & loads #XXX: due to the seed, each of the 3 cases should yield the same results maps = [ None, keymap(typed=False, flat=True, sentinel=NOSENTINEL), keymap(typed=False, flat=False, sentinel=NOSENTINEL), #FIXME: keymap of (typed=True,flat=True) fails w/ dir_archive on Windows b/c # keymap(typed=True, flat=True, sentinel=NOSENTINEL), # bad directory name? keymap(typed=True, flat=False, sentinel=NOSENTINEL), #keymap(typed=False, flat=True, sentinel=SENTINEL), #keymap(typed=False, flat=False, sentinel=SENTINEL), #keymap(typed=True, flat=True, sentinel=SENTINEL), #keymap(typed=True, flat=False, sentinel=SENTINEL), hashmap(typed=False, flat=True, sentinel=NOSENTINEL), hashmap(typed=False, flat=False, sentinel=NOSENTINEL), hashmap(typed=True, flat=True, sentinel=NOSENTINEL), hashmap(typed=True, flat=False, sentinel=NOSENTINEL), #hashmap(typed=False, flat=True, sentinel=SENTINEL), #hashmap(typed=False, flat=False, sentinel=SENTINEL), #hashmap(typed=True, flat=True, sentinel=SENTINEL), #hashmap(typed=True, flat=False, sentinel=SENTINEL), stringmap(typed=False, flat=True, sentinel=NOSENTINEL), stringmap(typed=False, flat=False, sentinel=NOSENTINEL), stringmap(typed=True, flat=True, sentinel=NOSENTINEL), stringmap(typed=True, flat=False, sentinel=NOSENTINEL), #stringmap(typed=False, flat=True, sentinel=SENTINEL), #stringmap(typed=False, flat=False, sentinel=SENTINEL), #stringmap(typed=True, flat=True, sentinel=SENTINEL), #stringmap(typed=True, flat=False, sentinel=SENTINEL), picklemap(typed=False, flat=True, sentinel=NOSENTINEL), picklemap(typed=False, flat=False, sentinel=NOSENTINEL), picklemap(typed=True, flat=True, sentinel=NOSENTINEL), picklemap(typed=True, flat=False, sentinel=NOSENTINEL), #picklemap(typed=False, flat=True, sentinel=SENTINEL), #picklemap(typed=False, flat=False, sentinel=SENTINEL), #picklemap(typed=True, flat=True, sentinel=SENTINEL), #picklemap(typed=True, flat=False, sentinel=SENTINEL), ] #XXX: should have option to serialize value (as well as key) ? for mapper in maps: #print (mapper) func = [_test_cache(cache, mapper) for cache in archives] _cleanup() for f in func: #print (f.info()) assert f.info().hit + f.info().miss + f.info().load == N