Skip to content

Commit

Permalink
Merge pull request 12meses12katas#104 from Amedio/master
Browse files Browse the repository at this point in the history
Python StringCalculator
  • Loading branch information
12meses12katas committed Nov 6, 2011
2 parents 7b327cf + 6c20686 commit e38b2d3
Show file tree
Hide file tree
Showing 8 changed files with 165 additions and 0 deletions.
15 changes: 15 additions & 0 deletions amedio/.gitignore
@@ -0,0 +1,15 @@
*.pydevproject
.project
.metadata
bin/**
tmp/**
tmp/**/*
*.pyc
*.tmp
*.bak
*.swp
*~.nib
local.properties
.classpath
.settings/
.loadpath
Empty file added amedio/README
Empty file.
Empty file added amedio/src/__init__.py
Empty file.
17 changes: 17 additions & 0 deletions amedio/src/main/Calculator.py
@@ -0,0 +1,17 @@
from src.main.constants import _constants

class Calculator(object):

def __init__(self):
pass

def add(self, addParams):

result = 0

if addParams != "":
const = _constants()
for calcParam in addParams.replace(const.COMMA_SEP(), const.NEW_LINE_SEP()).split(const.NEW_LINE_SEP()):
result += int(calcParam)

return result
Empty file added amedio/src/main/__init__.py
Empty file.
10 changes: 10 additions & 0 deletions amedio/src/main/constants.py
@@ -0,0 +1,10 @@
class _constants(object):

def __init__(self):
pass

def COMMA_SEP(self):
return ','

def NEW_LINE_SEP(self):
return '\\n'
123 changes: 123 additions & 0 deletions amedio/src/test/CalculatorTest.py
@@ -0,0 +1,123 @@
import unittest
from src.main.calculator import Calculator


class CalculatorTest(unittest.TestCase):

def testAddNoParams(self):

calc = Calculator()

expected = 0
resulted = calc.add("")

self.assertEquals(expected, resulted, "Adding no params Error")

pass

def testAddOneParam(self):

calc = Calculator()

expected = 1
resulted = calc.add("1")

self.assertEquals(expected, resulted, "Adding one param Error")

expected = 2
resulted = calc.add("2")

self.assertEquals(expected, resulted, "Adding one param Error")

expected = 3
resulted = calc.add("3")

self.assertEquals(expected, resulted, "Adding one param Error")

pass

def testAddTwoParams(self):

calc = Calculator()

expected = 2
resulted = calc.add("1,1")

self.assertEquals(expected, resulted, "Adding two params Error")

expected = 3
resulted = calc.add("1,2")

self.assertEquals(expected, resulted, "Adding two params Error")

expected = 1
resulted = calc.add("0,1")

self.assertEquals(expected, resulted, "Adding two params Error")

expected = 5
resulted = calc.add("3,2")

self.assertEquals(expected, resulted, "Adding two params Error")

expected = 20
resulted = calc.add("10,10")

self.assertEquals(expected, resulted, "Adding two params Error")

pass

def testAddSomeParams(self):

calc = Calculator()

expected = 6
resulted = calc.add("1,2,3")

self.assertEquals(expected, resulted, "Adding some params Error")

expected = 12
resulted = calc.add("1,2,3,6")

self.assertEquals(expected, resulted, "Adding some params Error")

expected = 5
resulted = calc.add("1,1,3")

self.assertEquals(expected, resulted, "Adding some params Error")

expected = 30
resulted = calc.add("10,10,10")

self.assertEquals(expected, resulted, "Adding some params Error")

pass

def testAddSomeParamsWithNewLineSymbol(self):

calc = Calculator()

expected = 6
resulted = calc.add("1\\n2,3")

self.assertEquals(expected, resulted, "Adding some params Error")

expected = 12
resulted = calc.add("1,2\\n3,6")

self.assertEquals(expected, resulted, "Adding some params Error")

expected = 5
resulted = calc.add("1,1\\n3")

self.assertEquals(expected, resulted, "Adding some params Error")

expected = 30
resulted = calc.add("10\\n10\\n10")

self.assertEquals(expected, resulted, "Adding some params Error")

pass

if __name__ == "__main__":
unittest.main()
Empty file added amedio/src/test/__init__.py
Empty file.

0 comments on commit e38b2d3

Please sign in to comment.