Esempio n. 1
0
class CalculatorTestCase(unittest.TestCase):
    def setUp(self) -> None:
        self.calculator = Calculator()

    def test_instantiate_calculator(self):
        self.assertIsInstance(self.calculator, Calculator)

    def test_addition(self):
        test_data = CsvReader("../tests/data/Unit Test Addition.csv").data
        for row in test_data:
            result = float(row['Result'])
            self.assertEqual(
                self.calculator.adding(row['Value 1'], row['Value 2']), result)
            self.assertEqual(self.calculator.result, result)

    def test_subtraction(self):
        test_data = CsvReader("../tests/data/Unit Test Subtraction.csv").data
        for row in test_data:
            result = float(row['Result'])
            self.assertEqual(
                self.calculator.subtracting(row['Value 1'], row['Value 2']),
                result)
            self.assertEqual(self.calculator.result, result)

    def test_multiplication(self):
        test_data = CsvReader(
            "../tests/data/Unit Test Multiplication.csv").data
        for row in test_data:
            result = float(row['Result'])
            self.assertEqual(
                self.calculator.multiplying(row['Value 1'], row['Value 2']),
                result)
            self.assertEqual(self.calculator.result, result)
            self.assertEqual(self.calculator.multiplying(2, 1), 2)

    def test_division(self):
        test_data = CsvReader("../tests/data/Unit Test Division.csv").data
        for row in test_data:
            result = float(row['Result'])
            self.assertEqual(
                self.calculator.dividing(row['Value 1'], row['Value 2']),
                result)
            self.assertEqual(self.calculator.result, result)

    def test_square(self):
        test_data = CsvReader("../tests/data/Unit Test Square.csv").data
        for row in test_data:
            result = float(row['Result'])
            self.assertEqual(self.calculator.sqr(row['Value 1']), result)
            self.assertEqual(self.calculator.result, result)

    def test_sqr_root(self):
        test_data = CsvReader("../tests/data/Unit Test Square Root.csv").data
        for row in test_data:
            result = round(float(row['Result']), 8)
            self.assertEqual(self.calculator.sqr_root(row['Value 1']), result)
            self.assertEqual(self.calculator.result, result)

    def test_zero_division_error(self):
        self.assertRaises(ZeroDivisionError, self.calculator.dividing(0, 1))

    if __name__ == '__main__':
        unittest.main()