From a574759a27822752c0151cdfe669c2929c1c6fe6 Mon Sep 17 00:00:00 2001 From: mwechsler Date: Mon, 4 Oct 2021 13:39:51 +0200 Subject: [PATCH] STCC-319 Convert Exponent Function --- src/scratchtocatrobat/converter/converter.py | 1 + .../converter/test_converter.py | 16 ++++++++++++++++ 2 files changed, 17 insertions(+) diff --git a/src/scratchtocatrobat/converter/converter.py b/src/scratchtocatrobat/converter/converter.py index d9ccff37..eb2f2243 100644 --- a/src/scratchtocatrobat/converter/converter.py +++ b/src/scratchtocatrobat/converter/converter.py @@ -307,6 +307,7 @@ class _ScratchToCatrobat(object): "10 ^": lambda value: catrobat.create_formula_element_for([catformula.Functions.POWER, 10, value]), "floor": catformula.Functions.FLOOR, "ceiling": catformula.Functions.CEIL, + "e ^": catformula.Functions.EXP } math_unary_operators_mapping = { diff --git a/src/scratchtocatrobat/converter/test_converter.py b/src/scratchtocatrobat/converter/test_converter.py index 56afa664..88fb7a2b 100644 --- a/src/scratchtocatrobat/converter/test_converter.py +++ b/src/scratchtocatrobat/converter/test_converter.py @@ -516,6 +516,22 @@ def test_can_convert_pow_of_10_block(self): self.assertIsNone(exponent_fe.leftChild) self.assertIsNone(exponent_fe.rightChild) + # e ^ + def test_can_convert_exponent_block(self): + exponent = 6 + scratch_block = ["e ^", exponent] + [formula_element] = self.block_converter._catrobat_bricks_from(scratch_block, DUMMY_CATR_SPRITE) + self.assertIsInstance(formula_element, catformula.FormulaElement) + self.assertEqual(formula_element.type, catformula.FormulaElement.ElementType.FUNCTION) + self.assertEqual(formula_element.value, catformula.Functions.EXP.toString()) + + exponent_fe = formula_element.leftChild + self.assertIsInstance(exponent_fe, catformula.FormulaElement) + self.assertEqual(exponent_fe.type, catformula.FormulaElement.ElementType.NUMBER) + self.assertEqual(exponent_fe.value, "6") + self.assertIsNone(exponent_fe.leftChild) + self.assertIsNone(exponent_fe.rightChild) + # lineCountOfList: def test_can_convert_line_count_of_list_block(self): scratch_block = ["lineCountOfList:", self._name_of_test_list]