Procházet zdrojové kódy

finished money converter

Eric Foster před 6 roky
rodič
revize
4b38c2d52d
4 změnil soubory, kde provedl 226 přidání a 11 odebrání
  1. 41
    0
      Currency.java
  2. 17
    0
      CurrencyConverter.java
  3. 144
    1
      CurrencyConverterTest.java
  4. 24
    10
      package.bluej

+ 41
- 0
Currency.java Zobrazit soubor

@@ -0,0 +1,41 @@
1
+
2
+/**
3
+ * Enumeration class Currency - write a description of the enum class here
4
+ *
5
+ * @author (your name here)
6
+ * @version (version number or date here)
7
+ */
8
+public enum Currency
9
+{
10
+    USD(1.00), 
11
+
12
+    EUR(0.94), 
13
+
14
+    GBP(0.82), 
15
+
16
+    INR(68.32), 
17
+
18
+    AUD(1.35), 
19
+
20
+    CAD(1.32), 
21
+
22
+    SGD(1.43), 
23
+
24
+    CHF(1.01), 
25
+
26
+    MYR(4.47), 
27
+
28
+    JPY(115.84), 
29
+
30
+    CNY(6.92);
31
+
32
+    private double rate;
33
+
34
+    private Currency(double rate){
35
+        this.rate = rate;
36
+    }
37
+
38
+    public double getRate(){
39
+        return this.rate;
40
+    }
41
+}

+ 17
- 0
CurrencyConverter.java Zobrazit soubor

@@ -1,2 +1,19 @@
1 1
 public class CurrencyConverter {
2
+    public Currency baseCurrency;
3
+    
4
+    public CurrencyConverter(Currency defaultBaseCurrency){
5
+        this.baseCurrency = defaultBaseCurrency;
6
+    }
7
+    
8
+    public void setBaseCurrency(Currency newBaseCurrency){
9
+        this.baseCurrency = newBaseCurrency;
10
+    }
11
+    
12
+    public Currency getBaseCurrency(Currency currentCurrency){
13
+        return this.baseCurrency;
14
+    }
15
+    
16
+    public double convert(Double amount, Currency quoteCurrency){
17
+        return amount * (1/this.baseCurrency.getRate()) * (quoteCurrency.getRate());
18
+    }
2 19
 }

+ 144
- 1
CurrencyConverterTest.java Zobrazit soubor

