Browse Source

added test for calculating string without pow as well as corresponding functionality

remotes/origin/feature/feature-read-math-functions
fdai7763 11 months ago
parent
commit
191a344043
  1. 7
      src/main/py/read_math_function.py
  2. 2
      src/test/py/test_read_math_function.py

7
src/main/py/read_math_function.py

@ -11,3 +11,10 @@ def is_string(value):
def is_allowed_string(type, value): def is_allowed_string(type, value):
allowed = "+-*/()^" allowed = "+-*/()^"
return all(character.isdigit() or character in allowed for character in value) return all(character.isdigit() or character in allowed for character in value)
def calculate_string(string):
try:
result = eval(string)
return result
except Exception as e:
return f"Fehler bei der Berechnung: {str(e)}"

2
src/test/py/test_read_math_function.py

@ -15,6 +15,8 @@ class read_function(unittest.TestCase):
self.assertEqual(is_allowed_string("c", "42^(2)+1-3*4/3"), True) self.assertEqual(is_allowed_string("c", "42^(2)+1-3*4/3"), True)
def test_constant_isallowed_string_false(self): def test_constant_isallowed_string_false(self):
self.assertEqual(is_allowed_string("c", "42^(2)+1-3*4/3x"), False) self.assertEqual(is_allowed_string("c", "42^(2)+1-3*4/3x"), False)
def test_constant_calculate_without_pow(self):
self.assertEqual(calculate_string("42+1-3*4/3"), 39)
if __name__ == '__main__': if __name__ == '__main__':
unittest.main() unittest.main()
Loading…
Cancel
Save