diff --git a/test_me_on_student5.py b/test_me_on_student5.py new file mode 100644 index 0000000000000000000000000000000000000000..c66995b7216c4da27cf6cea024f9efcb28538678 --- /dev/null +++ b/test_me_on_student5.py @@ -0,0 +1,30 @@ +import unittest +from other.student5.Calculator_combined import StringCalculator #orlando + +class TestMeOnStudent5(unittest.TestCase): + def setUp(self): + self.calc = StringCalculator() + + def test_ignores_empty_entries(self): + self.assertEqual(self.calc.add("1,,2"), 3) + self.assertEqual(self.calc.add(",,1,,2,,"), 3) + + def test_add_multi_char_delimiter(self): + self.assertEqual(self.calc.add("//[abc]\n4abc5abc6"), 15) + + def test_newlines_mixed_with_commas(self): + self.assertEqual(self.calc.add("1,2\n3"), 6) + + def test_single_number(self): + self.assertEqual(self.calc.add("5"), 5) + + def test_custom_delimiters_varied(self): + self.assertEqual(self.calc.add("//_\n7_8_9"), 24) + + def test_multiple_negatives(self): + with self.assertRaises(ValueError) as context: + self.calc.add("-1,-2") + self.assertIn("negatives not allowed", str(context.exception)) + +if __name__ == "__main__": + unittest.main() diff --git a/test_student5_on_me.py b/test_student5_on_me.py new file mode 100644 index 0000000000000000000000000000000000000000..f61272306c7f41d22d0595d33d523e9c26c583a0 --- /dev/null +++ b/test_student5_on_me.py @@ -0,0 +1,57 @@ +import unittest +from my_string_calculator import StringCalculator + +class TestStudent5OnMyCode(unittest.TestCase): + def setUp(self): + self.calc = StringCalculator() + + def test_add_empty_string(self): + self.assertEqual(self.calc.add(""), 0) + + def test_add_single_number(self): + self.assertEqual(self.calc.add("1"), 1) + + def test_add_two_numbers(self): + self.assertEqual(self.calc.add("1,2"), 3) + + def test_add_multiple_numbers(self): + self.assertEqual(self.calc.add("1,2,3"), 6) + self.assertEqual(self.calc.add("1,2,3,4,5"), 15) + + def test_add_ignores_empty_entries(self): + self.assertEqual(self.calc.add("1,,2"), 3) + self.assertEqual(self.calc.add("1, ,2"), 3) + self.assertEqual(self.calc.add(",,1,,2,,,"), 3) + + def test_add_with_newlines_between_numbers(self): + self.assertEqual(self.calc.add("1\n2,3"), 6) + self.assertEqual(self.calc.add("1,2\n3"), 6) + self.assertEqual(self.calc.add("1\n2\n3"), 6) + + def test_add_raises_exception_on_negative_number(self): + with self.assertRaises(ValueError) as context: + self.calc.add("1,-2") + self.assertIn("Negatives not allowed", str(context.exception)) + + def test_add_raises_exception_on_multiple_negatives(self): + with self.assertRaises(ValueError) as context: + self.calc.add("-1,-2,3") + self.assertIn("Negatives not allowed", str(context.exception)) + + def test_add_with_custom_delimiter(self): + self.assertEqual(self.calc.add("//;\n1;2"), 3) + self.assertEqual(self.calc.add("//|\n4|5|6"), 15) + self.assertEqual(self.calc.add("//_\n7_8_9"), 24) + + def test_add_ignores_numbers_greater_than_1000(self): + self.assertEqual(self.calc.add("2,1001"), 2) + self.assertEqual(self.calc.add("1000,1"), 1001) + self.assertEqual(self.calc.add("1234,1001,3"), 3) + + def test_add_with_multi_char_delimiter(self): + self.assertEqual(self.calc.add("//[***]\n1***2***3"), 6) + self.assertEqual(self.calc.add("//[abc]\n4abc5abc6"), 15) + self.assertEqual(self.calc.add("//[+]\n1+2+3"), 6) + +if __name__ == "__main__": + unittest.main()