@@ -1,2 +1,145 @@
1
-public class CurrencyConverterTest {
1
+
2
+
3
+import static org.junit.Assert.*;
4
+import org.junit.After;
5
+import org.junit.Before;
6
+import org.junit.Test;
7
+
8
+/**
9
+ * The test class CurrencyConverterTest.
10
+ *
11
+ * @author  (your name)
12
+ * @version (a version number or a date)
13
+ */
14
+public class CurrencyConverterTest
15
+{
16
+    @Test
17
+    public void testUSDtoEUR(){
18
+        //Given
19
+        CurrencyConverter converter = new CurrencyConverter(Currency.USD);
20
+        
21
+        //Actual
22
+        double actual = converter.convert(1500.0, Currency.EUR);
23
+        
24
+        //Expected
25
+        double expected = 1500.0 * (1.0/1.0) * 0.94;
26
+        assertEquals(expected, actual, 1E-9);
27
+    }
28
+    
29
+    @Test
30
+    public void testEURtoUSD(){
31
+        //Given
32
+        CurrencyConverter converter = new CurrencyConverter(Currency.EUR);
33
+        
34
+        //Actual
35
+        double actual = converter.convert(3200.0, Currency.USD);
36
+        
37
+        //Expected
38
+        double expected = 3200.0 * (1.0/0.94) * 1.0;
39
+        assertEquals(expected, actual, 1E-9);
40
+    }
41
+    
42
+    @Test
43
+    public void testEURtoGBP(){
44
+        //Given
45
+        CurrencyConverter converter = new CurrencyConverter(Currency.EUR);
46
+        
47
+        //Actual
48
+        double actual = converter.convert(2700.50, Currency.GBP);
49
+        
50
+        //Expected
51
+        double expected = 2700.50 * (1.0/0.94) * 0.82;
52
+        assertEquals(expected, actual, 1E-9);
53
+    }
54
+    
55
+    @Test
56
+    public void testGBPtoINR(){
57
+        //Given
58
+        CurrencyConverter converter = new CurrencyConverter(Currency.GBP);
59
+        
60
+        //Actual
61
+        double actual = converter.convert(326.75, Currency.INR);
62
+        
63
+        //Expected
64
+        double expected = 326.75 * (1.0/0.82) * 68.32;
65
+        assertEquals(expected, actual, 1E-9);
66
+    }
67
+    
68
+    @Test
69
+    public void testINRtoCAD(){
70
+        //Given
71
+        CurrencyConverter converter = new CurrencyConverter(Currency.INR);
72
+        
73
+        //Actual
74
+        double actual = converter.convert(400.56, Currency.CAD);
75
+        
76
+        //Expected
77
+        double expected = 400.56 * (1.0/68.32) * 1.32;
78
+        assertEquals(expected, actual, 1E-9);
79
+    }
80
+    
81
+    @Test
82
+    public void testCADtoSGD(){
83
+        //Given
84
+        CurrencyConverter converter = new CurrencyConverter(Currency.CAD);
85
+        
86
+        //Actual
87
+        double actual = converter.convert(1235.43, Currency.SGD);
88
+        
89
+        //Expected
90
+        double expected = 1235.43 * (1.0/1.32) * 1.43;
91
+        assertEquals(expected, actual, 1E-9);
92
+    }
93
+    
94
+    @Test
95
+    public void testSGDtoCHF(){
96
+        //Given
97
+        CurrencyConverter converter = new CurrencyConverter(Currency.SGD);
98
+        
99
+        //Actual
100
+        double actual = converter.convert(1575.25, Currency.CHF);
101
+        
102
+        //Expected
103
+        double expected = 1575.25 * (1.0/1.43) * 1.01;
104
+        assertEquals(expected, actual, 1E-9);
105
+    }
106
+    
107
+    @Test
108
+    public void testCHFtoMYR(){
109
+        //Given
110
+        CurrencyConverter converter = new CurrencyConverter(Currency.CHF);
111
+        
112
+        //Actual
113
+        double actual = converter.convert(1575.25, Currency.MYR);
114
+        
115
+        //Expected
116
+        double expected = 1575.25 * (1.0/1.01) * 4.47;
117
+        assertEquals(expected, actual, 1E-9);
118
+    }
119
+    
120
+    @Test
121
+    public void testMYRtoJPY(){
122
+        //Given
123
+        CurrencyConverter converter = new CurrencyConverter(Currency.MYR);
124
+        
125
+        //Actual
126
+        double actual = converter.convert(1575.25, Currency.JPY);
127
+        
128
+        //Expected
129
+        double expected = 1575.25 * (1.0/4.47) * 115.84;
130
+        assertEquals(expected, actual, 1E-9);
131
+    }
132
+    
133
+    @Test
134
+    public void testJPYtoCNY(){
135
+        //Given
136
+        CurrencyConverter converter = new CurrencyConverter(Currency.JPY);
137
+        
138
+        //Actual
139
+        double actual = converter.convert(1575.25, Currency.CNY);
140
+        
141
+        //Expected
142
+        double expected = 1575.25 * (1.0/115.84) * 6.92;
143
+        assertEquals(expected, actual, 1E-9);
144
+    }
2 145
 }

+ 24
- 10
package.bluej Zobrazit soubor

@@ -1,20 +1,20 @@
1 1
 #BlueJ package file
2
-editor.fx.0.height=722
2
+editor.fx.0.height=713
3 3
 editor.fx.0.width=800
4
-editor.fx.0.x=560
5
-editor.fx.0.y=117
4
+editor.fx.0.x=-178
5
+editor.fx.0.y=-983
6 6
 objectbench.height=101
7
-objectbench.width=461
8
-package.divider.horizontal=0.6
7
+objectbench.width=417
8
+package.divider.horizontal=0.6144927536231884
9 9
 package.divider.vertical=0.8007380073800738
10 10
 package.editor.height=427
11
-package.editor.width=674
12
-package.editor.x=141
13
-package.editor.y=59
11
+package.editor.width=584
12
+package.editor.x=810
13
+package.editor.y=-904
14 14
 package.frame.height=600
15
-package.frame.width=800
15
+package.frame.width=710
16 16
 package.numDependencies=0
17
-package.numTargets=0
17
+package.numTargets=2
18 18
 package.showExtends=true
19 19
 package.showUses=true
20 20
 project.charset=UTF-8
@@ -23,3 +23,17 @@ readme.name=@README
23 23
 readme.width=47
24 24
 readme.x=10
25 25
 readme.y=10
26
+target1.height=50
27
+target1.name=CurrencyConverterTest
28
+target1.showInterface=false
29
+target1.type=UnitTestTargetJunit4
30
+target1.width=170
31
+target1.x=90
32
+target1.y=80
33
+target2.height=50
34
+target2.name=CurrencyConverter
35
+target2.showInterface=false
36
+target2.type=ClassTarget
37
+target2.width=140
38
+target2.x=10
39
+target2.y=120