forked from SDXorg/pysd
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathspeed_test.py
More file actions
65 lines (39 loc) · 2.09 KB
/
Copy pathspeed_test.py
File metadata and controls
65 lines (39 loc) · 2.09 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
import timeit
import time
times = { }
###################
from pysd._version import __version__
times['version'] = __version__
times['timestamp'] = time.time()
####################
times['import'] = timeit.timeit('reload(pysd)', number=100,
setup='import pysd')/100
print 'Import:', times['import']
####################
times['load teacup'] = timeit.timeit("pysd.read_vensim('tests/old_tests/vensim/Teacup.mdl')",
setup='import pysd', number=100)/100
print 'Load Teacup:', times['load teacup']
##################
times['run teacup baseline'] = timeit.timeit("model.run()",
setup="import pysd; model = pysd.read_vensim('tests/old_tests/vensim/Teacup.mdl')",
number=1000)/1000
print 'Run Teacup Baseline:', times['run teacup baseline']
##############
times['run teacup modify params'] = timeit.timeit("model.run(params={'room_temperature':20})",
setup="import pysd; model = pysd.read_vensim('tests/old_tests/vensim/Teacup.mdl')",
number=1000)/1000
print 'Run Teacup Mofifying Params:', times['run teacup modify params']
###########
times['run teacup return extra columns'] = timeit.timeit("model.run(return_columns=['teacup_temperature','heat_loss_to_room'])",
setup="import pysd; model = pysd.read_vensim('tests/old_tests/vensim/Teacup.mdl')",
number=100)/100
print 'Run Teacup Returning Extra Columns:', times['run teacup return extra columns']
###############
times['monte carlo'] = \
timeit.timeit("[model.run(initial_condition=(0, {'teacup_temperature':50*np.random.rand()})) for i in range(1000)]",
setup="import numpy as np; import pysd; model = pysd.read_vensim('tests/old_tests/vensim/Teacup.mdl')",
number=10)/10
print 'Monte Carlo:', times['monte carlo']
#---------------------------------
with open('tests/speedtest_results.json', 'a') as outfile:
outfile.write(str(times)+'\n')