From 3efc72aaf2e29d512af7b91a958b5c6adb319705 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sakari=20J=C3=A4rvel=C3=A4?= Date: Mon, 1 Oct 2018 23:51:29 +0300 Subject: [PATCH 1/2] Assignment finished. --- .classpath | 2 +- .settings/org.eclipse.jdt.core.prefs | 6 +- bin/defaultpackage/StringCalculator.class | Bin 0 -> 2919 bytes bin/defaultpackage/calculatorTester.class | Bin 0 -> 1168 bytes src/defaultpackage/StringCalculator.java | 77 +++++++++++++++++++++ tests/defaultpackage/calculatorTester.java | 25 +++++++ 6 files changed, 106 insertions(+), 4 deletions(-) create mode 100644 bin/defaultpackage/StringCalculator.class create mode 100644 bin/defaultpackage/calculatorTester.class create mode 100644 src/defaultpackage/StringCalculator.java create mode 100644 tests/defaultpackage/calculatorTester.java diff --git a/.classpath b/.classpath index e738af1..7ea8152 100644 --- a/.classpath +++ b/.classpath @@ -2,7 +2,7 @@ - + diff --git a/.settings/org.eclipse.jdt.core.prefs b/.settings/org.eclipse.jdt.core.prefs index 3a21537..8000cd6 100644 --- a/.settings/org.eclipse.jdt.core.prefs +++ b/.settings/org.eclipse.jdt.core.prefs @@ -1,11 +1,11 @@ eclipse.preferences.version=1 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled -org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6 org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve -org.eclipse.jdt.core.compiler.compliance=1.8 +org.eclipse.jdt.core.compiler.compliance=1.6 org.eclipse.jdt.core.compiler.debug.lineNumber=generate org.eclipse.jdt.core.compiler.debug.localVariable=generate org.eclipse.jdt.core.compiler.debug.sourceFile=generate org.eclipse.jdt.core.compiler.problem.assertIdentifier=error org.eclipse.jdt.core.compiler.problem.enumIdentifier=error -org.eclipse.jdt.core.compiler.source=1.8 +org.eclipse.jdt.core.compiler.source=1.6 diff --git a/bin/defaultpackage/StringCalculator.class b/bin/defaultpackage/StringCalculator.class new file mode 100644 index 0000000000000000000000000000000000000000..d579433c6fa29e0357aefad74e05b7f77fac326a GIT binary patch literal 2919 zcma)8TWl0n82-*)I@@Imr8lV1GKfH1mR6vEwurXXLUl`l)?z7Yr@Pa3VRmNSoy9wf z3f>j(#Q31mgclwVv~48mi;0OonDFSMFD5?wrcwOPnca44Yc$R7o;m;JeE;`<=b!%Y z*Ee$jcH$!q0f7xkYr@RiUdBwEGAFIJK`)zfCVNafk+)6H&1wh4KQ`Mv_xab?eYDZ6bjVLFbL?G(_GmTh@fR-oRut9U=AJD;+X%ByT&%1L?q z1%ge@!vdimH)%x?M1_uWL^Z4uSiK~BIaZ@uL)9W=gHPr>E3KmjwE}^ZBT(y~n{wOw zoJ?NAwaj#96f3btW?w6?wrN?H=HYS(+@d3lG7akm)+`XPsDLQep+fp@(4iqBuqvK% ztV8+qxRo6;$8AfXD()ssd)UmTP?r$e z*}Q~f7P=M98k!cfr24C)1=|Excy7;>neEDE%_qryQ}bw#4B9T)X%z@JjrKGT%NlRj zu>(5=%FIm0atLAj|AJ6#vrN&hV>k8)=)Nq}xzy46roN@nOXKd)aVI(iBA#2+TTRo_ zkWQ(IeLC)f)RLQL>V@_nrlyPSkKi7GM!!X-EZj&r#)O+S%n6FsFm1cTka)W#2|diR zT&0SX`y?s7vV@+ccos@Hi2F74@s=nJQH&*MbUYx>&@vLB?L^QoP*aM{wwy_C%11OH z&)XBh5$bVh$}$pco#B^|pt3zH*%84YyWQt_)})oq8B`bLn2g{-mOPkG8#&7}(kUmO zGhD|qOea}%X^r5RfRR(`=;kaa8kCa^bMm&`8l}`nbR5U1KwaKB<+zVKU1>M(cmoqY zY^r)$#*RnuFt5~uevDzNAj6$tUU^w^D)pl}#v~s#h17n^gT!fDS*gr%9SKl=+G*3y zTLTmFuw}@n^d~T-VX`*PF7a0)gm4a)F9LkNxg9Gio+z zc$RiEne@5O$!YnDj#t$cbgU;lIp89AohVdQN-zffsXo>w@TQL2u$e<&9;U3lZkDbK zuN2wH3p(DxyM*KmT#bJsUFies&AMsn&y7V&ptz!gZa$l^dQ)sUE*6_qon`x^CpS~oI-hOg21B|QQ# z_+3SRnK8tiRm|AH^+xXKeiqz{O?(Q-`u!6EH|VPY;_S9*Z0V29g}=as;QmWE7i(y* zJn<=>iZz7B+AEz;k-3hoBe5C8;w@jHk?w8Bh2kI#e(hA zxHlG(-^zTTXpKwj+%yjP+w*6<6ci1yxzBDsU35G=pT_qL?g`OUb#xjB0(-)8ImD&t zD3i-!E?c(E;GvIEEuT*mo*%h{i^MVua~9TqX*oqpY%cT#HWQt{uM#WhX`Wddng>UJ zwe517Wgn_~j3kuU8)`#i3X1Z|$>8vOaBX-Nd4*0{pP;qAjPZUo^<`Jsn4oInTdGM> zwr&OgDo}}4Y}{&WV@umn%@;@wdQpobsDq0&IFGe>n|>Fu9#`1%YiPuEY``3|eaH5H z&*&R$_)pk^pQ-F$(1c(4di{+V|3FL#zDaeoiA~rcdiW0Q!!9v~b}@AVo>!}D_z`Eh3K7eG!vFvP literal 0 HcmV?d00001 diff --git a/bin/defaultpackage/calculatorTester.class b/bin/defaultpackage/calculatorTester.class new file mode 100644 index 0000000000000000000000000000000000000000..a4e692e96a9723ed4b8f5495b1f037b916b15e2d GIT binary patch literal 1168 zcmah|T~8B16g^W4yOgbzLPhX{MMPRCtl~FC6i9q3XeepI^Ab5@G^I2@4e@qd+wdze}DW0u#61@DTXOm9Pr3fZQl66o5E>uuMv4% z1>vsfC=nV+Gvp5WNA7ssZ#r-H4@E;U46I6Dsx^kbVyVuM-V9ukK_3P!^kaZwxGH_I z9kupFxXbrF!H};81YYN%)c4-cw0bW)4Aa#sXjG_#B0>xkJCUzsOVnjY63)8s2Z}2h z_ym)y24T}VjEI?|=~I>^{f-D#O@-2L8W_FUapKzi-**Oi4C>>$g>l?q$Z*$9I-wF{ z#ZvV|jU=}+h)LWsaPy2(wa=tq%ffBkA(euNxEGRC8948VjwU5|t75=r7(WlX5lPP# zp^3ZHb5h3+g^EI7xV8#xt;UL-!4&Rk$!7_@c#&DDt|R6w6j7p~@pfDIF2mwwp%=1y z6e=2G!9rP!VX7b@lfe=m7;qRyW9ny{vhYw-GTORN&o}XiwAl{qPSmo+C(($MaF;T8 zf@cPvlIvt{>m5BW3(s|a`hZK1jNZyiwj^P4GCG>~wN5o>l-GHF}0VUKEh17i~C*7cd=Oh1v9_=9glUvzL@nSfdV<=Jwj#jn87IKP@s(% qk4e}Gc#njMS-ijsb(DpT3RbDBmy|yQ_6KDHc>`2) + { + for(int j=0;j1) + { + b=Integer.parseInt(String.valueOf(numberArray[1])); + System.out.println("b set to:"+b); + } + System.out.println("A is:"+a+"\n And B is: "+b); + theSum=a+b; + System.out.println("The sum is: "+theSum); + stringBack=Integer.toString(theSum); + System.out.println("stringBack is: "+stringBack); + } + return stringBack; + } + public String addNumbers() + { + String theStringForTheCalculator=getString.nextLine(); + System.out.println("The string added: "+theStringForTheCalculator); + return calculatorMethod(theStringForTheCalculator); + } + private boolean unknownAmountOfNumbers(String stringFromCalc){ + if(stringFromCalc.length()>2||stringFromCalc.length()<0) + { + return false; + } + else{ + return true; + } + } + private void unknownNumberHandler(String unknownNumbers) + { + unknownNumbers=null; + //This is how to handle unknown numbers. We destroy them. + } +} diff --git a/tests/defaultpackage/calculatorTester.java b/tests/defaultpackage/calculatorTester.java new file mode 100644 index 0000000..0257fde --- /dev/null +++ b/tests/defaultpackage/calculatorTester.java @@ -0,0 +1,25 @@ +package defaultpackage; + +import static org.junit.Assert.*; + +import org.junit.Test; +import java.util.Scanner; + +public class calculatorTester { + + @Test + public void test() { + //fail("Not yet implemented"); + } + @Test + public void insertString(){ + StringCalculator calc = new StringCalculator(); + String stringReturned = calc.addNumbers(); + System.out.println("String returned to test: "+stringReturned); + if(stringReturned==null) + { + fail("No sum executed."); + } + } + +} From 1e667aca4b6a3d9b70c381106402c06322627601 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sakari=20J=C3=A4rvel=C3=A4?= Date: Mon, 8 Oct 2018 21:44:11 +0300 Subject: [PATCH 2/2] Assignment finished --- .settings/org.eclipse.core.resources.prefs | 2 + bin/defaultpackage/StringCalculator.class | Bin 2919 -> 1569 bytes .../StringCalculatorProduct.class | Bin 0 -> 3109 bytes src/defaultpackage/StringCalculator.java | 59 +------------ .../StringCalculatorProduct.java | 82 ++++++++++++++++++ 5 files changed, 87 insertions(+), 56 deletions(-) create mode 100644 .settings/org.eclipse.core.resources.prefs create mode 100644 bin/defaultpackage/StringCalculatorProduct.class create mode 100644 src/defaultpackage/StringCalculatorProduct.java diff --git a/.settings/org.eclipse.core.resources.prefs b/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 0000000..4adc08d --- /dev/null +++ b/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +encoding//src/defaultpackage/StringCalculatorProduct.java=Cp1252 diff --git a/bin/defaultpackage/StringCalculator.class b/bin/defaultpackage/StringCalculator.class index d579433c6fa29e0357aefad74e05b7f77fac326a..f8c377e6ed0c74ac2333e9777af70b3f03974e84 100644 GIT binary patch literal 1569 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 diff --git a/bin/defaultpackage/StringCalculatorProduct.class b/bin/defaultpackage/StringCalculatorProduct.class new file mode 100644 index 0000000000000000000000000000000000000000..abf94e4a86537ba97a40405eab0cef54d20a7307 GIT binary patch literal 3109 zcma)8NpKWZ82;W&hZ%+rgh0SZ0u2(F3?u=J2uTo=VT&Xz29O;(Go55YPj~F;VR6S@ zP;jBj(u0LnT6(Z7wIondm6IpSn@6iWdiQ3ze}DH(21qD8bidcH|K1`efjneS|mecOjrd_ml z4=L0o)6G*&PhbU-F|1UWTX9RT<6Fa)r=uAuh4`516)c{KjHwcu33D}CV`#Y@#kqoS z<#n`S4Z*ub;SQN|ZrdJ))+bKO%y-7HPGMn1c?iF!n6tB%7e~9o%t3=@8@}6-z*?-A zkUV@BEC+;QqmB+pP|dM1%gHJHPMqGO8yi;anOwnKN6L+X0{mOtVW%E@UwIK`)BX!lB<&S@Y@a_rENz${6Q$8_vO zA1lIl(<5fNBD7@lk+l5YCBEFPP?bEAZVr66SA6%lLd!Hbr)nz$6(8=?v0uEdXD!?E ztw5b0#}mxeuv|RGPKeNHD#DyzLjlF&?6^xm|$m^;g5vnwfvry+1cD12P3wa0}MoH5);;H4fI6Q3#q<4_jCHM?fTL>lAI97)CG}Lr!7IJsN_JQ?L~l6rEF! zd&cR`yG6&}Jrr8ajxuct9u^xN9WJUF>k_N5#PK9^)hyMIQE>CjL$+1IrmU)NBUk8% zqsXWwjBZ-hBL{Tn8J>tc*>r*vX%pw9NS+b|(^OMu9M7;h-r@%lG}(#^13@9qlCHQV z$PZ7U{;rA7(g`J1+P}imdzJ&c|ENNu0z#pBz-LhU&9PEnPHa7!vBvzI>l9*mjp3*? zp3ueHTrY3>lT_l^H*_?hT6Pz8EW~|ryv4q}KMasz1`#scAx2uJP9aFR%R1hcW-$Mj zU|8M`W{z#q^x3x^GZcvdx9DZ8Z8@1J4Fl89zE%N?r34b?;M5S2(ZF3qMpLkICIlY2e0EH(Ke0^`A2rm_OvDunQj->J#kNpWLJ@eTI+ZvrcQTIeHbB!@YL0y~eqU^QoIK4$0AV z^i#xYZYg5V6RYdAaSW7~)an4ING{uOAhe+|+CGkhB0!T(Xik~tNQq`*($G89y{xG^ zO_(P>{`WY!YLC$wsg`k^Sg*-vhM%gVO12iaEg`z$4;lP%CDkvFuZzUnK6G8!brb6CRt{Y=+I3{V5= z(a4j<*vR(|&Y`_b>VsH@6TGyHVmVHu2^YCuV%zx;EAc7U&ymD+@_o3r3IawqbcCZ{6@KQ3!?pYQI$+>$D&r5o8 z_X5rna|5-#$OO@-pf1 zg+!9guLiYug+irf*G4w2D#hXhGzDoMolJ8nq{a#D6T}##*ZEx7)F4F_`f#z}$7YIt zlm*j6Po(LUEl6Q2y|6v7(Fm24ZKPMk9$tY-Ayz~J?7VLO#fzPw3UOY#v&43?Mf5R>{kN3Z+{qGS(<=$=OH NASep&k~M<&{sYUm(y0Id literal 0 HcmV?d00001 diff --git a/src/defaultpackage/StringCalculator.java b/src/defaultpackage/StringCalculator.java index ea92e30..48adc30 100644 --- a/src/defaultpackage/StringCalculator.java +++ b/src/defaultpackage/StringCalculator.java @@ -3,64 +3,16 @@ import java.lang.StringBuilder; public class StringCalculator { + private StringCalculatorProduct stringCalculatorProduct = new StringCalculatorProduct(); Scanner getString=new Scanner(System.in); StringBuilder deleter= new StringBuilder(); - private String calculatorMethod(String numbers){ - char[] numberArray; - numberArray=numbers.toCharArray(); - if(numberArray.length>2) - { - for(int j=0;j1) - { - b=Integer.parseInt(String.valueOf(numberArray[1])); - System.out.println("b set to:"+b); - } - System.out.println("A is:"+a+"\n And B is: "+b); - theSum=a+b; - System.out.println("The sum is: "+theSum); - stringBack=Integer.toString(theSum); - System.out.println("stringBack is: "+stringBack); - } - return stringBack; - } public String addNumbers() { String theStringForTheCalculator=getString.nextLine(); System.out.println("The string added: "+theStringForTheCalculator); - return calculatorMethod(theStringForTheCalculator); + return stringCalculatorProduct.calculatorMethod(theStringForTheCalculator, this.deleter, this); } - private boolean unknownAmountOfNumbers(String stringFromCalc){ + public boolean unknownAmountOfNumbers(String stringFromCalc){ if(stringFromCalc.length()>2||stringFromCalc.length()<0) { return false; @@ -69,9 +21,4 @@ private boolean unknownAmountOfNumbers(String stringFromCalc){ return true; } } - private void unknownNumberHandler(String unknownNumbers) - { - unknownNumbers=null; - //This is how to handle unknown numbers. We destroy them. - } } diff --git a/src/defaultpackage/StringCalculatorProduct.java b/src/defaultpackage/StringCalculatorProduct.java new file mode 100644 index 0000000..75c84ac --- /dev/null +++ b/src/defaultpackage/StringCalculatorProduct.java @@ -0,0 +1,82 @@ +package defaultpackage; + + +public class StringCalculatorProduct { + //This is the God Class that the JDeodorant structured by itself. + //I was not able to understand what the JDeodorant is suggesting and I had to see what it does. + private int a; + private int b = 0; + private char[] numberArray; + private String numbers; + + public int calculateSum() { + int sum = 0; + sum = a + b; + return sum; + } + + public void setB() { + //This is the first change I created. From Long Method feature of the JDeodorant it came up there is this too long method in if-clause. + b = Integer.parseInt(String.valueOf(numberArray[1])); + System.out.println("b set to:" + b); + } + + public String calculatorMethod(String numbersSend, + StringBuilder thisDeleter, StringCalculator stringCalculator) { + numbers = numbersSend; + numberArray = numbers.toCharArray(); + if (numberArray.length > 2) { + for (int j = 0; j < numberArray.length; j++) { + if (numberArray[j] == '\\' && numberArray[j + 1] == 'n') { + numbers = new String(numberArray); + thisDeleter.append(numbers); + thisDeleter.deleteCharAt(j); + thisDeleter.deleteCharAt(j); + numberArray = thisDeleter.toString().toCharArray(); + System.out.println("Numberarray in for after all: " + + numberArray[0] + numberArray[1]); + System.out.println("Numberarray length: " + + numberArray.length); + numbers = new String(numberArray); + } + } + } + System.out.println("The char array created."); + int theSum = theSum(stringCalculator); + System.out.println("Sum set minus one and defined."); + String stringBack = null; + System.out.println("stringBack defined and set null."); + if (!stringCalculator.unknownAmountOfNumbers(numbers)) + unknownNumb(); + else { + System.out.println("a set to something."); + System.out.println("A is:" + a + "\n And B is: " + b); + System.out.println("The sum is: " + theSum); + stringBack = Integer.toString(theSum); + System.out.println("stringBack is: " + stringBack); + } + return stringBack; + } + + public int theSum(StringCalculator stringCalculator) + throws java.lang.NumberFormatException { + int theSum = -1; + if (!stringCalculator.unknownAmountOfNumbers(numbers)) { + } else { + a = Integer.parseInt(String.valueOf(numberArray[0])); + if (numberArray.length > 1) + setB(); + theSum = calculateSum(); + } + return theSum; + } + + public void unknownNumb() { + System.out.println("Unknown amount of numbers."); + unknownNumberHandler(numbers); + } + + public void unknownNumberHandler(String unknownNumbers) { + unknownNumbers = null; + } +} \ No newline at end of file