class StringCalculatorTest(unittest.TestCase): def setUp(self): self.sc = StringCalculator() def test_empty(self): self.assertEqual(0, self.sc.Add("")) def test_three(self): self.assertEqual(8, self.sc.Add("1,2,5")) def test_threeNL(self): self.assertEqual(6, self.sc.Add("1\n,2,3")) self.assertEqual(7, self.sc.Add("1,\n2,4")) def test_delim(self): self.assertEqual(8, self.sc.Add("//;\n1;3;4")) self.assertEqual(6, self.sc.Add("//$\n1$2$3")) self.assertEqual(13, self.sc.Add("//@\n2@3@8")) def test_noNegative(self): with self.assertRaises(NegativeException) as neContext: self.sc.Add("1,-2,3,-4") ne = neContext.exception self.assertTrue(0 < ne.message.find("-2")) self.assertTrue(0 < ne.message.find("-4")) def test_tooLarge(self): self.assertEqual(1002, self.sc.Add("2,1000")) self.assertEqual(2, self.sc.Add("2,1001")) def test_longDelimTest(self): self.assertEquals(6, self.sc.Add("//***\n1***2***3")) def test_multiDelimTest(self): self.assertEquals(6, self.sc.Add("//$,@\n1$2@3"))
class TestKata(unittest.TestCase): def setUp(self): self.calc = StringCalculator() def test_no_operands(self): self.assertEqual(self.calc.Add(""), 0) def test_n_operands(self): self.assertEqual(self.calc.Add("1"), 1) self.assertEqual(self.calc.Add("2"), 2) self.assertEqual(self.calc.Add("1,2"), 3) self.assertEqual(self.calc.Add("1,2,3"), 6) def test_delimiter_newline(self): self.assertEqual(self.calc.Add("1\n2"), 3) self.assertEqual(self.calc.Add("1\n2,3"), 6) def test_delimiter_choice(self): self.assertEqual(self.calc.Add("//;\n1;2,3\n4"), 10) def test_double_digits(self): self.assertEqual(self.calc.Add("12,3,4"), 19) def test_double_digits2(self): self.assertEqual(self.calc.Add("12,24,36"), 72)
def parse_args(self): parser = argparse.ArgumentParser( description='StringCalculator (stringcal "12,4,5")') parser.add_argument('stringcal') parser.add_argument('string_sum', type=str) args = parser.parse_args() calc = StringCalculator() #result = cal.Add(operands=args.string_sum) result = calc.Add(args.string_sum) print(result) return result
class TestStringCalculator(unittest.TestCase): def setUp(self): self.calc = StringCalculator() def testVacio(self): self.assertEqual(0, self.calc.Add("")) def testUnNumero(self): self.assertEqual(1, self.calc.Add("1")) self.assertEqual(2, self.calc.Add("2")) def testDosNumeros(self): self.assertEqual(3, self.calc.Add("1,2")) self.assertEqual(30, self.calc.Add("10,20")) def testVariosNumeros(self): self.assertEqual(6, self.calc.Add("1,2,3")) self.assertEqual(60, self.calc.Add("10,20,30")) def testSeparadorSaltoLinea(self): self.assertEqual(6, self.calc.Add("1\n2,3")) def testNoSeAdmiteSeparadorDoble(self): self.assertEqual(6, self.calc.Add("1\n,,3"))