Files
wren/test/benchmark/method_call.py
T

81 lines
2.0 KiB
Python
Raw Normal View History

2013-12-07 18:43:39 -08:00
#!/usr/bin/python
# http://www.bagley.org/~doug/shootout/
2014-02-12 17:22:42 -08:00
from __future__ import print_function
2013-12-07 18:43:39 -08:00
import sys
import time
2014-02-12 17:22:42 -08:00
# Map "range" to an efficient range in both Python 2 and 3.
try:
range = xrange
except NameError:
pass
2013-12-18 07:37:41 -08:00
class Toggle(object):
2013-12-07 18:43:39 -08:00
def __init__(self, start_state):
self.bool = start_state
def value(self):
return(self.bool)
def activate(self):
self.bool = not self.bool
return(self)
class NthToggle(Toggle):
def __init__(self, start_state, max_counter):
Toggle.__init__(self, start_state)
self.count_max = max_counter
self.counter = 0
def activate(self):
self.counter += 1
if (self.counter >= self.count_max):
2013-12-18 07:37:41 -08:00
super(NthToggle, self).activate()
2013-12-07 18:43:39 -08:00
self.counter = 0
return(self)
def main():
start = time.clock()
2013-12-25 15:01:45 -08:00
NUM = 100000
2013-12-07 18:43:39 -08:00
val = 1
toggle = Toggle(val)
2014-02-12 17:22:42 -08:00
for i in range(0,NUM):
2013-12-07 18:43:39 -08:00
val = toggle.activate().value()
2013-12-25 15:01:45 -08:00
val = toggle.activate().value()
val = toggle.activate().value()
val = toggle.activate().value()
val = toggle.activate().value()
val = toggle.activate().value()
val = toggle.activate().value()
val = toggle.activate().value()
val = toggle.activate().value()
val = toggle.activate().value()
2013-12-07 18:43:39 -08:00
if val:
2014-02-12 17:22:42 -08:00
print("true")
2013-12-07 18:43:39 -08:00
else:
2014-02-12 17:22:42 -08:00
print("false")
2013-12-07 18:43:39 -08:00
val = 1
ntoggle = NthToggle(val, 3)
2014-02-12 17:22:42 -08:00
for i in range(0,NUM):
2013-12-07 18:43:39 -08:00
val = ntoggle.activate().value()
2013-12-25 15:01:45 -08:00
val = ntoggle.activate().value()
val = ntoggle.activate().value()
val = ntoggle.activate().value()
val = ntoggle.activate().value()
val = ntoggle.activate().value()
val = ntoggle.activate().value()
val = ntoggle.activate().value()
val = ntoggle.activate().value()
val = ntoggle.activate().value()
2013-12-07 18:43:39 -08:00
if val:
2014-02-12 17:22:42 -08:00
print("true")
2013-12-07 18:43:39 -08:00
else:
2014-02-12 17:22:42 -08:00
print("false")
2013-12-07 18:43:39 -08:00
print("elapsed: " + str(time.clock() - start))
main()