From ac610ca83cc82ce77e7fa7f11ee0a1ddc7dd53f2 Mon Sep 17 00:00:00 2001 From: Brian He Date: Tue, 13 Feb 2018 13:44:05 -0500 Subject: [PATCH] I'll try the enum later --- pom.xml | 22 ++++++- src/main/java/ExchangeRate.java | 24 +++++++ src/test/java/ExchangeTest.java | 84 +++++++++++++++++++++++++ target/classes/ExchangeRate.class | Bin 0 -> 1213 bytes target/test-classes/ExchangeTest.class | Bin 0 -> 2307 bytes 5 files changed, 129 insertions(+), 1 deletion(-) create mode 100644 src/main/java/ExchangeRate.java create mode 100644 src/test/java/ExchangeTest.java create mode 100644 target/classes/ExchangeRate.class create mode 100644 target/test-classes/ExchangeTest.class diff --git a/pom.xml b/pom.xml index 682d6db..9ead6d5 100644 --- a/pom.xml +++ b/pom.xml @@ -2,7 +2,7 @@ - 4.0.0 + 4.12 io.zipcoder wu-tang-financial @@ -10,5 +10,25 @@ + + org.junit.jupiter + junit-jupiter-api + 4.12 + + + org.junit.jupiter + junit-jupiter-api + 4.12 + + + org.junit.jupiter + junit-jupiter-api + RELEASE + + + junit + junit + RELEASE + \ No newline at end of file diff --git a/src/main/java/ExchangeRate.java b/src/main/java/ExchangeRate.java new file mode 100644 index 0000000..55c5913 --- /dev/null +++ b/src/main/java/ExchangeRate.java @@ -0,0 +1,24 @@ +import java.text.DecimalFormat; + +public class ExchangeRate { + + static double USD = 1.00; + static double EUR = 0.94; //Euro + static double GBP = 0.82; //British Pound + static double INR = 68.32; //Indian Rupee + static double AUD = 1.35; //Austrailian Dollar + static double CAD = 1.32; //Canadian Dollar + static double SGD = 1.43; //Singapore Dollar + static double CHF = 1.01; //Swiss Franc + static double MYR = 4.47; //Malaysian Ringgit + static double JPY = 115.84; //Japanese Yen + static double CNY = 6.92; //Chinese Yuan Renminbi + + public static double convert(double InitialAmount, double initialCurrency, double targetCurrency) { + //Amount will be standardized at USD + double converted = (InitialAmount/initialCurrency) * targetCurrency; + DecimalFormat rounded = new DecimalFormat("#.00"); + return Double.parseDouble(rounded.format(converted)); + } + +} diff --git a/src/test/java/ExchangeTest.java b/src/test/java/ExchangeTest.java new file mode 100644 index 0000000..8f257a5 --- /dev/null +++ b/src/test/java/ExchangeTest.java @@ -0,0 +1,84 @@ +import org.junit.Before; +import org.junit.Test; +import org.junit.Assert; + +public class ExchangeTest { + + public double initialAmount; + + @Before + public void amountInitializer() { + initialAmount = 1.00; //USD + } + + @Test + public void dollarToEuro() { + double expected = 0.94; + double actual = ExchangeRate.convert(initialAmount, ExchangeRate.USD, ExchangeRate.EUR); + Assert.assertEquals(expected, actual, 0.001); + } + + @Test + public void euroToDollar() { + double expected = 1.06; + double actual = ExchangeRate.convert(initialAmount, ExchangeRate.EUR, ExchangeRate.USD); + Assert.assertEquals(expected, actual, 0.001); + } + + @Test + public void euroToPound() { + double expected = 0.87; + double actual = ExchangeRate.convert(initialAmount, ExchangeRate.EUR, ExchangeRate.GBP); + Assert.assertEquals(expected, actual, 0.001); + } + + @Test + public void poundToRupee() { + double expected = 83.32; + double actual = ExchangeRate.convert(initialAmount, ExchangeRate.GBP, ExchangeRate.INR); + Assert.assertEquals(expected, actual, 0.001); + } + + @Test + public void rupeeToCanadianDollar() { + double expected = 0.02; + double actual = ExchangeRate.convert(initialAmount, ExchangeRate.INR, ExchangeRate.CAD); + Assert.assertEquals(expected, actual, 0.001); + } + + @Test + public void canadianDollarToSingaporeDollar() { + double expected = 1.08; + double actual = ExchangeRate.convert(initialAmount, ExchangeRate.CAD, ExchangeRate.SGD); + Assert.assertEquals(expected, actual, 0.001); + } + + @Test + public void singaporeDollarToFranc() { + double expected = 0.71; + double actual = ExchangeRate.convert(initialAmount, ExchangeRate.SGD, ExchangeRate.CHF); + Assert.assertEquals(expected, actual, 0.001); + } + + @Test + public void francToRinggit() { + double expected = 4.43; + double actual = ExchangeRate.convert(initialAmount, ExchangeRate.CHF, ExchangeRate.MYR); + Assert.assertEquals(expected, actual, 0.001); + } + + @Test + public void ringgitToYen() { + double expected = 1.55; + double actual = ExchangeRate.convert(initialAmount, ExchangeRate.MYR, ExchangeRate.CNY); + Assert.assertEquals(expected, actual, 0.001); + + } + + @Test + public void yenToRenminbi() { + double expected = 0.06; + double actual = ExchangeRate.convert(initialAmount, ExchangeRate.JPY, ExchangeRate.CNY); + Assert.assertEquals(expected, actual, 0.001); + } +} \ No newline at end of file diff --git a/target/classes/ExchangeRate.class b/target/classes/ExchangeRate.class new file mode 100644 index 0000000000000000000000000000000000000000..6562e20b6ce6d3ffb0e7a96cbfeec3060e6e9868 GIT binary patch literal 1213 zcmZ`%OHUJF6g|_HucZ_UGQ1Q;F+z*lg5rZ`TRKp|%Bz5)_!!CvgQX?Ilps47u3hWa zy~a!;L=zV-{R6JqYGT~z(s=I&3Px?xbMLv&@7(sok2miCbl{#Jtr+qm<--*}To`5; z@#8AerD(x55&NQU?xbF*%tl4*Q{U?IkN!SpV#$`u6_GT$tIEh*$0BrbT>?Q=#vin-TFN+?9I4?79~>yqHzsp3Z0r z6#BXcrzZ(h1LK6lqwFW9Ii5@~W>V6>GDQBhS7XQdBd90=W`S}lrCiT+>CCS%=dyGd&yi=P>~+o$S&#mMPpL8jUENwY$3mH zST>ChX_^+M{pG{7#?*6(l|nI3i6E~fo-A6Hk_n%pG zh?9}_cCNY^z%9&qaXWxJxEnwS;Q-ngPBWZgILi=Wh%&S@bTFJ_IFGP`z`-XdsFaIy zbhGH#{IZdyi`0a6mC0bnw#@uu5C0_MzLduWTKMmhKW1r#qWrbWR&{I5_{IJ?S;GnX zH?`8=zYIQBMV^m^NlV(KC3(`4LTO2)w4_s7k}55!m6ilcOPa~Lq41pvFA|HARmhgK zZ9#cOjtiFvg$%lJnf$T^RfcOiJq< literal 0 HcmV?d00001 diff --git a/target/test-classes/ExchangeTest.class b/target/test-classes/ExchangeTest.class new file mode 100644 index 0000000000000000000000000000000000000000..9dacbc9ccc4d91c3a5c99a3747b0ed8bb545ff2a GIT binary patch literal 2307 zcmbW%&u`mg7zgmjN$aesN87C3+7-1cVr^QshOutI+Rjarv}sAZG;s@o@#Bs2u5*>z z!EvTh&YZdMA8_I_iD-z50|$<1yC9^Uci}P#u>*($LVRDxTQbQCl3VHV`#$gcKA+dG z?fm@j4?hyoC8|VenpXShJf&py_u-?*>-UEHC`}m=)}jdOvYIb%{qppif1;G74O#u; z&!4`$8UIUGpFD~#*S>xvW^T$W+ON+Szay((xt-6&SWZ@-qUzD(tmtjY>Tkz8PrjHq z7QJnGWvJb|A*+8s5PuKFSYB4|wa0cMRESVfqLYScI0maG53PpjNF=2tl9xpCx{#c~3dd~CO1o<%>Th-PxM3_*YT~L{g+`6zowL`+XFSw-jPnQV4pV5B<`kNtc!V^Cb}6pVo(S*Kdl4!r z^gex{&`pu~P=t>}_*jHbL|`J6MbIgZy>!;c=?NiG#dAyCC?DW#J7yG^gAIjui+DxC zncad!5#2KHa2u24csiY)#lT?usU_=mcT8b!Bl9Vq4<2l5D&DK``f46=V;hyiside{ zTo*BwT|?X|x%ur9+MD?jP2sDW##e@SRNOpT3R*Y|#MjVExFbZpbKjHnEfOKRfG8u4 zBwa)l3q*S!lSQG|u{h)|UZAi$CeICgN1^uWD8`BUu}0~rAbS-qVNBG2!>xAtc{Pq~ zFLL9<6wc1wr%;o6nQ2@EhPa!RG?;svrM~$G`eNd>;G`_yYK1AbtfuJ|Rl}2QSHMNdN!< literal 0 HcmV?d00001