From 9b28ed46b102deb20498421363ed976adab4cb4b Mon Sep 17 00:00:00 2001 From: chartonclement <43209309+chartonclement@users.noreply.github.com> Date: Mon, 1 Oct 2018 20:12:05 +0300 Subject: [PATCH] assigment finish --- bin/StringCalculator.class | Bin 405 -> 2955 bytes bin/StringCalculatorTest.class | Bin 505 -> 1543 bytes src/StringCalculator.java | 120 +++++++++++++++++++++++++++++++- tests/StringCalculatorTest.java | 36 +++++++++- 4 files changed, 150 insertions(+), 6 deletions(-) diff --git a/bin/StringCalculator.class b/bin/StringCalculator.class index a937b0c43633d36f133837cd90ddd10fb14ac782..22ac1a3d9ce319caba20b8fc8c94d25f4c46dea6 100644 GIT binary patch literal 2955 zcmbtV+fNi%9RAMk%wC7xWnq-%qIj#YEUcie3V20ODi`il=A7T{`+nc= z@Z*ceUjsORoF5*6*jTA(TC;uGd~PwHEftD>DBPXP-p;1;S!*^uIz4CPN&>!K(=toP z1iUS+69P(KVa5o-i=YM-K7r_vX&EDnx2BEacy>B(2*ig9xomzSTQudjyQ!3Jm<#gk z?|FL!g0n`+vLguSEkl(W9NV7O!4RrZ<40Vex^g;bm5f=VsG$~7fxvvWxL|OPm0HuC zGF8RY4J6<(c_Ib{{4++busF|h)0<^2b*KJEC97j7Ds`L0py380Z7Qhsa`NZ2Vh zGYg>!&61)W0(&>fu(3GFuE&}dP-l$1d5by7SHmj`5eT~=Zkxr~09xpuw%9~>*T@<3 zC9`042GB-QQfW&T)h>(b5NP>VMO~3qsT0}!BAF6bHU{qsU_XPWt&~8-oH4ADdELxq zW!?(4n-SF0x{(4|-ysc$afG6l>jJecn-~-A0-Ncv`0!?DW0+*k#L!LprJ9!2nJZ%06j6pm81!%GFs75vih(qr(L@of;|0rpuOitS&k)EV3(A zW2J2F=5Ti27PcRwf0-IbEF2RSL>FPwjUk{;IR<=J@ryl1luzkA$hQpYZ+nE;(Z>5+I_@F9fdKOa?GVk5 znHz!*(6NQiD($wSj!zB}>fNx{pzsff#v6v8plPx#^$^=f+8>m|N9=I&8D&i|J4MoQ zDW`~Hr=7yfon2gcXz9Uj?4g&CTyIFW_f^Si=vK=R`hQ5qX1mFXM641&r zH$FtFTS+JtcySv_g5}oJx`7v8qn-7D<6DMU>q7J(&OYv=y-GqPSTB9NHduw3DX~rR zcl|^DX2#pWh&vf;*Z<1T0dw|4WG)o)6Hk{!Fcb2pa5dP3hzO zAQb}KM#yyp-b&)$CWb+$d!Jv}SR?wSF%ESIuT<)$)R7tall8LS$!2^Es;7lf_hxOQ0 zCcG3CdQ^`rul=^930>1e%WL21;rrf78$RM_0;6ohdD41;Esz9_k+gA&;v$E3g0x*? z8!l6glj!F6X}n32-=g)~+`WdY{5CL+JaSmT4Bq9}d$^AGF^dmy10P}zpWr6$(Bd9$ zVFebxL;;Vv{+?$))9V-9wp;uSbxO+1Eq+>V@lVXXhu4XQA8^IKf#dj=xn+y%@PswU z7B}D#E89mr+wqmHd_OTfu$3R+jqOMwNO7&N7KlRL=t0(f$rewD)sNfa3FBi*Qi?}o z^+{Up;q`rw5wCGCf@L&gimNE`IMRyQGj$bJYoskyo+(>p?qKmhWz3_+Jkmnj)WWs~ Xq$<}Hsy{>UIegDZfIyZMc`*Ga-@x0l delta 157 zcmeAcpUTX2>ff$?3=9k=3?dV`CbBaprlc@3h)xz{66V+RWMtsVE6q(xEh-K!DVq3R zeDV!uJw~R<>?~S|ObpyWT|5koK#~rN9v7>3{Jfo|&pWhs>+XHZ(Uvh)xIOVCO*ku++6koc?Fwwt=R?CKu4124!w zU^MXpyeQ*0J%>z{{+OMaoxacae6zp*{P+c+jF&Nl7*eOcYufE2-D(Dw?mO<8;rTH{ z7?KzIm9AO3-PYbUE{vwnFmYhorhmu~&gRY;B1cZkNFa>3j3_1;rfa5cybUfJhI^(r zEQ3L*IZfR<*IkpZdz%seqvGADuUo0rD9>6sK$wQa}O zebcciC0TRawssLvVH&T!5`#j!x1$r7K|D(0{1=vRpCk(TBHzx)Sil2X>#Y{UT(&k8 z@1|68ZxUF-N({@CJj7K!&v1Pit5{=@_0H)pebf#sW@Eu(j)@3Smnhhegi-^-Ws`}s1B9kX2-1#TAM z5e$ptlj^%&Q0d>G6$wwNQVuF>_6TWT# zoH~KqG+vwh>&e`18^7Qkemz*Dj)gmyDbb9+J{n`R*62y?M0EQG(l?rfkf4#jrcKSDI*SvICGTG z3F+=XiNpyK5!SImB!*2P>wS-v>a*gi@^B1kit?s0i{uC?H6Y0Y($?Kb3029CA(3cM_4dg(N}$R8@I=4NcU)d17UVv@pU-53Gj$D+*a-`X?kU5owvMRz^r7tCEl; tuqvy{lWXjWtk#LOK~|e1ERj{^uB-!9IUK{ff$?3=9k=4AK+1X0o!Bq!yP<+@$Zo!63xQAncc4qEMMyqL7(ekdvC5 znpcvV!o?uMAjZxh%E%y)UzDz&RhpMsqVHH-oLW@E!ywKe!N|apmYA6{S&mVhF>LZ& zCKE=c$(NYI>`fRLfslcLO-OJDgYZTmi-~~?NOA#b1_n+BRv?QT$l`&h0@A!d9wUP! JkYr+z0szv%AlU!_ 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")); } - }