Révision 117 pobysoPythonSage/src/testPobyso.sage
testPobyso.sage (revision 117) | ||
---|---|---|
13 | 13 |
# |
14 | 14 |
import inspect |
15 | 15 |
import resource |
16 |
import timeit |
|
16 | 17 |
|
17 | 18 |
|
18 | 19 |
def memory_usage_resource(): |
... | ... | |
24 | 25 |
return mem |
25 | 26 |
# End memory_usage_resource() |
26 | 27 |
|
28 |
def test_pobyso_wrapper(func, *args, **kwargs): |
|
29 |
def wrapped(): |
|
30 |
return func(*args, **kwargs) |
|
31 |
return wrapped |
|
32 |
|
|
27 | 33 |
# |
28 | 34 |
def test_pobyso_absolute_so_so(): |
29 | 35 |
for index in xrange(0,1000000): |
... | ... | |
38 | 44 |
sollya_lib_clear_obj(absoluteSo) |
39 | 45 |
# End test_pobyso_autoprint |
40 | 46 |
|
41 |
def test_pobyso_bounds_to_range_sa_so(iterationsNum=10000):
|
|
42 |
global t
|
|
43 |
print "Running", inspect.stack()[0][3] |
|
47 |
def test_pobyso_bounds_to_range_sa_so(repeat=1000, number=10):
|
|
48 |
functionName = inspect.stack()[0][3]
|
|
49 |
print "Running", inspect.stack()[0][3], "..."
|
|
44 | 50 |
lowerBoundSa = RR(1) |
45 | 51 |
upperBoundSa = RR(2) |
46 | 52 |
precSo = pobyso_get_prec_so() |
47 |
pobyso_autoprint(precSo) |
|
48 |
for index in xrange(0,iterationsNum): |
|
53 |
#pobyso_autoprint(precSo) |
|
54 |
# |
|
55 |
def test(lowerBoundSa, upperBoundSa): |
|
49 | 56 |
rangeSo = pobyso_bounds_to_range_sa_so(lowerBoundSa, upperBoundSa) |
50 | 57 |
sollya_lib_clear_obj(rangeSo) |
58 |
# |
|
59 |
wrapped = test_pobyso_wrapper(test,lowerBoundSa, upperBoundSa) |
|
60 |
timing = min(timeit.repeat(wrapped, repeat=repeat, number=number)) |
|
61 |
# |
|
51 | 62 |
precSo = pobyso_get_prec_so() |
52 |
pobyso_autoprint(precSo) |
|
63 |
#pobyso_autoprint(precSo)
|
|
53 | 64 |
sollya_lib_clear_obj(precSo) |
65 |
print "\t...", functionName, "done." |
|
66 |
return timing |
|
54 | 67 |
# End test_pobyso_bounds_to_range_sa_so |
55 | 68 |
|
69 |
def test_pobyso_get_list_elements_so_so(repeat = 1000, number=10): |
|
70 |
functionName = inspect.stack()[0][3] |
|
71 |
print "Running", functionName, "..." |
|
72 |
def test(): |
|
73 |
listSo = pobyso_parse_string_sa_so("[|0,1,2,3,4,5,6|];") |
|
74 |
(listSaSo, elementsNumSa, isEndEllipticSa) = \ |
|
75 |
pobyso_get_list_elements(listSo) |
|
76 |
for elementSo in listSaSo: |
|
77 |
sollya_lib_clear_obj(elementSo) |
|
78 |
# Notice that we use sollya_lib_clear_obj and not |
|
79 |
# sollya_lib_clear_object_list. |
|
80 |
sollya_lib_clear_obj(listSo, None) |
|
81 |
# |
|
82 |
wrapped = test_pobyso_wrapper(test) |
|
83 |
timing = min(timeit.repeat(wrapped, repeat=repeat, number=number)) |
|
84 |
print "\t...", functionName, "done." |
|
85 |
return timing |
|
86 |
# End test_pobyso_get_list_elements |
|
87 |
|
|
56 | 88 |
def test_pobyso_get_prec_so_sa(iterationsNum=10000): |
57 | 89 |
print "Running", inspect.stack()[0][3] |
58 | 90 |
for index in xrange(0,iterationsNum): |
... | ... | |
84 | 116 |
sollya_lib_clear_obj(expressionSo) |
85 | 117 |
# End pobyso_parse_string_sa_so |
86 | 118 |
|
87 |
def test_pobyso_taylor_expansion_no_change_var_so_so(iterationsNum=10000): |
|
119 |
def test_pobyso_taylor_expansion_no_change_var_so_so(repeat=1000, number=10): |
|
120 |
functionName = inspect.stack()[0][3] |
|
121 |
print "Running", functionName, "..." |
|
88 | 122 |
functionSo = pobyso_parse_string('exp(x)') |
89 | 123 |
degreeSo = pobyso_constant_from_int_sa_so(20) |
90 | 124 |
rangeSo = pobyso_bounds_to_range_sa_so(RR(1),RR(2)) |
91 | 125 |
errorTypeSo = pobyso_absolute_so_so() |
92 |
for index in xrange(0,iterationsNum):
|
|
126 |
def test(functionSo, degreeSo, rangeSo, errorTypeSo):
|
|
93 | 127 |
teSo = pobyso_taylor_expansion_no_change_var_so_so(functionSo, |
94 | 128 |
degreeSo, |
95 | 129 |
rangeSo, |
... | ... | |
97 | 131 |
sollya_lib_clear_obj(teSo[0]) |
98 | 132 |
sollya_lib_clear_obj(teSo[1]) |
99 | 133 |
sollya_lib_clear_obj(teSo[2]) |
134 |
# End test |
|
135 |
wrapped = test_pobyso_wrapper(test, |
|
136 |
functionSo, |
|
137 |
degreeSo, |
|
138 |
rangeSo, |
|
139 |
errorTypeSo) |
|
140 |
timing = min(timeit.repeat(wrapped, repeat=repeat, number=number)) |
|
100 | 141 |
sollya_lib_clear_obj(functionSo) |
101 | 142 |
sollya_lib_clear_obj(degreeSo) |
102 | 143 |
sollya_lib_clear_obj(rangeSo) |
103 | 144 |
sollya_lib_clear_obj(errorTypeSo) |
145 |
print "\t...", functionName, "done." |
|
146 |
return timing |
|
104 | 147 |
# End test_pobyso_taylor_expansion_no_change_var_so_so |
105 | 148 |
|
149 |
def test_pobyso_taylor_form_so_so_2(repeat=1000, number=10): |
|
150 |
functionName = inspect.stack()[0][3] |
|
151 |
print "Running", functionName, "..." |
|
152 |
functionSo = pobyso_parse_string('exp(x)') |
|
153 |
degreeSo = pobyso_constant_from_int_sa_so(20) |
|
154 |
rangeSo = pobyso_bounds_to_range_sa_so(RR(1),RR(2)) |
|
155 |
intervalCenterSo = sollya_lib_mid(rangeSo, None) |
|
156 |
errorTypeSo = pobyso_absolute_so_so() |
|
157 |
|
|
158 |
def test(functionSo, degreeSo, intervalCenterSo, errorTypeSo): |
|
159 |
taylorformSo = pobyso_taylorform_so_so(functionSo, |
|
160 |
degreeSo, |
|
161 |
intervalCenterSo, |
|
162 |
errorTypeSo) |
|
163 |
sollya_lib_clear_obj(taylorformSo) |
|
164 |
wrapped = test_pobyso_wrapper(test, |
|
165 |
functionSo, |
|
166 |
degreeSo, |
|
167 |
intervalCenterSo, |
|
168 |
errorTypeSo) |
|
169 |
timing = min(timeit.repeat(wrapped, repeat=repeat, number=number)) |
|
170 |
sollya_lib_clear_obj(functionSo,None) |
|
171 |
sollya_lib_clear_obj(degreeSo,None) |
|
172 |
sollya_lib_clear_obj(rangeSo,None) |
|
173 |
sollya_lib_clear_obj(intervalCenterSo,None) |
|
174 |
sollya_lib_clear_obj(errorTypeSo,None) |
|
175 |
return timing |
|
176 |
# End test_pobyso_taylor_so_so_2 |
|
177 |
|
|
178 |
def test_pobyso_dummy_test(iterationsNum=1, executionsNum=1): |
|
179 |
aString = "2+3" |
|
180 |
def test(): |
|
181 |
return 2+3 |
|
182 |
wrapped = test_pobyso_wrapper(test) |
|
183 |
timing = timeit.timeit(wrapped, number=executionsNum) |
|
184 |
return timing |
|
106 | 185 |
print "\t...testPobyso loaded" |
Formats disponibles : Unified diff