class MyTestCase(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('/src/addition_test.csv').data pprint(test_data) for row in test_data: self.assertEqual( self.calculator.Add(row['Value 1'], row['Value 2']), int(row['Result'])) self.assertEqual(self.calculator.result, int(row['Result'])) def test_subtraction(self): test_data = CsvReader('/src/subtraction_test.csv').data pprint(test_data) for row in test_data: self.assertEqual( self.calculator.Subtract(row['Value 1'], row['Value 2']), int(row['Result'])) self.assertEqual(self.calculator.result, int(row['Result'])) def test_multiplication(self): test_data = CsvReader('/src/Multiply_test.csv').data pprint(test_data) for row in test_data: self.assertEqual( self.calculator.Multiply(row['Value 1'], row['Value 2']), int(row['Result'])) self.assertEqual(self.calculator.result, int(row['Result'])) def test_division(self): test_data = CsvReader('/src/division_test.csv').data pprint(test_data) for row in test_data: self.assertEqual( self.calculator.Divide(row['Value 1'], row['Value 2']), float(row['Result'])) self.assertEqual(self.calculator.result, float(row['Result'])) def test_Square(self): test_data = CsvReader('/src/square_test.csv').data pprint(test_data) for row in test_data: self.assertEqual(self.calculator.Square(row['Value 1']), int(row['Result'])) self.assertEqual(self.calculator.result, int(row['Result'])) def test_SquareRoot(self): test_data = CsvReader('/src/square-root_test.csv').data pprint(test_data) for row in test_data: self.assertEqual(self.calculator.Square_root(row['Value 1']), float(row['Result'])) self.assertEqual(self.calculator.result, float(row['Result']))
def test_add_unknown_numbers_returns_sum_of_numbers() -> None: assert Calculator.Add("1,2,3,4,5") == "15"
def test_SemiColonSeperated(self): c = Calculator() self.assertEqual(c.Add(numbers="//;\n1;3;4"), 8)
def test_AtTheRateSeperated(self): c = Calculator() self.assertEqual(c.Add(numbers="//@\n1@3@8"), 12)
def test_HandleNewLines1(self): c = Calculator() self.assertEqual(c.Add(numbers="1\n,2,3"), 6)
def TestForAddingIntegerAndFloat(self): calculator = Calculator() first = 2 second = 3.5 expectation = 5.5 self.assertEqual(calculator.Add(first, second), expectation)
def test_DelimitersWithArbitraryLength(self): c = Calculator() self.assertEqual(c.Add(numbers="//***\n1***2***3"), 6)
def test_ArbitraryWithMultipleDelimiters(self): c = Calculator() self.assertEqual(c.Add(numbers="//***,$,@\n1$2@3***4"), 10)
def test_add_with_delimiter_return_only_sum_of_numbers() -> None: assert Calculator.Add("//X\n1X2") == "3"
def test_add_negative_number_return_error_vol2() -> None: with pytest.raises(Exception, match=r"Negatives not allowed: -4,-5,-12,-10"): Calculator.Add("2,-4,3,-5,-12,3,-10")
def test_add_empty_returns_zero() -> None: assert Calculator.Add("") == "0"
def test_add_negative_number_return_error() -> None: with pytest.raises(Exception, match=r"Negatives not allowed: -1"): Calculator.Add("-1,2")
def test_add_ignore_numbers_bigger_than_1000() -> None: assert Calculator.Add("1001,2") == "2"
def test_add_new_line_returns_sum_of_numbers() -> None: assert Calculator.Add("1\n2,3") == "6"
def test_add_unknown_numbers_returns_sum_of_numbers_vol3() -> None: assert Calculator.Add("10,2,5,22,1,1,105,342") == "488"
def test_TestResult(self): c = Calculator() self.assertEqual(c.Add(numbers="1,2,5"), 8)
def test_MultipleDelimiters(self): c = Calculator() self.assertEqual(c.Add(numbers="//$,@\n1$2@3"), 6)
def test_add_with_delimiter_return_only_sum_of_numbers_vol2() -> None: assert Calculator.Add("//%\n1%2%3") == "6"
def test_IgnoreGreaterThan1000(self): c = Calculator() self.assertEqual(c.Add(numbers="2,1001"), 2)
def test_add_number_returns_number() -> None: assert Calculator.Add("1") == "1"
def TestForAddingTwoFloats(self): calculator = Calculator() first = 2.5 second = 3.5 expectation = 6 self.assertEqual(calculator.Add(first, second), expectation)
def test_add_two_numbers_returns_sum_of_numbers() -> None: assert Calculator.Add("1,2") == "3"
def TestForAddingTwoIntegers(self): calculator = Calculator() first = 2 second = 3 expectation = 5 self.assertEqual(calculator.Add(first, second), expectation)
def test_correct_adding_float_int(self): c = Calculator() first = 10 second = 0.5 expected_result = 10.5 self.assertAlmostEqual(expected_result, c.Add(first, second))
def test_HandleNewLines2(self): c = Calculator() self.assertEqual(c.Add(numbers="1,\n2,4"), 7)
def test_correct_adding_float_float(self): c = Calculator() first = 0.3 second = 3.4 expected_result = 3.7 self.assertAlmostEqual(expected_result, c.Add(first, second))
def test_DollarSeperated(self): c = Calculator() self.assertEqual(c.Add(numbers="//$\n1$2$3"), 6)
def test_correct_adding_int_int(self): c = Calculator() first = 20 second = 25 expected_result = 45 self.assertEqual(expected_result, c.Add(first, second))
from Calculator import Calculator CalObj = Calculator() """ Run below comment to inspect Object in .so """ #print(help(CalObj)) print(CalObj.Add(15, 15))
def test_EmptyStringShouldReturnZero(self): c = Calculator() self.assertEqual(c.Add(numbers=""), 0)