Skip to content

Commit 8bbe0b6

Browse files
committed
Fixed simplification test duration
* Replace calls to Matlabengine for a dictionary with the value of the simplified functions
1 parent efe0cb2 commit 8bbe0b6

File tree

2 files changed

+82
-50
lines changed

2 files changed

+82
-50
lines changed

MLC/Common/LispTreeExpr/OperationNodes.py

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,6 @@ def op_compute(self, arg_list):
9494
exception_msg=err)
9595

9696

97-
9897
class MultNode(InternalNode):
9998

10099
def __init__(self):
@@ -174,7 +173,7 @@ def op_compute(self, arg_list):
174173
try:
175174
return self._process_division(arg_list[0], arg_list[1])
176175
except FloatingPointError, err:
177-
return execute_op_without_warnings(op=self._process_division,
176+
return execute_op_without_warnings(op=self._process_division,
178177
arg1=arg_list[0],
179178
arg2=arg_list[1],
180179
log_prefix="[DIV_NODE] Error: ",
@@ -200,7 +199,7 @@ def op_compute(self, arg_list):
200199
try:
201200
return np.sin(arg_list[0])
202201
except FloatingPointError, err:
203-
return execute_op_without_warnings(op=np.sin,
202+
return execute_op_without_warnings(op=np.sin,
204203
arg1=arg_list[0],
205204
log_prefix="[SIN_NODE] Error: ",
206205
exception_msg=err)
@@ -225,7 +224,7 @@ def op_compute(self, arg_list):
225224
try:
226225
return np.cos(arg_list[0])
227226
except FloatingPointError, err:
228-
return execute_op_without_warnings(op=np.cos,
227+
return execute_op_without_warnings(op=np.cos,
229228
arg1=arg_list[0],
230229
log_prefix="[COS_NODE] Error: ",
231230
exception_msg=err)
@@ -297,7 +296,7 @@ def op_compute(self, arg_list):
297296
try:
298297
return np.exp(arg_list[0])
299298
except FloatingPointError, err:
300-
return execute_op_without_warnings(op=np.exp,
299+
return execute_op_without_warnings(op=np.exp,
301300
arg1=arg_list[0],
302301
log_prefix="[EXP_NODE] Error: ",
303302
exception_msg=err)
@@ -322,7 +321,7 @@ def op_compute(self, arg_list):
322321
try:
323322
return np.tanh(arg_list[0])
324323
except FloatingPointError, err:
325-
return execute_op_without_warnings(op=np.exp,
324+
return execute_op_without_warnings(op=np.exp,
326325
arg1=arg_list[0],
327326
log_prefix="[TANH_NODE] Error: ",
328327
exception_msg=err)
Lines changed: 77 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -1,178 +1,211 @@
11
import unittest
22
import MLC.Log.log as lg
3+
import sys
34
from MLC.Log.log import set_logger
4-
from MLC.matlab_engine import MatlabEngine
55
from MLC.mlc_parameters.mlc_parameters import Config
66
from MLC.Common.LispTreeExpr.LispTreeExpr import LispTreeExpr
77
from MLC import config as config_path
88

99
import os
1010

11+
1112
class SimplificationTest(unittest.TestCase):
13+
# Instead of calculate the Lisp Expression using MATLAB, consume them
14+
# from this dictionary. Take into consideration that the dictionary
15+
# has to be regenerated if some test is changed
16+
simplified_expressions = {"test_simplify_cos_node_number": "(root -0.1411)",
17+
"test_simplify_cos_node_sensor": "(root (cos S0))",
18+
"test_simplify_div_node_both_numbers": "(root 0.8093)",
19+
"test_simplify_div_node_number_and_sensor": "(root (/ 3.4092 S0))",
20+
"test_simplify_div_node_number_and_zero": "(root 0.0000)",
21+
"test_simplify_div_node_sensor_and_number": "(root (/ S0 4.2123))",
22+
"test_simplify_div_node_sensor_and_right_identity": "(root S0)",
23+
"test_simplify_div_node_sensor_left_identity": "(root S0)",
24+
"test_simplify_div_node_zero_and_sensor": "(root 0.0000)",
25+
"test_simplify_exp_node_number": "(root 5.5422)",
26+
"test_simplify_exp_node_sensor": "(root (exp S0))",
27+
"test_simplify_log_node_number": "(root 0.5379)",
28+
"test_simplify_log_node_sensor": "(root (log S0))",
29+
"test_simplify_log_node_zero": "(root -4.6052)",
30+
"test_simplify_minus_node_both_numbers": "(root -0.8031)",
31+
"test_simplify_minus_node_number_and_sensor": "(root (- 3.4092 S0))",
32+
"test_simplify_minus_node_sensor_and_left_identity": "(root 0.0000)",
33+
"test_simplify_minus_node_sensor_and_number": "(root (- S0 4.2123))",
34+
"test_simplify_minus_node_sensor_and_right_identity": "(root 0.0000)",
35+
"test_simplify_mult_node_both_numbers": "(root 14.3606)",
36+
"test_simplify_mult_node_left_zero": "(root 0.0000)",
37+
"test_simplify_mult_node_number_and_sensor": "(root (* 3.4092 S0))",
38+
"test_simplify_mult_node_sensor_and_number": "(root (* S0 4.2123))",
39+
"test_simplify_mult_node_sensor_right_zero": "(root 0.0000)",
40+
"test_simplify_plus_node_both_numbers": "(root 7.6215)",
41+
"test_simplify_plus_node_number_and_sensor": "(root (+ 3.4092 S0))",
42+
"test_simplify_plus_node_sensor_and_left_identity": "(root S0)",
43+
"test_simplify_plus_node_sensor_and_number": "(root (+ S0 4.2123))",
44+
"test_simplify_plus_node_sensor_and_right_identity": "(root S0)",
45+
"test_simplify_sin_node_number": "(root 0.9900)",
46+
"test_simplify_sin_node_sensor": "(root (sin S0))",
47+
"test_simplify_tanh_node_number": "(root 0.9369)",
48+
"test_simplify_tanh_node_sensor": "(root (tanh S0))"}
1249

1350
@classmethod
1451
def setUpClass(cls):
15-
set_logger("testing")
52+
set_logger("file")
1653
config = Config.get_instance()
1754
config.read(os.path.join(config_path.get_test_path(), 'mlc/individual/configuration.ini'))
1855

19-
def setUp(self):
20-
self._eng = MatlabEngine.engine()
21-
22-
def _assert_expressions(self, expression):
23-
expected = self._eng.simplify_my_LISP(expression)
56+
def _assert_expressions(self, expression, function_name):
57+
# expected = self._eng.simplify_my_LISP(expression)
58+
expected = SimplificationTest.simplified_expressions[function_name]
2459
tree = LispTreeExpr(expression)
2560
tree.simplify_tree()
2661
obtained = tree.get_simplified_tree_as_string()
27-
2862
self.assertEquals(obtained, expected)
2963

3064
########################### PLUS NODE #####################################
3165
def test_simplify_plus_node_number_and_sensor(self):
3266
expression = '(root (+ 3.4092 S0))'
33-
self._assert_expressions(expression)
67+
self._assert_expressions(expression, sys._getframe().f_code.co_name)
3468

3569
def test_simplify_plus_node_sensor_and_number(self):
3670
expression = '(root (+ S0 4.2123))'
37-
self._assert_expressions(expression)
71+
self._assert_expressions(expression, sys._getframe().f_code.co_name)
3872

3973
def test_simplify_plus_node_sensor_and_right_identity(self):
4074
expression = '(root (+ S0 0))'
41-
self._assert_expressions(expression)
75+
self._assert_expressions(expression, sys._getframe().f_code.co_name)
4276

4377
def test_simplify_plus_node_sensor_and_left_identity(self):
4478
expression = '(root (+ 0 S0))'
45-
self._assert_expressions(expression)
79+
self._assert_expressions(expression, sys._getframe().f_code.co_name)
4680

4781
def test_simplify_plus_node_both_numbers(self):
4882
expression = '(root (+ 3.4092 4.2123))'
49-
self._assert_expressions(expression)
83+
self._assert_expressions(expression, sys._getframe().f_code.co_name)
5084

5185
########################### MINUS NODE ####################################
5286
def test_simplify_minus_node_number_and_sensor(self):
5387
expression = '(root (- 3.4092 S0))'
54-
self._assert_expressions(expression)
88+
self._assert_expressions(expression, sys._getframe().f_code.co_name)
5589

5690
def test_simplify_minus_node_sensor_and_number(self):
5791
expression = '(root (- S0 4.2123))'
58-
self._assert_expressions(expression)
92+
self._assert_expressions(expression, sys._getframe().f_code.co_name)
5993

6094
def test_simplify_minus_node_sensor_and_right_identity(self):
6195
expression = '(root (- S0 0))'
62-
self._assert_expressions(expression)
96+
self._assert_expressions(expression, sys._getframe().f_code.co_name)
6397

6498
def test_simplify_minus_node_sensor_and_left_identity(self):
6599
expression = '(root (- 0 S0))'
66-
self._assert_expressions(expression)
100+
self._assert_expressions(expression, sys._getframe().f_code.co_name)
67101

68102
def test_simplify_minus_node_both_numbers(self):
69103
expression = '(root (- 3.4092 4.2123))'
70-
self._assert_expressions(expression)
104+
self._assert_expressions(expression, sys._getframe().f_code.co_name)
71105

72106
########################### MULT NODE #####################################
73107
def test_simplify_mult_node_number_and_sensor(self):
74108
expression = '(root (* 3.4092 S0))'
75-
self._assert_expressions(expression)
109+
self._assert_expressions(expression, sys._getframe().f_code.co_name)
76110

77111
def test_simplify_mult_node_sensor_and_number(self):
78112
expression = '(root (* S0 4.2123))'
79-
self._assert_expressions(expression)
113+
self._assert_expressions(expression, sys._getframe().f_code.co_name)
80114

81115
def test_simplify_mult_node_left_zero(self):
82116
expression = '(root (* S0 0))'
83-
self._assert_expressions(expression)
117+
self._assert_expressions(expression, sys._getframe().f_code.co_name)
84118

85119
def test_simplify_mult_node_sensor_right_zero(self):
86120
expression = '(root (* 0 S0))'
87-
self._assert_expressions(expression)
121+
self._assert_expressions(expression, sys._getframe().f_code.co_name)
88122

89123
def test_simplify_minus_node_sensor_and_right_identity(self):
90124
expression = '(root (* S0 0))'
91-
self._assert_expressions(expression)
125+
self._assert_expressions(expression, sys._getframe().f_code.co_name)
92126

93127
def test_simplify_minus_node_sensor_and_left_identity(self):
94128
expression = '(root (* 0 S0))'
95-
self._assert_expressions(expression)
129+
self._assert_expressions(expression, sys._getframe().f_code.co_name)
96130

97131
def test_simplify_mult_node_both_numbers(self):
98132
expression = '(root (* 3.4092 4.2123))'
99-
self._assert_expressions(expression)
133+
self._assert_expressions(expression, sys._getframe().f_code.co_name)
100134

101135
########################### DIV NODE ######################################
102136
def test_simplify_div_node_number_and_sensor(self):
103137
expression = '(root (/ 3.4092 S0))'
104-
self._assert_expressions(expression)
138+
self._assert_expressions(expression, sys._getframe().f_code.co_name)
105139

106140
def test_simplify_div_node_sensor_and_number(self):
107141
expression = '(root (/ S0 4.2123))'
108-
self._assert_expressions(expression)
142+
self._assert_expressions(expression, sys._getframe().f_code.co_name)
109143

110144
def test_simplify_div_node_zero_and_sensor(self):
111145
expression = '(root (/ 0 S0))'
112-
self._assert_expressions(expression)
146+
self._assert_expressions(expression, sys._getframe().f_code.co_name)
113147

114148
def test_simplify_div_node_sensor_and_right_identity(self):
115149
expression = '(root (/ S0 1))'
116-
self._assert_expressions(expression)
150+
self._assert_expressions(expression, sys._getframe().f_code.co_name)
117151

118152
def test_simplify_div_node_sensor_left_identity(self):
119153
expression = '(root (* 1 S0))'
120-
self._assert_expressions(expression)
154+
self._assert_expressions(expression, sys._getframe().f_code.co_name)
121155

122156
def test_simplify_div_node_both_numbers(self):
123157
expression = '(root (/ 3.4092 4.2123))'
124-
self._assert_expressions(expression)
158+
self._assert_expressions(expression, sys._getframe().f_code.co_name)
125159

126160
def test_simplify_div_node_number_and_zero(self):
127161
expression = '(root (/ 3.4092 0))'
128-
self._assert_expressions(expression)
162+
self._assert_expressions(expression, sys._getframe().f_code.co_name)
129163

130164
########################### SIN NODE ######################################
131165
def test_simplify_sin_node_number(self):
132166
expression = '(root (sin 1.7124))'
133-
self._assert_expressions(expression)
167+
self._assert_expressions(expression, sys._getframe().f_code.co_name)
134168

135169
def test_simplify_sin_node_sensor(self):
136170
expression = '(root (sin S0))'
137-
self._assert_expressions(expression)
171+
self._assert_expressions(expression, sys._getframe().f_code.co_name)
138172

139173
########################### COS NODE ######################################
140174
def test_simplify_cos_node_number(self):
141175
expression = '(root (cos 1.7124))'
142-
self._assert_expressions(expression)
176+
self._assert_expressions(expression, sys._getframe().f_code.co_name)
143177

144178
def test_simplify_cos_node_sensor(self):
145179
expression = '(root (cos S0))'
146-
self._assert_expressions(expression)
180+
self._assert_expressions(expression, sys._getframe().f_code.co_name)
147181

148182
########################### LOG NODE ######################################
149183
def test_simplify_log_node_number(self):
150184
expression = '(root (log 1.7124))'
151-
self._assert_expressions(expression)
185+
self._assert_expressions(expression, sys._getframe().f_code.co_name)
152186

153187
def test_simplify_log_node_sensor(self):
154188
expression = '(root (log S0))'
155-
self._assert_expressions(expression)
189+
self._assert_expressions(expression, sys._getframe().f_code.co_name)
156190

157191
def test_simplify_log_node_zero(self):
158192
expression = '(root (log 0))'
159-
self._assert_expressions(expression)
193+
self._assert_expressions(expression, sys._getframe().f_code.co_name)
160194

161195
########################### EXP NODE ######################################
162196
def test_simplify_exp_node_number(self):
163197
expression = '(root (exp 1.7124))'
164-
self._assert_expressions(expression)
198+
self._assert_expressions(expression, sys._getframe().f_code.co_name)
165199

166200
def test_simplify_exp_node_sensor(self):
167201
expression = '(root (exp S0))'
168-
self._assert_expressions(expression)
202+
self._assert_expressions(expression, sys._getframe().f_code.co_name)
169203

170204
########################### TANH NODE ######################################
171205
def test_simplify_tanh_node_number(self):
172206
expression = '(root (tanh 1.7124))'
173-
self._assert_expressions(expression)
207+
self._assert_expressions(expression, sys._getframe().f_code.co_name)
174208

175209
def test_simplify_tanh_node_sensor(self):
176210
expression = '(root (tanh S0))'
177-
self._assert_expressions(expression)
178-
211+
self._assert_expressions(expression, sys._getframe().f_code.co_name)

0 commit comments

Comments
 (0)