diff --git a/bin/compile_tests b/bin/compile_tests index 689394a6..f46bce4e 100755 --- a/bin/compile_tests +++ b/bin/compile_tests @@ -4,6 +4,6 @@ if [ ! -d classes ]; then fi #on linux -javac -classpath "classes:lib/junit-4.11.jar" src/test/java/is/ru/stringcalculator/*.java -d classes +#javac -classpath "classes:lib/junit-4.11.jar" src/test/java/is/ru/stringcalculator/*.java -d classes #on windows -#javac -classpath "classes;lib\junit-4.11.jar" src/test/java/is/ru/stringcalculator/*.java -d classes +javac -classpath "classes;lib\junit-4.11.jar" src/test/java/is/ru/stringcalculator/*.java -d classes diff --git a/bin/unit_test b/bin/unit_test index badfd8bc..5967092f 100755 --- a/bin/unit_test +++ b/bin/unit_test @@ -1,5 +1,5 @@ #!/bin/bash #on linux -java -cp "classes/:lib/junit-4.11.jar:lib/hamcrest-core-1.3.jar" org.junit.runner.JUnitCore is.ru.stringcalculator.CalculatorTest +#java -cp "classes/:lib/junit-4.11.jar:lib/hamcrest-core-1.3.jar" org.junit.runner.JUnitCore is.ru.stringcalculator.CalculatorTest #on windows -#java -cp "classes/;lib/junit-4.11.jar;lib/hamcrest-core-1.3.jar" org.junit.runner.JUnitCore is.ru.stringcalculator.CalculatorTest \ No newline at end of file +java -cp "classes/;lib/junit-4.11.jar;lib/hamcrest-core-1.3.jar" org.junit.runner.JUnitCore is.ru.stringcalculator.CalculatorTest \ No newline at end of file diff --git a/src/main/java/is/ru/stringcalculator/Calculator.java b/src/main/java/is/ru/stringcalculator/Calculator.java index 5b416a9a..e84c9adf 100644 --- a/src/main/java/is/ru/stringcalculator/Calculator.java +++ b/src/main/java/is/ru/stringcalculator/Calculator.java @@ -1,14 +1,20 @@ package is.ru.stringcalculator; public class Calculator { - +/* + public static int add(String text){ + return 0; + } +*/ + public static int add(String text){ - if(text.equals("")){ - return 0; + if(text.equals("")) { + return 0; } else if(text.contains(",")){ - return sum(splitNumbers(text)); - } + String[]numbers = text.split(","); + return toInt(numbers[0]) + toInt(numbers[1]); + } else return 1; } @@ -18,17 +24,28 @@ private static int toInt(String number){ } private static String[] splitNumbers(String numbers){ - return numbers.split(","); + return numbers.split(""); } private static int sum(String[] numbers){ int total = 0; for(String number : numbers){ - total += toInt(number); + total += Integer.parseInt(number); } return total; } + private static int newLine(String numbers){ + int value = 0; + String[] numbersArray = numbers.split(",|n"); + for (String number : numbersArray) { + if (!number.trim().isEmpty()) { + value += Integer.parseInt(number.trim()); + } + } + return value; + } +} -} \ No newline at end of file + diff --git a/src/test/java/is/ru/stringcalculator/CalculatorTest.java b/src/test/java/is/ru/stringcalculator/CalculatorTest.java index 9a642b9d..f9baedc3 100644 --- a/src/test/java/is/ru/stringcalculator/CalculatorTest.java +++ b/src/test/java/is/ru/stringcalculator/CalculatorTest.java @@ -2,6 +2,9 @@ import static org.junit.Assert.assertEquals; import org.junit.Test; +import is.ru.stringcalculator.Calculator; // Hlynur told me +import org.junit.Rule; +import org.junit.rules.ExpectedException; public class CalculatorTest { @@ -13,7 +16,7 @@ public static void main(String args[]) { public void testEmptyString() { assertEquals(0, Calculator.add("")); } - + @Test public void testOneNumber() { assertEquals(1, Calculator.add("1")); @@ -25,8 +28,40 @@ public void testTwoNumbers() { } @Test - public void testMultipleNumbers(){ - assertEquals(6, Calculator.add("1,2,3")); + public void testThreeNumbers(){ + assertEquals(3, Calculator.add("1,2,3")); } + + @Test + public void testNewLinesBetweenNumbers() { + assertEquals(6, Calculator.add("1\n2,3")); + } +/* + @Test + public void testDifferentDelimiter(){ + assertEquals(3, Calculator.add("//;\n1;2")); + } + + @Test(expected = RuntimeException.class) + public void testOneNegativeNumberThrowAnException() { + Calculator.add("-1,2"); + } + @Test + public void testMultipleNegativeNumbersThrowAnException() { + RuntimeException exception = null; + try { + Calculator.add("2,-4,3,-5"); + } + catch (RuntimeException e) { + exception = e; + } + assertEquals("Negatives not allowed: [-1,-4,-5]", exception.getMessage()); + } + @Test + public void testBiggerThan1000Ignored() { + assertEquals(2, Calculator.add("1001,2")); + } +*/ -} \ No newline at end of file +} +