Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import hashlib,time
- import bprefix,tprefix
- def timed(f):
- def func(*args):
- start = time.time()
- ret = f(*args)
- took = time.time() - start
- print("%s took %f" % (f.__name__,took))
- return ret
- return func
- def get_generator(top=250000,static="Static_String"):
- return (hashlib.sha1((static+str(i)).encode('utf-8')).hexdigest() for i in range(top))
- @timed
- def build_from_list(cls):
- return cls(get_generator())
- @timed
- def build_from_adds(cls):
- pref = cls()
- for s in get_generator():
- pref.add(s)
- return pref
- @timed
- def add_to(obj):
- for s in get_generator(10000,"Different_String"):
- obj.add(s)
- @timed
- def get(obj,loops=10000):
- for _ in range(loops):
- obj['000188']
- obj['1971e']
- obj['336f7']
- obj['4d120']
- obj['66ada']
- obj['80736']
- obj['99cb0']
- obj['b38f3']
- obj['ccfd9e8']
- obj['e61df']
- @timed
- def prefix(obj,loops=10000):
- for _ in range(loops):
- obj.prefix('00018855b442bfba15fae6949982ef63d9eba1c9')
- obj.prefix('1971e17df8ee57f0dcceccc869db454b7c6b7a54')
- obj.prefix('336f7b09c7c0c933b1f26ca09a84585818046e6b')
- obj.prefix('4d1209fadf843f65bd2beee37db552134a930395')
- obj.prefix('66adaf0cb611d71554153631611f7904781addef')
- obj.prefix('80736f454201d96c4c795bb5e21778550a9cbef0')
- obj.prefix('99cb006fd81cb84cfbae834ed7b7f977c29af249')
- obj.prefix('b38f3561591650708fce739536ac504f86fecdf5')
- obj.prefix('ccfd9e8211621666c55f911d1ff3f13ab93f696e')
- obj.prefix('e61df82a0c2f59394eb9bd752e93b9c011df5be2')
- @timed
- def iter(obj):
- for s in obj:
- len(s)
- def run_tests(cls):
- pref = build_from_list(cls)
- build_from_adds(cls)
- add_to(pref)
- get(pref)
- prefix(pref)
- iter(pref)
- if __name__ == '__main__':
- print("TRIE STRUCTURE")
- run_tests(tprefix.Prefix)
- print("BINARY SEARCH STRUCTURE")
- run_tests(bprefix.Prefix)
Add Comment
Please, Sign In to add comment