Guest User

Untitled

a guest
Nov 17th, 2018
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.95 KB | None | 0 0
  1. import hashlib,time
  2. import bprefix,tprefix
  3.  
  4. def timed(f):
  5. def func(*args):
  6. start = time.time()
  7. ret = f(*args)
  8. took = time.time() - start
  9. print("%s took %f" % (f.__name__,took))
  10. return ret
  11. return func
  12.  
  13. def get_generator(top=250000,static="Static_String"):
  14. return (hashlib.sha1((static+str(i)).encode('utf-8')).hexdigest() for i in range(top))
  15.  
  16.  
  17. @timed
  18. def build_from_list(cls):
  19. return cls(get_generator())
  20.  
  21. @timed
  22. def build_from_adds(cls):
  23. pref = cls()
  24. for s in get_generator():
  25. pref.add(s)
  26. return pref
  27.  
  28. @timed
  29. def add_to(obj):
  30. for s in get_generator(10000,"Different_String"):
  31. obj.add(s)
  32.  
  33. @timed
  34. def get(obj,loops=10000):
  35. for _ in range(loops):
  36. obj['000188']
  37. obj['1971e']
  38. obj['336f7']
  39. obj['4d120']
  40. obj['66ada']
  41. obj['80736']
  42. obj['99cb0']
  43. obj['b38f3']
  44. obj['ccfd9e8']
  45. obj['e61df']
  46.  
  47. @timed
  48. def prefix(obj,loops=10000):
  49. for _ in range(loops):
  50. obj.prefix('00018855b442bfba15fae6949982ef63d9eba1c9')
  51. obj.prefix('1971e17df8ee57f0dcceccc869db454b7c6b7a54')
  52. obj.prefix('336f7b09c7c0c933b1f26ca09a84585818046e6b')
  53. obj.prefix('4d1209fadf843f65bd2beee37db552134a930395')
  54. obj.prefix('66adaf0cb611d71554153631611f7904781addef')
  55. obj.prefix('80736f454201d96c4c795bb5e21778550a9cbef0')
  56. obj.prefix('99cb006fd81cb84cfbae834ed7b7f977c29af249')
  57. obj.prefix('b38f3561591650708fce739536ac504f86fecdf5')
  58. obj.prefix('ccfd9e8211621666c55f911d1ff3f13ab93f696e')
  59. obj.prefix('e61df82a0c2f59394eb9bd752e93b9c011df5be2')
  60.  
  61. @timed
  62. def iter(obj):
  63. for s in obj:
  64. len(s)
  65.  
  66. def run_tests(cls):
  67. pref = build_from_list(cls)
  68. build_from_adds(cls)
  69. add_to(pref)
  70. get(pref)
  71. prefix(pref)
  72. iter(pref)
  73.  
  74. if __name__ == '__main__':
  75. print("TRIE STRUCTURE")
  76. run_tests(tprefix.Prefix)
  77. print("BINARY SEARCH STRUCTURE")
  78. run_tests(bprefix.Prefix)
Add Comment
Please, Sign In to add comment