Commit 84b732b4 by Piotr Mitros

Case sensitivity bug fix

parent cd03a3ad
...@@ -78,17 +78,24 @@ def evaluator(variables, functions, string, cs=False): ...@@ -78,17 +78,24 @@ def evaluator(variables, functions, string, cs=False):
# log.debug("functions: {0}".format(functions)) # log.debug("functions: {0}".format(functions))
# log.debug("string: {0}".format(string)) # log.debug("string: {0}".format(string))
def lower_dict(d):
print d
return dict([(k.lower(), d[k]) for k in d])
all_variables = copy.copy(default_variables) all_variables = copy.copy(default_variables)
all_variables.update(variables)
all_functions = copy.copy(default_functions) all_functions = copy.copy(default_functions)
if not cs:
all_variables = lower_dict(all_variables)
all_functions = lower_dict(all_functions)
all_variables.update(variables)
all_functions.update(functions) all_functions.update(functions)
if not cs: if not cs:
string_cs = string.lower() string_cs = string.lower()
for v in all_variables.keys(): all_functions = lower_dict(all_functions)
all_variables[v.lower()]=all_variables[v] all_variables = lower_dict(all_variables)
for f in all_functions.keys():
all_functions[f.lower()]=all_functions[f]
CasedLiteral = CaselessLiteral CasedLiteral = CaselessLiteral
else: else:
string_cs = string string_cs = string
......
...@@ -33,6 +33,11 @@ class ModelsTest(unittest.TestCase): ...@@ -33,6 +33,11 @@ class ModelsTest(unittest.TestCase):
self.assertTrue(abs(calc.evaluator(variables, functions, "k*T/q-0.025"))<0.001) self.assertTrue(abs(calc.evaluator(variables, functions, "k*T/q-0.025"))<0.001)
self.assertTrue(abs(calc.evaluator(variables, functions, "e^(j*pi)")+1)<0.00001) self.assertTrue(abs(calc.evaluator(variables, functions, "e^(j*pi)")+1)<0.00001)
self.assertTrue(abs(calc.evaluator(variables, functions, "j||1")-0.5-0.5j)<0.00001) self.assertTrue(abs(calc.evaluator(variables, functions, "j||1")-0.5-0.5j)<0.00001)
variables['t'] = 1.0
self.assertTrue(abs(calc.evaluator(variables, functions, "t")-1.0)<0.00001)
self.assertTrue(abs(calc.evaluator(variables, functions, "T")-1.0)<0.00001)
self.assertTrue(abs(calc.evaluator(variables, functions, "t", cs=True)-1.0)<0.00001)
self.assertTrue(abs(calc.evaluator(variables, functions, "T", cs=True)-298)<0.2)
exception_happened = False exception_happened = False
try: try:
calc.evaluator({},{}, "5+7 QWSEKO") calc.evaluator({},{}, "5+7 QWSEKO")
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment