From e3fa195c1d414f70285f709cc62ce1de17d3b6f0 Mon Sep 17 00:00:00 2001 From: Daniel Horowitz Date: Tue, 13 Feb 2018 18:41:37 -0500 Subject: [PATCH 1/2] w/o too many tests --- pom.xml | 5 ++ src/main/java/DELETEME | 0 src/main/java/Exchange.java | 28 +++++++++++ src/main/java/Rate.java | 72 +++++++++++++++++++++++++++++ src/test/java/RateTest.java | 59 +++++++++++++++++++++++ target/classes/Exchange.class | Bin 0 -> 367 bytes target/classes/Rate$1.class | Bin 0 -> 973 bytes target/classes/Rate.class | Bin 0 -> 1684 bytes target/test-classes/RateTest.class | Bin 0 -> 1225 bytes 9 files changed, 164 insertions(+) delete mode 100644 src/main/java/DELETEME create mode 100644 src/main/java/Exchange.java create mode 100644 src/main/java/Rate.java create mode 100644 src/test/java/RateTest.java create mode 100644 target/classes/Exchange.class create mode 100644 target/classes/Rate$1.class create mode 100644 target/classes/Rate.class create mode 100644 target/test-classes/RateTest.class diff --git a/pom.xml b/pom.xml index 682d6db..956fa2e 100644 --- a/pom.xml +++ b/pom.xml @@ -10,5 +10,10 @@ + + junit + junit + RELEASE + \ 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/Exchange.java b/src/main/java/Exchange.java new file mode 100644 index 0000000..26ffa1a --- /dev/null +++ b/src/main/java/Exchange.java @@ -0,0 +1,28 @@ +import java.util.Set; +import java.util.TreeMap; +import java.util.TreeSet; +import java.util.Map; + + +public class Exchange { + + + + + + + + + + + + + + + public static void main(String[] args) { + + } + + + +} diff --git a/src/main/java/Rate.java b/src/main/java/Rate.java new file mode 100644 index 0000000..65764ee --- /dev/null +++ b/src/main/java/Rate.java @@ -0,0 +1,72 @@ +import java.math.BigDecimal; +import java.util.TreeMap; + + +public class Rate { + + private String country; + private BigDecimal rate; + + TreeMap currenyCollection = new TreeMap() { + { + + put("USD", 1.00); + put("EUR", 0.94); + put("GBP", 0.82); + put("INR", 68.32); + put("AUD", 1.35); + put("CAD", 1.32); + put("SGD", 1.43); + put("CHF", 1.01); + put("MYR", 4.47); + put("JPY", 115.84); + put("CNY", 6.92); + } + + + }; + + public Rate(){ + + } + + private double getFirstCountry (String country1) { + return currenyCollection.get(country1); + } + + private double getSecondCountry (String country2) { + return currenyCollection.get(country2); + } + + private double getRate (String country1, String country2) { + return getSecondCountry(country2) / getFirstCountry(country1); + } + + public BigDecimal conversion ( String country1, String country2, double amount) { + double convertedAmount = getRate(country1,country2) * amount; + BigDecimal currencyAmount = new BigDecimal(convertedAmount); + return currencyAmount.setScale(2, BigDecimal.ROUND_CEILING); + + } + + + + public static void main(String[] args) { + + System.out.println(); + + } +} + + +// public final static double usDollar = 1.00; +// public final static double euro = 0.94; +// public final static double britishPound = 0.82; +// public final static double indianRupee = 68.32; +// public final static double austrialianDollar = 1.35; +// public final static double canadianDollar = 1.32; +// public final static double singaporeDollar = 1.43; +// public final static double swissFranc = 1.01; +// public final static double malaysianRiggit = 4.47; +// public final static double japaneseYen = 115.84; +// public final static double chineseYuan = 6.92; \ No newline at end of file diff --git a/src/test/java/RateTest.java b/src/test/java/RateTest.java new file mode 100644 index 0000000..3b59264 --- /dev/null +++ b/src/test/java/RateTest.java @@ -0,0 +1,59 @@ +import org.junit.Before; +import org.junit.Test; +import org.junit.Assert; +import java.math.BigDecimal; + +import org.junit.Test; + +public class RateTest { + + Rate testRate; + + @Before + public void setUp(){ + testRate = new Rate(); + } + + + @Test + public void testConvertDollarToEuro() { + String country1 = "USD"; + String country2 = "EUR"; + double amount = 100.1456; + BigDecimal expectedAmount = new BigDecimal("94.14"); + + //:When + BigDecimal actualAmount = testRate.conversion(country1, country2, amount); + + //:Then + Assert.assertEquals("The expected converted amount from USD to EURO is ", expectedAmount, actualAmount); + + + } + @Test + public void convertEuroToDollar() { + + } +// ConvertEuroToBritishPound() { +// +// } +// ConvertBritishPoundToIndianRupee() { +// +// } +// ConvertRupeeToCanadianDollar() { +// +// } +// ConvertCanadianDollarToSingaporeDollar(){ +// +// } +// ConvertSingaporeDollarToSwissFranc(){ +// +// } +// ConvertSwissFranctoMalaysianRinggit(){ +// +// } +// ConvertMalaysianRinggitToJapaneseYen(){ +// +// } +// ConvertJapaneseYenToChineseYuan(){} +} diff --git a/target/classes/Exchange.class b/target/classes/Exchange.class new file mode 100644 index 0000000000000000000000000000000000000000..bbf79dbdc721e262ea19544a067834c6ff40e2c6 GIT binary patch literal 367 zcmZusO-}+b5Ph@k2dpRv#(4FHnz-?d@j~>pfdht%r|#M;B}+G{i}7!9BJto4@JA7+ zRicSB=}h07d2gnl+xHIuH#mvWz;T3Lggzm>Ra(_|gvQ`vM({_~vm|s* zUoQp(%<$$b zR*#MlD6A>Anj$c%8Ja!K!7n$Z*aio0*4$P(1Phv>mYio*)mm4oIw|3TSyS{4#nKpW ziC&hJLtxP`R4c11^}0$_Xrzmd(i#4;wqq!^V^M~Q!k%)VBpqARlk1kM7M1?(d%K!PQsi_RG}-K^8jqH6D&+deD=a1*xz zkg>?2qf*ZKuoS>!6apxsMABSkjck5)h3sO9;h9Q~Y<7m(a=w8V<_Q-!S#)V-lSNBp zd3JJiltb5rQmAz-NGoO5$53NIqp)Tf9DE0g?x@R8IrPZ6*u^?&>%L=i7?;~(%hf%# zX18~xrL-q#Nw`iAZHQhW7YeZ+Fho;EjC`EXUwGjm|0X{C5nTK;Jn?Wx@EG1txb!3* z<|X)C;+G)0Bp{*FB|!-xmxLvByQD`##3j8FuDYa8!ZnxlOBis;poAMO@`0}A!7$k| zbdnX}CokbL1`$L8A*9fS1%y#SH>wmd(SzrR;3cl$HF|NIc14;c;trC;sMtm;=<{HN an1_DRyA6L2_sM(lfNX-MNKJ~8r|}=k$J*Ec literal 0 HcmV?d00001 diff --git a/target/classes/Rate.class b/target/classes/Rate.class new file mode 100644 index 0000000000000000000000000000000000000000..922f03739290ece7dcce22d64253687745083df8 GIT binary patch literal 1684 zcmb7_?Qhdo6vm&MI&tE94WYCHHU`_EBq?hs8ykJ08zk#iC@&*jC$vwu=~XauY~u&(__`yL9*KK_6pnxwb zIDs1u7O-ez$w3Lr4lOrjS&`*S8(%pX$1PcISI|bs!Pi)|@r{jd72LHTFj3pr!=V`} z*u5|b;%G%g3OOhdYElH_ohXd(Uz3-K#EaNOuL$qW3zoLw@zdo>+S3ttbz8}wdwkg$0R2T>!?r7CXacn;B>X}tfB(F%_b23FP-oyLUSqvBFRH!iYHBHVbV4~#Y@EW( zsQTH_rCjRt&B#p(ZfZYa=^RF?ZPhzMFAq5&96s95*4Nfv+o_QxyF0_!49E!+ zCNY(D!V6mu`5wj`L!$>A*U2>Pm(85GXX4}s_>ixEjh~D$ekUezin{`)FwHAOd?=hr zZD;w_P|_i;=V)oe;tr@a_n?|DP{(TyqQ$;UaTav~m{S4mk4~;7ktWNaesg ztVAkun^*QwZqDwZ626*VGo@X~{0`D{^Yo;C;TA}2pqX=jCbvxPx#ldvPUEMA;tPyF zK3&{{yJ(-Wi^W~M^D7++IFxmcqPEznt7*U$sv}ZovdS*gLv~p}+0Eh#6LZ+-Pq-`c zbQyEh(nf`>t9d%tc@?GY-!ZX^>R~_Srv$jcP>X5Mtd}-_ZLX!seVVSH;UupP5#r6i F{{fDPRyF_t literal 0 HcmV?d00001 diff --git a/target/test-classes/RateTest.class b/target/test-classes/RateTest.class new file mode 100644 index 0000000000000000000000000000000000000000..d825151b21e9c8cb17367668d791fd328e5a452b GIT binary patch literal 1225 zcmaKr+fvg|6o&uZL)wM_wY0^mK&qfUAhn2xmcs}XFPthPl+JJ&N+@C41e0AxZ+!(H zz-up^QE_C(2k@aB*G^K(fO?T+@3q(Z*SG#8zkdJt380J>8F3UMD9Q++5W^^DqqrZ% zob+rr_WJ#&4@v~3C?3d&p)7Ldqj)G|0gobh9KjQYDAygnrE#4>s*C3$EtU+^;42Kl zT)xQ=TDSJ;c(iVq`m0`dPq!P|UWX!yy4BJ;P0cpM-VcWOq2Vydu2_S_Nigi_eCL=U zv(+=X(bb!VV^GDaXZrw6Zbeq?#PDisF)<(~^ zh`VKxmi?|QDvz`it<=%Xc4?d2hS{dd{`owOqjg0t1FJEN=x>kp7T5Pz{b1Uw?rQw7 zv}Uwxddui)9a2!V7Vl}DeqQ_npFh@E%Oev+4a?)B$+xYZ-O`^M!lGeesYss_j0(n( zBtu0|!8Ihv;+<`x3U2IdF(lnNE|HLXm4&(Tf~b9}pn@vHeB)48`-7-Hg}$$PgQ^F% z)m2GX<(5jqo2ucc5iBZL!ZJD2M`DN%jN9BhB3l?zxvOr9k3jaiIP|g@mj9A;wXBx^ zm$mW1t6p^+dbh%Dcd_w?ET^xb^8XGV?c#-=ek9*Smi~e`{T+-hvY756T9ff~PtmSK zPjMD5oPvF(MF45KOKvcVaat>00+jZ*}i#RLjaU5phvA$cDoh#V#{MPo>qp^PblmMK4r+pbC) rcQ8#zS&GikNB*>Di^}J&_!h29W;)$=m+B literal 0 HcmV?d00001 From eb6b32618914f97ff91e6ba54831d26d12d2d218 Mon Sep 17 00:00:00 2001 From: Daniel Horowitz Date: Wed, 14 Feb 2018 04:51:01 -0500 Subject: [PATCH 2/2] basic and final??? --- src/main/java/Rate.java | 20 +--- src/test/java/RateTest.java | 151 ++++++++++++++++++++++++----- target/classes/Rate.class | Bin 1684 -> 1314 bytes target/test-classes/RateTest.class | Bin 1225 -> 3247 bytes 4 files changed, 131 insertions(+), 40 deletions(-) diff --git a/src/main/java/Rate.java b/src/main/java/Rate.java index 65764ee..f38d847 100644 --- a/src/main/java/Rate.java +++ b/src/main/java/Rate.java @@ -5,11 +5,10 @@ public class Rate { private String country; - private BigDecimal rate; + private Double rate; TreeMap currenyCollection = new TreeMap() { { - put("USD", 1.00); put("EUR", 0.94); put("GBP", 0.82); @@ -23,27 +22,14 @@ public class Rate { put("CNY", 6.92); } - }; public Rate(){ } - private double getFirstCountry (String country1) { - return currenyCollection.get(country1); - } - - private double getSecondCountry (String country2) { - return currenyCollection.get(country2); - } - - private double getRate (String country1, String country2) { - return getSecondCountry(country2) / getFirstCountry(country1); - } - public BigDecimal conversion ( String country1, String country2, double amount) { - double convertedAmount = getRate(country1,country2) * amount; + double convertedAmount = (currenyCollection.get(country2) / currenyCollection.get(country1)) * amount; BigDecimal currencyAmount = new BigDecimal(convertedAmount); return currencyAmount.setScale(2, BigDecimal.ROUND_CEILING); @@ -53,7 +39,7 @@ public BigDecimal conversion ( String country1, String country2, double amount) public static void main(String[] args) { - System.out.println(); + } } diff --git a/src/test/java/RateTest.java b/src/test/java/RateTest.java index 3b59264..a5b26af 100644 --- a/src/test/java/RateTest.java +++ b/src/test/java/RateTest.java @@ -26,34 +26,139 @@ public void testConvertDollarToEuro() { BigDecimal actualAmount = testRate.conversion(country1, country2, amount); //:Then - Assert.assertEquals("The expected converted amount from USD to EURO is ", expectedAmount, actualAmount); + Assert.assertEquals(expectedAmount, actualAmount); } @Test public void convertEuroToDollar() { + String country1 = "EUR"; + String country2 = "USD"; + double amount = 250.50; + BigDecimal expectedAmount = new BigDecimal("266.49"); + + //:When + BigDecimal actualAmount = testRate.conversion(country1, country2, amount); + + //:Then + Assert.assertEquals(expectedAmount, actualAmount); + } + + @Test + public void ConvertEuroToBritishPound() { + String country1 = "EUR"; + String country2 = "GBP"; + double amount = 656.354; + BigDecimal expectedAmount = new BigDecimal("572.57"); + + //:When + BigDecimal actualAmount = testRate.conversion(country1, country2, amount); + + //:Then + Assert.assertEquals(expectedAmount, actualAmount); + } + @Test + public void ConvertBritishPoundToIndianRupee() { + String country1 = "GBP"; + String country2 = "INR"; + double amount = 345.00; + BigDecimal expectedAmount = new BigDecimal("28744.40"); + + //:When + BigDecimal actualAmount = testRate.conversion(country1, country2, amount); + + //:Then + Assert.assertEquals(expectedAmount, actualAmount); + } + + @Test + public void ConvertRupeeToCanadianDollar() { + String country1 = "INR"; + String country2 = "CAD"; + double amount = 97.47; + BigDecimal expectedAmount = new BigDecimal("1.89"); + + //:When + BigDecimal actualAmount = testRate.conversion(country1, country2, amount); + + //:Then + Assert.assertEquals(expectedAmount, actualAmount); + } + + @Test + + public void ConvertCanadianDollarToSingaporeDollar(){ + String country1 = "CAD"; + String country2 = "SGD"; + double amount = 1000.00; + BigDecimal expectedAmount = new BigDecimal("1083.34"); + + //:When + BigDecimal actualAmount = testRate.conversion(country1, country2, amount); + + //:Then + Assert.assertEquals(expectedAmount, actualAmount); + + } + + @Test + public void ConvertSingaporeDollarToSwissFranc(){ + String country1 = "SGD"; + String country2 = "CHF"; + double amount = 1526.35; + BigDecimal expectedAmount = new BigDecimal("1078.06"); + + //:When + BigDecimal actualAmount = testRate.conversion(country1, country2, amount); + + //:Then + Assert.assertEquals(expectedAmount, actualAmount); + + } + + @Test + public void ConvertSwissFranctoMalaysianRinggit(){ + String country1 = "CHF"; + String country2 = "MYR"; + double amount = 345.00; + BigDecimal expectedAmount = new BigDecimal("1526.89"); + + //:When + BigDecimal actualAmount = testRate.conversion(country1, country2, amount); + + //:Then + Assert.assertEquals(expectedAmount, actualAmount); + + } + + @Test + public void ConvertMalaysianRinggitToJapaneseYen(){ + String country1 = "MYR"; + String country2 = "JPY"; + double amount = 345.00; + BigDecimal expectedAmount = new BigDecimal("8940.68"); + + //:When + BigDecimal actualAmount = testRate.conversion(country1, country2, amount); + + //:Then + Assert.assertEquals(expectedAmount, actualAmount); + + } + + @Test + + public void ConvertJapaneseYenToChineseYuan(){ + String country1 = "JPY"; + String country2 = "CNY"; + double amount = 345.00; + BigDecimal expectedAmount = new BigDecimal("20.61"); + + //:When + BigDecimal actualAmount = testRate.conversion(country1, country2, amount); + + //:Then + Assert.assertEquals(expectedAmount, actualAmount); } -// ConvertEuroToBritishPound() { -// -// } -// ConvertBritishPoundToIndianRupee() { -// -// } -// ConvertRupeeToCanadianDollar() { -// -// } -// ConvertCanadianDollarToSingaporeDollar(){ -// -// } -// ConvertSingaporeDollarToSwissFranc(){ -// -// } -// ConvertSwissFranctoMalaysianRinggit(){ -// -// } -// ConvertMalaysianRinggitToJapaneseYen(){ -// -// } -// ConvertJapaneseYenToChineseYuan(){} } diff --git a/target/classes/Rate.class b/target/classes/Rate.class index 922f03739290ece7dcce22d64253687745083df8..a8524dd220d1978f557ead1eb477ba5bbb01d9c0 100644 GIT binary patch delta 556 zcmYL`Pft@(5XFD@(bxNWx#f>mZ4s0r{sAhbP|%`+3Zj5)NLa9}hL9+si2)N=Y~9y| zYxx3VOids$uKg;02jjT~^)2R{nar6v_sxgwC%5$T_wje2!gEI#w=Lt2h;oK36Hetx z%akKc)iUi!m&u7=r+w?W-XVzZ0zsuy?IwL{H2r4ndp5jPr;C0 zukURQS3G&R`}_e^g&0td4#qRcaCcAl<@-Z0ujw7&;i8^*T`ZP5;f69xhMU|v tvpFpcO8bS*7XC=|baOZ^I$m10>mL<8eX3=IkVTBOV~K8|(~Qur?++t7JwN~e literal 1684 zcmb7_?Qhdo6vm&MI&tE94WYCHHU`_EBq?hs8ykJ08zk#iC@&*jC$vwu=~XauY~u&(__`yL9*KK_6pnxwb zIDs1u7O-ez$w3Lr4lOrjS&`*S8(%pX$1PcISI|bs!Pi)|@r{jd72LHTFj3pr!=V`} z*u5|b;%G%g3OOhdYElH_ohXd(Uz3-K#EaNOuL$qW3zoLw@zdo>+S3ttbz8}wdwkg$0R2T>!?r7CXacn;B>X}tfB(F%_b23FP-oyLUSqvBFRH!iYHBHVbV4~#Y@EW( zsQTH_rCjRt&B#p(ZfZYa=^RF?ZPhzMFAq5&96s95*4Nfv+o_QxyF0_!49E!+ zCNY(D!V6mu`5wj`L!$>A*U2>Pm(85GXX4}s_>ixEjh~D$ekUezin{`)FwHAOd?=hr zZD;w_P|_i;=V)oe;tr@a_n?|DP{(TyqQ$;UaTav~m{S4mk4~;7ktWNaesg ztVAkun^*QwZqDwZ626*VGo@X~{0`D{^Yo;C;TA}2pqX=jCbvxPx#ldvPUEMA;tPyF zK3&{{yJ(-Wi^W~M^D7++IFxmcqPEznt7*U$sv}ZovdS*gLv~p}+0Eh#6LZ+-Pq-`c zbQyEh(nf`>t9d%tc@?GY-!ZX^>R~_Srv$jcP>X5Mtd}-_ZLX!seVVSH;UupP5#r6i F{{fDPRyF_t diff --git a/target/test-classes/RateTest.class b/target/test-classes/RateTest.class index d825151b21e9c8cb17367668d791fd328e5a452b..bcbea597b0bcf7c2f2e04688dbc4b2664941a93e 100644 GIT binary patch literal 3247 zcmcK5+fUn890%~9fjA~jDfNJksG?VfYB$9Lao!|M`=V#}) ze}4Iuh{9z0sE?MswCtlQTB@Z>v?9?BiB`pUvi8Qq@1FR*v?fu)N42!hV>W#BD%}+0 z#tPOGNtBf6H8K9^;qQO{^>jv}TN2$Cn_@6{6iMAzDB|>{wqCJT;FYSBju0WElTJ|clRe?l>e~+PYMbkC=nn2Y( zfenFbCXH=OpHehkUCL#)R5QW0(io8yBgN7i%+z?_9jvkUG)o|#lPrPcNa(Rtdp#>q z^J-4FwT!x$+hxTQhVlKr(YTw4cMyp$T=zFuCLm*G(Gwebuz5jC7ir31d2E z8gQo!&=f&n3}Cwdn*uZ3)Je) z9UV;=^ZK^N^wnHe#Z5iuhB)1XG0AksXA9Z8-0A<0CyX^*Hp}9!6#_51fyX8g`KD%B zGbYnh0<{-{o{!naB1^Lai-VAISHpelaHEdTB#Z@?Wx8sqNmUoZ5dJ+>4FYlu z5xzAeXQtE{jaSb}UTyqN2Kn*%DMbCKH9qL4%M?WQt*_z0s;Adi1!{1P_}C$#utuW6 zaFnl2`zb@Zmkd8;=^hR}GBgy7j$r-l#0t8D!;#?NFuLYqRKh!~L;=;6Rj5&doUe;aISL2>rz*R(r#Pk)eG2!b%eT*hsWLI27aYOXzzd z=%FyB!W9ZsUo6q(t$h@rK#e^w)-8YBd?}}@EIbwhT`dvx;GEIdWL zuARp8Jrp;dyY8bqGEsoI(I_dcVlsq)U7)LU&B@Y0 z*C`HA8{X{WXo*x{PdMz!5^PbCJz&@6+4beJ+p%E>Hs}PP3+wa$9o;@IN0N0Pk}uP_FM(n zGbPxKirftL**yDPxoidOMX;B^UIu#=>~*j=D!`sC!ERRM7O>Cf*{$WWZ-IRq>^op@ zg3Z9*279Lh?70%`7Da9Y`(mEmQ7(HQ?7Lv6!Ono41=|8UR{{2X33i(zcNS~At6cU0 z*bl&d8|-($ei!VAU_Yt=d!YooQ<1xi?4EMjkHLNq?DxU`0PGLJ{sinN6=1(og59mi lfg&3}hvog;d%{1@0f9F710 delta 591 zcmZ8dOD_Xa6#nMXc^R!oTZ)cb>NQogp7m%fSg?^+yXaCFVL_#a*h&0_iM6FzHC+fH zVa<;cr?;hIanC)^@B7ZFMn3ed&##v^04Zb*bih`TFd)L#5x}H|q=qSFy`<-E9z0XU zw1yc2I#TtXw1!y&bC_4LpklFBEeM_^MFZUk3Xt=Au4AGTUEa2o-0a4Zi42wnqzgw5 zbFR*ueb+f)`{mP1r&9O!PRbXjE<3E0PgrqxgSln4S$ap!~ z^4?|ZIzV~>fgZ7tmB}Y=vLTA5>95y(_7j8}IU>Sj6`s`4L%!K)KrbQ`3FxC?kq<9J z;x*HLg;;um^a#0yQC}X&_|Zm3Y5|!|p#CP!00)i!g5JRgm2wI1))%|(YLECL$}{{e zT#J{3#2q4?VHgA+B2_U&VS{n1EL8}iNhM(%76wVHf)VN%BxMHm$1ucE!Wc%JXk(Ne lAy2`Nxcn$rH}