diff --git a/bin/.gitignore b/bin/.gitignore new file mode 100644 index 0000000..249513b --- /dev/null +++ b/bin/.gitignore @@ -0,0 +1,3 @@ +/StringCalculator.class +/StringCalculatorException.class +/StringCalculatorTest.class diff --git a/bin/StringCalculator.class b/bin/StringCalculator.class index a937b0c..22f0342 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..505dab8 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..5b3d062 100644 --- a/src/StringCalculator.java +++ b/src/StringCalculator.java @@ -1,9 +1,34 @@ - public class StringCalculator { + private int sum; + + public int add(String numbersStr) { // Returns the sum of the numbers given in numbersStr + String[] parts = replacer(numbersStr).split(","); - // not yet implemented + int x = parts.length; + sum = 0; + + while(x > 0) { + + sum += stringParser(parts[x-1]); + + x--; + } return 0; } + + public String replacer(String fixThis) { + String replaced = fixThis.replaceAll("\n", ","); + return replaced; + } + + public int returnSum() { + return sum; + } + + public int stringParser(String parts) { + System.out.println("ok"); + return Integer.parseInt(parts); + } } diff --git a/tests/StringCalculatorTest.java b/tests/StringCalculatorTest.java index 4ec9afe..f69b0ff 100644 --- a/tests/StringCalculatorTest.java +++ b/tests/StringCalculatorTest.java @@ -1,12 +1,104 @@ -import static org.junit.Assert.*; - -import org.junit.Test; - -public class StringCalculatorTest { + import static org.junit.Assert.*; + + import org.junit.Test; + + public class StringCalculatorTest { + @Test + public void test() { +// fail("Not yet implemented"); + StringCalculator calc = new StringCalculator(); + + calc.add("5,2"); + int sum = calc.returnSum(); + assertEquals("Sum 5+2", 7, sum); + } + @Test - public void test() { - fail("Not yet implemented"); + public void test_two() { + StringCalculator calc = new StringCalculator(); + + calc.add("-1,1"); + int sum = calc.returnSum(); + assertEquals("Sum -1+1", 0, sum); + } + + @Test + public void test_three() { + StringCalculator calc = new StringCalculator(); + + calc.add("-1\n1"); + int sum = calc.returnSum(); + assertEquals("Sum -1+1", 0, sum); } - -} + + @Test + public void test_three_numbers() { + StringCalculator calc = new StringCalculator(); + + calc.add("1,2,3"); + int sum2 = calc.returnSum(); + assertEquals("Sum 1+2+3", 6, sum2); + } + @Test + public void test_three_numbers_two() { + StringCalculator calc = new StringCalculator(); + + calc.add("-1,0,5"); + int sum2 = calc.returnSum(); + assertEquals("Sum -1+0+5", 4, sum2); + } + + + @Test + public void test_three_numbers_delimiters() { + StringCalculator calc = new StringCalculator(); + + String testWord = calc.replacer("5\n5"); + + assertEquals("5\n5", "5,5", testWord); + + } + + @Test + public void test_three_numbers_different_delimiters() { + StringCalculator calc = new StringCalculator(); + + calc.add("1\n2,3"); + int sum2 = calc.returnSum(); + assertEquals("Sum 1+2+3", 6, sum2); + } + + @Test + public void test_three_numbers_different_delimiters_2() { + StringCalculator calc = new StringCalculator(); + + calc.add("1\n2\n3"); + int sum2 = calc.returnSum(); + assertEquals("Sum 1+2+3", 6, sum2); + } + + @Test + public void String_to_int() { + StringCalculator calc = new StringCalculator(); + + int parsed = calc.stringParser("5"); + assertEquals("String 5 to int 5", 5, parsed); + } + @Test + public void String_to_int_two() { + StringCalculator calc = new StringCalculator(); + + int parsed = calc.stringParser("0"); + assertEquals("String 0 to int 0", 0, parsed); + } + + @Test + public void String_to_int_three() { + StringCalculator calc = new StringCalculator(); + + int parsed = calc.stringParser("-1"); + assertEquals("String -1 to int -1", -1, parsed); + } + +} \ No newline at end of file