From 1ce0fef8f1969fab8fe372cd467ee9988cb44553 Mon Sep 17 00:00:00 2001 From: zipcoder Date: Tue, 13 Feb 2018 15:14:07 -0500 Subject: [PATCH 1/2] Basic currency converter --- pom.xml | 7 +- src/main/java/DELETEME | 0 src/main/java/ExchangeMaster.java | 64 ++++++++++++++++ src/test/java/DELETEME | 0 src/test/java/ExchangeTester.java | 121 ++++++++++++++++++++++++++++++ 5 files changed, 191 insertions(+), 1 deletion(-) delete mode 100644 src/main/java/DELETEME create mode 100644 src/main/java/ExchangeMaster.java delete mode 100644 src/test/java/DELETEME create mode 100644 src/test/java/ExchangeTester.java diff --git a/pom.xml b/pom.xml index 682d6db..38a32ed 100644 --- a/pom.xml +++ b/pom.xml @@ -9,6 +9,11 @@ 1.0-SNAPSHOT - + + junit + junit + 4.12 + test + \ No newline at end of file diff --git a/src/main/java/DELETEME b/src/main/java/DELETEME deleted file mode 100644 index e69de29..0000000 diff --git a/src/main/java/ExchangeMaster.java b/src/main/java/ExchangeMaster.java new file mode 100644 index 0000000..1ff4ae0 --- /dev/null +++ b/src/main/java/ExchangeMaster.java @@ -0,0 +1,64 @@ +import java.text.DecimalFormat; + +public class ExchangeMaster { + + + + public double usDollarRate = 1; + public double euroRate = 0.94; + public double britishPoundRate = 0.82; + public double indianRupeeRate = 68.32; + public double australianDollarRate = 1.35; + public double canadianDollarRate = 1.32; + public double singaporeDollarRate = 1.43; + public double swissFrancRate = 1.01; + public double malaysianRinggitRate = 4.47; + public double japaneseYenRate = 115.84; + public double chineseYuanRenminbiRate = 6.92; + + public String converter (double originalCurrencyAmount, String typeOfOriginalCurrency, String currencyToConvertTo) { + double unformatted = (originalCurrencyAmount/rateReturner(typeOfOriginalCurrency))*rateReturner(currencyToConvertTo); + return formatCurrency(unformatted); + } + + public double rateReturner (String requestedRate) { + String formattedInput = requestedRate.toLowerCase(); + if (formattedInput.equals("us dollar")) { + return usDollarRate; + } else if (formattedInput.equals("british pound")) { + return britishPoundRate; + } else if (formattedInput.equals("euro")) { + return euroRate; + } else if (formattedInput.equals("indian rupee")) { + return indianRupeeRate; + } else if (formattedInput.equals("australian dollar")) { + return australianDollarRate; + } else if (formattedInput.equals("canadian dollar")) { + return canadianDollarRate; + } else if (formattedInput.equals("singapore dollar")) { + return singaporeDollarRate; + } else if (formattedInput.equals("swiss franc")) { + return swissFrancRate; + } else if (formattedInput.equals("malaysian ringgit")) { + return malaysianRinggitRate; + } else if (formattedInput.equals("japanese yen")) { + return japaneseYenRate; + } else if (formattedInput.equals("chinese yuan renminbi")) { + return chineseYuanRenminbiRate; + } else { + return usDollarRate; + } + } + + public String formatCurrency(double value){ + DecimalFormat decimalFormat = new DecimalFormat("#.##"); + String formatted = decimalFormat.format(value); + int length = formatted.length(); + if (formatted.charAt(length - 2) == '.') { + return formatted + '0'; + } else { + return formatted; + } + } + +} diff --git a/src/test/java/DELETEME b/src/test/java/DELETEME deleted file mode 100644 index e69de29..0000000 diff --git a/src/test/java/ExchangeTester.java b/src/test/java/ExchangeTester.java new file mode 100644 index 0000000..129e126 --- /dev/null +++ b/src/test/java/ExchangeTester.java @@ -0,0 +1,121 @@ +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; + + + +public class ExchangeTester { + + + + @Test + public void testDollarToEuro() { + ExchangeMaster m = new ExchangeMaster(); + double originalAmount = 10.00; + String originalCurrency = "US Dollar"; + String convertTo = "Euro"; + String expected = "9.40"; + String actual = m.converter(originalAmount, originalCurrency, convertTo); + Assert.assertEquals(expected, actual); + } + + @Test + public void testEuroToDollar() { + ExchangeMaster m = new ExchangeMaster(); + double originalAmount = 10.00; + String originalCurrency = "EURO"; + String convertTo = "us DOLLAR"; + String expected = "10.64"; + String actual = m.converter(originalAmount, originalCurrency, convertTo); + Assert.assertEquals(expected, actual); + } + + @Test + public void testEuroToPound() { + ExchangeMaster m = new ExchangeMaster(); + double originalAmount = 10.00; + String originalCurrency = "eurO"; + String convertTo = "british POUnd"; + String expected = "8.72"; + String actual = m.converter(originalAmount, originalCurrency, convertTo); + Assert.assertEquals(expected, actual); + } + + @Test + public void testPoundToRupee() { + ExchangeMaster m = new ExchangeMaster(); + double originalAmount = 10.00; + String originalCurrency = "British Pound"; + String convertTo = "indian rupee"; + String expected = "833.17"; + String actual = m.converter(originalAmount, originalCurrency, convertTo); + Assert.assertEquals(expected, actual); + } + + @Test + public void testRupeeToCanada() { + ExchangeMaster m = new ExchangeMaster(); + double originalAmount = 10.00; + String originalCurrency = "indian ruPEE"; + String convertTo = "canadian dollar"; + String expected = "0.19"; + String actual = m.converter(originalAmount, originalCurrency, convertTo); + Assert.assertEquals(expected, actual); + } + + @Test + public void testCanadaToSingapore() { + ExchangeMaster m = new ExchangeMaster(); + double originalAmount = 10.00; + String originalCurrency = "canadian dollar"; + String convertTo = "singAPORE Dollar"; + String expected = "10.83"; + String actual = m.converter(originalAmount, originalCurrency, convertTo); + Assert.assertEquals(expected, actual); + } + + @Test + public void testSingaporeToFranc() { + ExchangeMaster m = new ExchangeMaster(); + double originalAmount = 10.00; + String originalCurrency = "singapore dollar"; + String convertTo = "swiss franc"; + String expected = "7.06"; + String actual = m.converter(originalAmount, originalCurrency, convertTo); + Assert.assertEquals(expected, actual); + } + + @Test + public void testFrancToRinggit() { + ExchangeMaster m = new ExchangeMaster(); + double originalAmount = 10.00; + String originalCurrency = "SWISS franc"; + String convertTo = "malaysian ringgit"; + String expected = "44.26"; + String actual = m.converter(originalAmount, originalCurrency, convertTo); + Assert.assertEquals(expected, actual); + } + + @Test + public void testRinggitToYen() { + ExchangeMaster m = new ExchangeMaster(); + double originalAmount = 10.00; + String originalCurrency = "MALAYSIAN RINGGIT"; + String convertTo = "japanese yen"; + String expected = "259.15"; + String actual = m.converter(originalAmount, originalCurrency, convertTo); + Assert.assertEquals(expected, actual); + } + + @Test + public void testYenToRenminbi() { + ExchangeMaster m = new ExchangeMaster(); + double originalAmount = 10.00; + String originalCurrency = "japanese YEN"; + String convertTo = "Chinese Yuan Renminbi"; + String expected = "0.60"; + String actual = m.converter(originalAmount, originalCurrency, convertTo); + Assert.assertEquals(expected, actual); + } + +} From 4b7d8e32d90e025f6a65db02620211df85e2d7c6 Mon Sep 17 00:00:00 2001 From: zipcoder Date: Tue, 13 Feb 2018 17:23:14 -0500 Subject: [PATCH 2/2] User input and more test cases added --- src/main/java/ExchangeMaster.java | 22 ++++++++++----------- src/main/java/UserInput.java | 24 +++++++++++++++++++++++ src/test/java/ExchangeTester.java | 17 ++++++++++++++++ target/classes/ExchangeMaster.class | Bin 0 -> 2632 bytes target/classes/UserInput.class | Bin 0 -> 1539 bytes target/test-classes/ExchangeTester.class | Bin 0 -> 3734 bytes 6 files changed, 52 insertions(+), 11 deletions(-) create mode 100644 src/main/java/UserInput.java create mode 100644 target/classes/ExchangeMaster.class create mode 100644 target/classes/UserInput.class create mode 100644 target/test-classes/ExchangeTester.class diff --git a/src/main/java/ExchangeMaster.java b/src/main/java/ExchangeMaster.java index 1ff4ae0..ced6089 100644 --- a/src/main/java/ExchangeMaster.java +++ b/src/main/java/ExchangeMaster.java @@ -4,17 +4,17 @@ public class ExchangeMaster { - public double usDollarRate = 1; - public double euroRate = 0.94; - public double britishPoundRate = 0.82; - public double indianRupeeRate = 68.32; - public double australianDollarRate = 1.35; - public double canadianDollarRate = 1.32; - public double singaporeDollarRate = 1.43; - public double swissFrancRate = 1.01; - public double malaysianRinggitRate = 4.47; - public double japaneseYenRate = 115.84; - public double chineseYuanRenminbiRate = 6.92; + public final double usDollarRate = 1; + public final double euroRate = 0.94; + public final double britishPoundRate = 0.82; + public final double indianRupeeRate = 68.32; + public final double australianDollarRate = 1.35; + public final double canadianDollarRate = 1.32; + public final double singaporeDollarRate = 1.43; + public final double swissFrancRate = 1.01; + public final double malaysianRinggitRate = 4.47; + public final double japaneseYenRate = 115.84; + public final double chineseYuanRenminbiRate = 6.92; public String converter (double originalCurrencyAmount, String typeOfOriginalCurrency, String currencyToConvertTo) { double unformatted = (originalCurrencyAmount/rateReturner(typeOfOriginalCurrency))*rateReturner(currencyToConvertTo); diff --git a/src/main/java/UserInput.java b/src/main/java/UserInput.java new file mode 100644 index 0000000..52c979a --- /dev/null +++ b/src/main/java/UserInput.java @@ -0,0 +1,24 @@ +import java.util.Scanner; + +public class UserInput { + + public static void main(String[] args) { + + ExchangeMaster m = new ExchangeMaster(); + + Scanner input = new Scanner(System.in); + + System.out.println("What kind of money you got b?"); + String startingCurrencyType = input.nextLine(); + System.out.println("How many " + startingCurrencyType + " do you have?"); + + Scanner input2 = new Scanner(System.in); + + Double startingAmount = input2.nextDouble(); + System.out.println("And what do you want to convert it to?"); + String targetCurrencyType = input.nextLine(); + System.out.println("You have $" + m.converter(startingAmount, startingCurrencyType, targetCurrencyType) + " in" + targetCurrencyType); + + } + +} diff --git a/src/test/java/ExchangeTester.java b/src/test/java/ExchangeTester.java index 129e126..56da209 100644 --- a/src/test/java/ExchangeTester.java +++ b/src/test/java/ExchangeTester.java @@ -7,6 +7,23 @@ public class ExchangeTester { + @Test + public void testFormatter() { + ExchangeMaster m = new ExchangeMaster(); + double numberToFormat = 36.7569; + String expected = "36.76"; + String actual = m.formatCurrency(numberToFormat); + Assert.assertEquals(expected, actual); + } + + @Test + public void testFormatter2() { + ExchangeMaster m = new ExchangeMaster(); + double numberToFormat = 0.1; + String expected = "0.10"; + String actual = m.formatCurrency(numberToFormat); + Assert.assertEquals(expected, actual); + } @Test public void testDollarToEuro() { diff --git a/target/classes/ExchangeMaster.class b/target/classes/ExchangeMaster.class new file mode 100644 index 0000000000000000000000000000000000000000..5ae09767ad845b3b4153ece1dfa349745497a5c7 GIT binary patch literal 2632 zcmZuzSyL2O6#g1!dWNB886kie9K~g3WQj{uKmi3&5)?&3f-y18OaqNW_t?{oU{;fu zJ(?J^XqHMh7r|akmtiw>x#ypn^LG#3s1ayJ?)ht9_J=rvIND+^_!WDYK^G2CPC_#u&U2Aa<*#NV`|3Hmor zZcM3J)6$k}D{|-bTyDTpja0$qteR05a^fAHpVIBZ+cRobHME>It{I-DE;X&Y3WrBE zV^%jNbk8F1)eYV5mQWf`j7bRenQ10oImF{fo!JS^8dWDU)I^8Ol$se+EnVP(GGI^Z zISExm2j^4MsxhSmvcohn=(HQ7!P*r+L?+%YCiYgV;w zEzRCr?D>dhJC-4$u8psBln{Kdw6l)JGz*Qc@LdcVS%;Ao6vcprr~XIg7Mv4|qQ|tB z(%H!YHx>yE-ov&wZ@2d^H;KCXuSt+InlWWhlcs|bA}378N@)YSXx8cn`_U#UqF@L| z6zoH{f&)VI3DGaaK_Lc&I3&bjAqItbN{FY0IEm*Kyol2we4^k}Twx?mE|zv@MZssd z%Df+ZlzA1VB9;|nL2ikGVV%9nh*@GZBvdbrMZq8GSDXo7Q{@kYuPS$^AvP(-fo}X! zhzWji7Wh(e4q^+M!9Em*Ahy6Mh>=b17)Ypd3A3`?jJUb2xmgtMa|K`Ew1PCgRPYt9 z6)!Dg^Z`fDq%}*yb$l(vHwwNLb*fsT3Qu+oP0=M7&I}}vd0>C$jKF%!)onkAc6Q`qK{b3W;M~F)<DSWUG%A zViMQKmBi$*kE6t-vyW?u$!s6j6O-gVZX_n(ecXfq_Z%F`qm1|`lyV0gOWuZ*tjwb% zS%cC%f?VW0!d%MoDCeT&QNe{rs<}k-sNqtZM;({?Jl1e&%;Rw`O?kwAcB?T=xg82+ zDc=pD3}IAJ)**r>)@~DREm(yes6Zzwv7gq%jQALDC|+DRju9dWCoo!wdDis>)NM(& zE@HizYzS~U(-BP82N$v77LS)eJRRW*)X-_I>vAW8#B~LiV)u+&8nGM0vkX$~p5rdS zJ0XnI8sww=R(MZKZS*KkUER8f<|8f9jf>cH4Z+HrEzvFRHpH?K#EYPmAW;Nm1j!;$ z2`H!$`!ENmllSxfXd z|C>nLbx0z{lCS5FgbgHYGYPqogxJKoY-X-o_*sl&3JILyNgG=+&n8_!D=wl9m(Y$Y z{QV(X6!U7~*Yhe)v33&Qy^I&QE8(7>Sg&^Yk*8(e>b`?*5m}loAx^6WDmb$yf^|p&$-c8EvVa^?lzY|>? oOc9;e?QTE1ZoK4nJ3@v=N`&F%Ii@0MWde^I$!fB*mh literal 0 HcmV?d00001 diff --git a/target/classes/UserInput.class b/target/classes/UserInput.class new file mode 100644 index 0000000000000000000000000000000000000000..bea7afc6a3dc44ad5ba396bc186688a1e4c34f0e GIT binary patch literal 1539 zcmZvcZC4XV6vzLQr`>E;lmtS^gn{c8G8i*)L(h{Yru6)W-ki2@6Eh}?CT{7++ZuSs#H@k42JSJW zuDjAzlMM0v@G?VU#;Xa2gC$pr`Jh=5{vxk5$dWC2Ro+B6 zoFtf2rpIEZ7f+q%^+V~647|u;o%ncnqI=R86a+K#(J-IG? z<+yq^#bB*aJ{sekwecKJZ2XOXNIs6f^z?Q!=o)v@Td2GgRcdjMsobWkrOS?Kx5M4m zyIvs_5s5|cCUyU4e%}qPqPVB^u;ciE^rf~Pb75@a^_UrqmOj+b0VDAD+BBtjrL^`L z2J*u_f{64>`r)mXkTr&p{SbRRqAQ_VOyzYU)IuGlE3xpsEAHydw+&;RHv+NnLT6j- z&1GAhnOZ2*Wqpo%AKjD|z_omFPbw38ExpvJLi~WE^xvaDF)%G=8c)!wKr^E`d43b@ zeYky+##CsG;}kvH-2*rchgNAq{YVyaW~X7$7kIaY*vcm2r7a{@J|MY?)Z7OcS+j%m z#SW}_T5KUhN9^o@4*Evumpw>B2Z!j$j@Ni%DA7UxM`Xv78jy5Uv3uH?W=>{%h1W95QFiN|+i3K9W@XJ?h Cw{=(m literal 0 HcmV?d00001 diff --git a/target/test-classes/ExchangeTester.class b/target/test-classes/ExchangeTester.class new file mode 100644 index 0000000000000000000000000000000000000000..3907723e1422a7820d4ebf6c6d2f702ef7a7c031 GIT binary patch literal 3734 zcmcJQYgZFT7{{N*Tt*BC5!9%ac&h<41PB3wRRReb4Fr>bMs4dPS;Atni@O^HFE4tr z?N?~OLtpfb_Hs@?KwtM0^n>*DKf6i5>S^+#S-o~r&rx{ zmC|ln?WQhDyXF@j|K*cM|73Jm1Tx)}rJU==FW-yj2S#hI`HPr`htWEtdyMXjygZ`^ zj2<$2#OPB-pE3HJ(PKuOQGrpBQHhbvXoFFi(Iz8>(H5g8j4F((j8sM%qise{8R?7+ zH<@m#N#wewsET=AqCp5PiAmUAFMP6Cwx+41Zpu^l$ z42k+uiQVERSIcrvHcVNclc>i;Yf00q+(bYksd_MNnb*^LReKH1PDNf^A|~%{%SBTz ziB-4w4j-$a_E^@`6}61oE?zWiydse=Q&UZ)Dz7Vs0#Pwl)l6_YHPRJB8^r~wKq$!h1cOl@0+o&6%oYUi{?uJRI>Xi&uLPEN~$m2Yc0atB1b z+0SW9I#-MEMue?4sv^6r2)R~WyO-1QvRYpXEo8}RRZ$CyMBQ1frWfTUMQrV{cXux+ zEcZ~5#$ZQd$lfuDoRg8@bi_kD^vq4W9@?YlI5eT)cnH3%W&I5k9JZZ~*hk}tXhUA)#p`L=Sn2NFKUrnzG-yAc+X>3!^LL+S3=~2{@ z!d1U+Tj`paoD7anOSB(fO(d`nMd7PRELmG@>zsv02KjX&7rwDXE-UD!3A8mFJ&C3;smq%Dnhqh8Xy`ZU%D<&UsR42%y{@QZH1LMpQK!%0bN)vWyOpr&5;9RjIN>Oq)#wM2)=H~ zyYXN04kx`wTFDzk;p13R2s??l5Asg^Z}R4w@_vML2FauQ?s<~l-l)TSH0t#BMO~u- zVc;9;kGg#>pZgsr&s$T^;ynbZen>q>19TpOFW~PYjnE}a@-1?UC7O<2XgWGXvAUzD zX~A-I0I-XeqbK3FaM^`gw#)8+xg2kS;RVJqU<|Z_F^okL|v|78s|2aRwM4wS#dR7&~hR)CQP#wsxGb`;}Q3yd?sI17xS zb}-g}u?~!Tz_<^LJTM*r;~_8}brd7n0>clCbHF&?4#s0(a9|XGQ3OT_7&0(6fKl!! z#_bju7l3gQ7?;|?cmj+HFsi^%fuR9o8yHW4p?4JHP792WfpHlafp#!