import unittest from my_string_calculator import StringCalculator # Wasili class TestStudent2OnMe(unittest.TestCase): def setUp(self): self.calc = StringCalculator() def test_add_empty(self): self.assertEqual(self.calc.add(""), 0) def test_add_one_string(self): self.assertEqual(self.calc.add("1"), 1) def test_add_two_string(self): self.assertEqual(self.calc.add("1,2"), 3) def test_add_multiple_string(self): self.assertEqual(self.calc.add("1,2,3,4,5,6,7"), 28) def test_add_new_lines(self): self.assertEqual(self.calc.add("1\n2,3,4"), 10) def test_add_exception(self): with self.assertRaises(ValueError) as context: self.calc.add("-5") self.assertEqual(str(context.exception), "Negatives not allowed: -5") def test_add_negative_numbers(self): with self.assertRaises(ValueError) as context: self.calc.add("-5,-2,-2") self.assertEqual(str(context.exception), "Negatives not allowed: -5, -2, -2") def test_add_different_delimiters(self): self.assertEqual(self.calc.add("//;\n1;2"), 3) def test_add_numbers_greater_than_1000(self): self.assertEqual(self.calc.add("2,1001"), 2) self.assertEqual(self.calc.add("2,10022\n6"), 8) def test_delimiters_of_any_length(self): self.assertEqual(self.calc.add("//[***]\n1***2***3"), 6) def test_delimiters_of_any_length2(self): self.assertEqual(self.calc.add("//[*+*+*]\n1*+*+*2*+*+*3*+*+*220"), 226) if __name__ == "__main__": unittest.main()