diff --git a/bin/StringCalculator.class b/bin/StringCalculator.class index a937b0c..2401ef7 100644 Binary files a/bin/StringCalculator.class and b/bin/StringCalculator.class differ diff --git a/bin/StringCalculatorTest.class b/bin/StringCalculatorTest.class index d44b83f..05f5a70 100644 Binary files a/bin/StringCalculatorTest.class and b/bin/StringCalculatorTest.class differ diff --git a/src/StringCalculator.java b/src/StringCalculator.java index 487916b..d3643ec 100644 --- a/src/StringCalculator.java +++ b/src/StringCalculator.java @@ -1,9 +1,56 @@ public class StringCalculator { + + public int add(String numbersStr) { - // Returns the sum of the numbers given in numbersStr - // not yet implemented - return 0; + boolean lengthCheck = checkLength(numbersStr); + + int sum = 0; + if (lengthCheck == true) { + boolean inputCheck = checkInput(numbersStr); + if (inputCheck == true) { + String[] strArray = numbersStr.split(",|\\\n"); + int[] intArray = new int[strArray.length]; + for(int i = 0; i < strArray.length; i++) { + intArray[i] = Integer.parseInt(strArray[i]); + } + + for (int j = 0; j < strArray.length; j++ ) { + sum = sum + intArray[j]; + } + } + } + + return sum; + } + + public boolean checkLength (String numbersStr) { + int stringLength = numbersStr.length(); + + if (stringLength <= 0) { + return false; + } else { + String[] strArray = numbersStr.split(",|\\\n"); + int[] intArray = new int[strArray.length]; + for(int i = 0; i < strArray.length; i++) { + if (i > 1) { + return false; + } + intArray[i] = Integer.parseInt(strArray[i]); + } + } + return true; + } + + public boolean checkInput (String numbersStr) { + String[] strArray = numbersStr.split(",|\\\n"); + + if (numbersStr.matches("^[0-9,\n]+$")) { + return true; + } + + return false; } + } diff --git a/tests/StringCalculatorTest.java b/tests/StringCalculatorTest.java index 4ec9afe..df9b511 100644 --- a/tests/StringCalculatorTest.java +++ b/tests/StringCalculatorTest.java @@ -4,9 +4,94 @@ public class StringCalculatorTest { + //comment @Test - public void test() { - fail("Not yet implemented"); + public void testStringEmpty() { + + StringCalculator calculator = new StringCalculator(); + String numbersStr = ""; + + assertEquals(false , calculator.checkLength(numbersStr)); + } + + @Test + public void testStringTooLong() { + + StringCalculator calculator = new StringCalculator(); + String numbersStr = "1,2,3"; + + assertEquals(false , calculator.checkLength(numbersStr)); + } + + @Test + public void testStringLength() { + + StringCalculator calculator = new StringCalculator(); + String numbersStr = "11,22"; + + assertEquals(true , calculator.checkLength(numbersStr)); + } + + @Test + public void testSumComma() { + + StringCalculator calculator = new StringCalculator(); + String numbersStr = "1,2"; + + assertEquals(3 , calculator.add(numbersStr)); + } + + @Test + public void testSumNewLine() { + + StringCalculator calculator = new StringCalculator(); + String numbersStr = "1\n2"; + + assertEquals(3 , calculator.add(numbersStr)); } + @Test + public void testLetters() { + + StringCalculator calculator = new StringCalculator(); + String numbersStr = "abc"; + + assertEquals(false , calculator.checkInput(numbersStr)); + } + + @Test + public void testLetters2() { + + StringCalculator calculator = new StringCalculator(); + String numbersStr = "n12"; + + assertEquals(false , calculator.checkInput(numbersStr)); + } + + @Test + public void testSumEmpty() { + + StringCalculator calculator = new StringCalculator(); + String numbersStr = ""; + + assertEquals(0 , calculator.add(numbersStr)); + } + + @Test + public void testSum() { + + StringCalculator calculator = new StringCalculator(); + String numbersStr = "11,22"; + + assertEquals(33 , calculator.add(numbersStr)); + } + + @Test + public void testOneNumber() { + + StringCalculator calculator = new StringCalculator(); + String numbersStr = "10"; + + assertEquals(10 , calculator.add(numbersStr)); + } }