summaryrefslogtreecommitdiff
path: root/src/section-5/EmployeeSavingsTest.java
diff options
context:
space:
mode:
authormokha <mokha@cisco.com>2019-05-05 19:48:09 -0600
committermokha <mokha@cisco.com>2019-05-05 19:48:09 -0600
commit99a28d2dba93642e89a62ecf905a3bd4f138318d (patch)
treeee10a7df683642a42991896bbec5ced501a2abd1 /src/section-5/EmployeeSavingsTest.java
parent3c2be35d16d7482442911f5b06b68512f86e15b5 (diff)
split code into directories closer to what the instructor wants
Diffstat (limited to 'src/section-5/EmployeeSavingsTest.java')
-rw-r--r--src/section-5/EmployeeSavingsTest.java83
1 files changed, 83 insertions, 0 deletions
diff --git a/src/section-5/EmployeeSavingsTest.java b/src/section-5/EmployeeSavingsTest.java
new file mode 100644
index 0000000..5e9374b
--- /dev/null
+++ b/src/section-5/EmployeeSavingsTest.java
@@ -0,0 +1,83 @@
+package ca.mokhan.assignment1;
+
+import junit.framework.Test;
+import junit.framework.TestCase;
+import junit.framework.TestSuite;
+
+public class EmployeeSavingsTest extends TestCase {
+ private EmployeeSavings subject;
+
+ public EmployeeSavingsTest(String testName) {
+ super(testName);
+ double monthlyContribution = 100.00;
+ this.subject = new EmployeeSavings("Tsuyoshi", "Garrett", monthlyContribution);
+ }
+
+ public static Test suite() {
+ return new TestSuite(EmployeeSavingsTest.class);
+ }
+
+ public void testPredictSavingsAfter1Month() {
+ // Bankers rounding rules would round this amount down to $100.41
+ // the $0.007 would go to the bank.
+ assertEquals(100.417, subject.predictBalanceAfterMonths(1));
+ assertEquals(201.252, subject.predictBalanceAfterMonths(2));
+ assertEquals(302.507, subject.predictBalanceAfterMonths(3));
+ }
+
+ public void testPredictInterestAfter1Month() {
+ // Bankers rounding rules would round this amount down to $100.41
+ // the $0.007 would go to the bank.
+ assertEquals(0.417, subject.predictInterestAfterMonths(1));
+ assertEquals(1.252, subject.predictInterestAfterMonths(2));
+ assertEquals(2.507, subject.predictInterestAfterMonths(3));
+ }
+
+ public void testGetAccountValue() {
+ assertEquals(subject.predictBalanceAfterMonths(12), subject.getAccountValue());
+ }
+
+ public void testCalculateInterests() {
+ assertEquals(0.417, subject.calculateInterests()[0]);
+ assertEquals(1.252, subject.calculateInterests()[1]);
+ assertEquals(2.507, subject.calculateInterests()[2]);
+ assertEquals(4.184, subject.calculateInterests()[3]);
+ assertEquals(6.285, subject.calculateInterests()[4]);
+ assertEquals(8.811, subject.calculateInterests()[5]);
+ assertEquals(11.764, subject.calculateInterests()[6]);
+ assertEquals(15.147, subject.calculateInterests()[7]);
+ assertEquals(18.96, subject.calculateInterests()[8]);
+ assertEquals(23.206, subject.calculateInterests()[9]);
+ assertEquals(27.886, subject.calculateInterests()[10]);
+ assertEquals(33.002, subject.calculateInterests()[11]);
+ }
+
+ public void testGenerateMonthlySavings() {
+ assertEquals(100.417, subject.generateMonthlySavings()[0]);
+ assertEquals(201.252, subject.generateMonthlySavings()[1]);
+ assertEquals(302.507, subject.generateMonthlySavings()[2]);
+ }
+
+ public void testGetReport() {
+ EmployeeSavings[] accounts =
+ new EmployeeSavings[] {
+ new EmployeeSavings("Elena", "Brandon"),
+ new EmployeeSavings("Thomas", "Molson"),
+ new EmployeeSavings("Hamilton", "Winn"),
+ new EmployeeSavings("Suzie", "Sarandin"),
+ new EmployeeSavings("Philip", "Winne"),
+ new EmployeeSavings("Alex", "Trebok"),
+ new EmployeeSavings("Emma", "Pivoto"),
+ new EmployeeSavings("John", "Lenthen"),
+ new EmployeeSavings("James", "Lean"),
+ new EmployeeSavings("Jane", "Ostin"),
+ new EmployeeSavings("Emily", "Car"),
+ new EmployeeSavings("Daniel", "Hamshire"),
+ new EmployeeSavings("Neda", "Bazdar"),
+ new EmployeeSavings("Aaron", "Smith"),
+ new EmployeeSavings("Kate", "Hen")
+ };
+ String report = EmployeeSavings.getReport(accounts);
+ for (EmployeeSavings account : accounts) assertTrue(report.contains(account.getFirstName()));
+ }
+}