diff --git a/bin/StringCalculator.class b/bin/StringCalculator.class index a937b0c..22ac1a3 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..6b49710 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..a8e47cb 100644 --- a/src/StringCalculator.java +++ b/src/StringCalculator.java @@ -1,9 +1,123 @@ +import java.util.StringTokenizer; public class StringCalculator { + + + public int getnumber(String nb1) { + + int i1 = Integer.parseInt(nb1); + return i1; + + } + + public StringTokenizer decoupe (String nb) { + String delim = ","; + StringTokenizer s = new StringTokenizer(nb, delim); + return s; + } + public StringTokenizer decoupevirg (String nb) { + String delim = "/n"; + StringTokenizer s = new StringTokenizer(nb, delim); + return s; + + } + public StringTokenizer decoupeeception1 (String nb) { + boolean Value=true; + String delim = ",/n"; + StringTokenizer s = new StringTokenizer(nb, delim,Value); + return s; + + } + public StringTokenizer decoupeeception2 (String nb) { + boolean Value=true; + String delim = "/n,"; + StringTokenizer s = new StringTokenizer(nb, delim, Value); + return s; + + } + public String identification(StringTokenizer s1) { + String n1 = s1.nextToken(); + return n1; + } public int add(String numbersStr) { - // Returns the sum of the numbers given in numbersStr + StringTokenizer s = decoupe(numbersStr); + int tokennb= s.countTokens(); + String n1="0"; + String n2="0"; + if (tokennb==0){ + n1="0"; + n2="0"; + } + if (tokennb==1){ + n1=identification(s); + n2="0"; + } + if (tokennb==2){ + n1=identification(s); + n2=identification(s); + } + int sum = getnumber(n1) + getnumber(n2); + return sum; + } + public int add2(String numbersStr) { + StringTokenizer s = decoupe(numbersStr); + int tokennb= s.countTokens(); + int sum=0; + if (tokennb==0) { + sum = 0; + } + else { + for (int i=1;i<=tokennb;i++) { + int num = getnumber(identification(s)); + sum = sum +num; + } + + } + return sum; + } + public int add3(String numbersStr) { + StringTokenizer s1 = decoupeeception1(numbersStr); + StringTokenizer s2 = decoupeeception2(numbersStr); + int tokennb1= s1.countTokens(); + int tokennb2= s2.countTokens(); + boolean OK=true; + String n1="0"; + String n2="0"; + for (int i=1;i<=tokennb1;i++) { + n1 = identification(s1); + if (n1==",/n"){ + OK= false; + } + } + for (int i=1;i<=tokennb2;i++) { + n2 = identification(s2); + if (n2=="/n,") { + OK=false; + } + } + if (OK=true) { + StringTokenizer s = decoupe(numbersStr); + int tokennb= s.countTokens(); + int sum=0; + if (tokennb==0) { + sum = 0; + } + else { + for (int i=1;i<=tokennb;i++) { + StringTokenizer s3= decoupevirg(identification(s)); + int tokennb3= s3.countTokens(); + for (int j=1;j<=tokennb3;j++) { + int num = getnumber(identification(s3)); + sum = sum +num; + } + } + } + return sum; + } + else { + return 0; + } - // not yet implemented - return 0; } + } diff --git a/tests/StringCalculatorTest.java b/tests/StringCalculatorTest.java index 4ec9afe..bdec86d 100644 --- a/tests/StringCalculatorTest.java +++ b/tests/StringCalculatorTest.java @@ -5,8 +5,38 @@ public class StringCalculatorTest { @Test - public void test() { - fail("Not yet implemented"); + public void task1_2_number() { + StringCalculator sc = new StringCalculator(); + assertEquals(3, sc.add("1,2")); + } + @Test + public void task1_0() { + StringCalculator sc = new StringCalculator(); + assertEquals(0, sc.add("")); + } + @Test + public void task1_1_number() { + StringCalculator sc = new StringCalculator(); + assertEquals(1, sc.add("1")); + } + @Test + public void add2_task1_multiple_number() { + StringCalculator sc = new StringCalculator(); + assertEquals(30, sc.add2("1,8,3,9,4,3,2")); + } + @Test + public void add2_task1_multiple_number_0() { + StringCalculator sc = new StringCalculator(); + assertEquals(0, sc.add2("")); + } + @Test + public void add3_task1_multiple_number() { + StringCalculator sc = new StringCalculator(); + assertEquals(31, sc.add3("1,8,4/n9,4,3,2")); + } + @Test + public void add3_task1_multiple_number_virgn() { + StringCalculator sc = new StringCalculator(); + assertEquals(13, sc.add3("1,8,4,/n")); } - }