Guest User

Untitled

a guest
Feb 25th, 2018
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.48 KB | None | 0 0
  1. #!/usr/bin/env python
  2.  
  3. import random
  4. import datetime
  5.  
  6. def gen_random_date():
  7. date_str = "%4d-%02d-%02d %02d:%02d:%02d" % (random.randint(1980,2018), random.randint(1,12), random.randint(1,28),
  8. random.randint(0,23), random.randint(0,59), random.randint(0,59))
  9. return datetime.datetime.strptime(date_str, "%Y-%m-%d %H:%M:%S")
  10.  
  11. def create_object():
  12.  
  13. class Foo(object):
  14. def __init__(self, created, modified, number):
  15. self.created = created
  16. self.modified = modified
  17. self.number = number
  18.  
  19. obj = Foo(gen_random_date(), gen_random_date(), random.randint(1,100))
  20. #print("[{}] {} | {} | {}".format(id(obj), obj.created, obj.modified, obj.number))
  21. return obj
  22.  
  23. created_filter = lambda x: gen_random_date() <= x.created <= gen_random_date()
  24. modified_filter = lambda x: gen_random_date() <= x.modified <= gen_random_date()
  25. number_filter = lambda x: random.randint(1,100) <= x.number <= random.randint(1,100)
  26.  
  27. now = datetime.datetime.now()
  28. for i in range(10000):
  29. # Create some object
  30. o = create_object()
  31. x = [o]
  32.  
  33. if any( map( lambda l: len(l) > 0, [ filter(func, x) for func in [created_filter, modified_filter, number_filter] ] ) ):
  34. print("[{}] {} | {} | {} - Within Range".format(id(o), o.created, o.modified, o.number))
  35. else:
  36. print("[{}] {} | {} | {} - NOT Within Range".format(id(o), o.created, o.modified, o.number))
  37. print("Took {}".format(datetime.datetime.now() - now))
Add Comment
Please, Sign In to add comment