dreamtim.test_calculator API documentation
Description: Tests for calculator module.

# Module `dreamtim.test_calculator`

Tests for calculator module.

Expand source code

    """Tests for calculator module."""

    # this import works for tox run
    from dreamtim.calculator import Calculator

    import pytest

    def test_calculator():
        """Check are the calculations and reset() method correct"""

        calc_obj = Calculator('3.5')

        assert calc_obj.divide(7) == 0.5
        assert calc_obj.add(1.0) == 1.5
        assert calc_obj.multiply('2') == 3
        assert calc_obj.substract(5) == -2
        assert calc_obj.multiply(4) == -8

        # Root should be tested especially carefully
        assert calc_obj.root(3) ** 3 == -8
        # Because of base conversion we do not expect 2.0
        assert calc_obj.root(-3) ** (-3) == -1.9999999999999996
        assert calc_obj.root(-1/3) == -1.9999999999999996
        assert calc_obj.multiply(-4) == 7.999999999999998
        # We expect, that reset() method doesn't return anything
        assert calc_obj.reset() is None
        assert calc_obj.add(8) == 8
        assert calc_obj.root(3) == 2
        assert calc_obj.root(-3) ** (-3) == 1.9999999999999996
        assert calc_obj.reset() is None
        assert calc_obj.add(9) == 9
        assert calc_obj.root(-2) ** -2 == 9.000000000000002

    def test_calculator_inmput():
        """Check wrong imput cases"""

        with pytest.raises(ValueError):
            calc_obj = Calculator('abc')

        with pytest.raises(TypeError):
            calc_obj = Calculator(1, 1, 1, 1, 1)

## Functions

`def test_calculator()`

  Check are the calculations and reset() method correct

  Expand source code

      def test_calculator():
          """Check are the calculations and reset() method correct"""

          calc_obj = Calculator('3.5')

          assert calc_obj.divide(7) == 0.5
          assert calc_obj.add(1.0) == 1.5
          assert calc_obj.multiply('2') == 3
          assert calc_obj.substract(5) == -2
          assert calc_obj.multiply(4) == -8

          # Root should be tested especially carefully
          assert calc_obj.root(3) ** 3 == -8
          # Because of base conversion we do not expect 2.0
          assert calc_obj.root(-3) ** (-3) == -1.9999999999999996
          assert calc_obj.root(-1/3) == -1.9999999999999996
          assert calc_obj.multiply(-4) == 7.999999999999998
          # We expect, that reset() method doesn't return anything
          assert calc_obj.reset() is None
          assert calc_obj.add(8) == 8
          assert calc_obj.root(3) == 2
          assert calc_obj.root(-3) ** (-3) == 1.9999999999999996
          assert calc_obj.reset() is None
          assert calc_obj.add(9) == 9
          assert calc_obj.root(-2) ** -2 == 9.000000000000002

`def test_calculator_inmput()`

  Check wrong imput cases

  Expand source code

      def test_calculator_inmput():
          """Check wrong imput cases"""

          with pytest.raises(ValueError):
              calc_obj = Calculator('abc')

          with pytest.raises(TypeError):
              calc_obj = Calculator(1, 1, 1, 1, 1)