Files
wren/test/benchmark/method_call.py

81 lines
2.0 KiB
Python
Raw Permalink Normal View History

#!/usr/bin/python
# http://www.bagley.org/~doug/shootout/
2014-02-12 17:22:42 -08:00
from __future__ import print_function
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
class Toggle(object):
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):
super(NthToggle, self).activate()
self.counter = 0
return(self)
def main():
start = time.process_time()
NUM = 100000
val = 1
toggle = Toggle(val)
2014-02-12 17:22:42 -08:00
for i in range(0,NUM):
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()
val = toggle.activate().value()
if val:
2014-02-12 17:22:42 -08:00
print("true")
else:
2014-02-12 17:22:42 -08:00
print("false")
val = 1
ntoggle = NthToggle(val, 3)
2014-02-12 17:22:42 -08:00
for i in range(0,NUM):
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()
val = ntoggle.activate().value()
if val:
2014-02-12 17:22:42 -08:00
print("true")
else:
2014-02-12 17:22:42 -08:00
print("false")
print("elapsed: " + str(time.process_time() - start))
main()