def test_maps(): calc2 = Calculator() # Initializer overload (props is optional) calc2.add(10) calc2.add(20) calc2.mul(2) assert len(calc2.operations_map.get("add")) == 2 assert len(calc2.operations_map.get("mul")) == 1 assert calc2.operations_map.get("add")[1].value == 30
def test_getAndSetEnumValues(): calc = Calculator() calc.add(9) calc.pow(3) CompositeOperation = composition.CompositeOperation assert calc.string_style == CompositeOperation.CompositionStringStyle.NORMAL calc.string_style = CompositeOperation.CompositionStringStyle.DECORATED assert calc.string_style == CompositeOperation.CompositionStringStyle.DECORATED assert calc.to_string() == "<<[[{{(((1 * (0 + 9)) * (0 + 9)) * (0 + 9))}}]]>>"
def test_callMethods(): calc = Calculator() calc.add(10) assert calc.value == 10 calc.mul(2) assert calc.value == 20 calc.pow(5) assert calc.value == 20 ** 5 calc.neg() assert calc.value == -3_200_000
def test_exceptions(): calc3 = Calculator(initial_value=20, maximum_value=30) calc3.add(3) assert calc3.value == 23 with pytest.raises(Exception): calc3.add(10) calc3.max_value = 40 calc3.add(10) assert calc3.value == 33
def test_unmarshallIntoAbstractType(): calc = Calculator() calc.add(120) assert calc.curr.value == 120