Exemple #1
0
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"))
Exemple #2
0
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)
Exemple #3
0
    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
Exemple #4
0
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"))