Skip to content
Snippets Groups Projects
Select Git revision
  • 8a3f6406d66148aaef0657c730409cece705aa82
  • main default protected
2 results

webpack.config.js

Blame
  • Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    feature2.py 1.20 KiB
    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
            # Ersetze Zeilenumbrüche durch Kommas und teile die Eingabe nach Kommas
            numbers = numbers.replace("\n", ",")
            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)
        
        def test_multiple_numbers(self):
            self.assertEqual(self.calculator.add("1,2,3,4,5"), 15)
        
        def test_numbers_with_newline(self):
            self.assertEqual(self.calculator.add("1\n2,3"), 6)
        
        def test_numbers_with_multiple_newlines(self):
            self.assertEqual(self.calculator.add("1\n2\n3\n4\n5"), 15)
    
    if __name__ == "__main__":
        unittest.main()