from abc import ABC, abstractmethod import unittest class IStringCalculator(ABC): @abstractmethod def add(self, numbers: str) -> int: pass class StringCalculator(IStringCalculator): def add(self, numbers: str) -> int: if not numbers: return 0 return sum(map(int, numbers.split(','))) class TestStringCalculator(unittest.TestCase): def setUp(self): self.calculator = StringCalculator() def test_empty_string(self): self.assertEqual(self.calculator.add(""), 0) def test_single_number(self): self.assertEqual(self.calculator.add("1"), 1) def test_two_numbers(self): self.assertEqual(self.calculator.add("1,2"), 3) if __name__ == "__main__": unittest.main()