Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions bin/compile_tests
Original file line numberDiff line numberDiff line change
Expand Up@@ -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
4 changes: 2 additions & 2 deletions bin/unit_test
Original file line numberDiff line numberDiff line change
@@ -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
java -cp "classes/;lib/junit-4.11.jar;lib/hamcrest-core-1.3.jar" org.junit.runner.JUnitCore is.ru.stringcalculator.CalculatorTest
33 changes: 25 additions & 8 deletions src/main/java/is/ru/stringcalculator/Calculator.java
Original file line numberDiff line numberDiff line change
@@ -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;
}
Expand All@@ -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;
}
}


}
43 changes: 39 additions & 4 deletions src/test/java/is/ru/stringcalculator/CalculatorTest.java
Original file line numberDiff line numberDiff line change
Expand Up@@ -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 {

Expand All@@ -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"));
Expand All@@ -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"));
}
*/

}
}