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 0000000..6562e20 Binary files /dev/null and b/target/classes/ExchangeRate.class differ diff --git a/target/test-classes/ExchangeTest.class b/target/test-classes/ExchangeTest.class new file mode 100644 index 0000000..9dacbc9 Binary files /dev/null and b/target/test-classes/ExchangeTest.class differ