summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormokha <mokha@cisco.com>2019-05-05 19:08:42 -0600
committermokha <mokha@cisco.com>2019-05-05 19:08:42 -0600
commit93762f2afca80642bed7e5a493380ef3390fc5a7 (patch)
tree195e9432a0e834b0114b81a9f8f77306166d5c56
parent33ee1f014f39025e5fac886b16dff7463e67e0a6 (diff)
add additional tax for income from $150,000 - $250,000
-rw-r--r--assignments/assignment1/src/main/java/ca/mokhan/assignment1/TaxReturn.java11
-rw-r--r--assignments/assignment1/src/test/java/ca/mokhan/assignment1/TaxReturnTest.java13
2 files changed, 21 insertions, 3 deletions
diff --git a/assignments/assignment1/src/main/java/ca/mokhan/assignment1/TaxReturn.java b/assignments/assignment1/src/main/java/ca/mokhan/assignment1/TaxReturn.java
index c978974..fe0f664 100644
--- a/assignments/assignment1/src/main/java/ca/mokhan/assignment1/TaxReturn.java
+++ b/assignments/assignment1/src/main/java/ca/mokhan/assignment1/TaxReturn.java
@@ -3,9 +3,6 @@ package ca.mokhan.assignment1;
import java.util.Scanner;
public class TaxReturn {
- private static final double RATE1 = 0.15;
- private static final double RATE2 = 0.28;
- private static final double RATE3 = 0.31;
private double income;
private int status;
private int children;
@@ -39,6 +36,8 @@ public class TaxReturn {
RATE1 * SINGLE_BRACKET1
+ RATE2 * (SINGLE_BRACKET2 - SINGLE_BRACKET1)
+ RATE3 * (income - SINGLE_BRACKET2);
+
+ if (income > 249999.0) tax += (income - 150000) * 0.25;
} else {
if (income <= MARRIED_BRACKET1) tax = RATE1 * income;
else if (income <= MARRIED_BRACKET2)
@@ -54,8 +53,14 @@ public class TaxReturn {
public static final int SINGLE = 1;
public static final int MARRIED = 2;
+
+ public static final double RATE1 = 0.15;
+ public static final double RATE2 = 0.28;
+ public static final double RATE3 = 0.31;
+
public static final double SINGLE_BRACKET1 = 21450;
public static final double SINGLE_BRACKET2 = 51900;
+
public static final double MARRIED_BRACKET1 = 35800;
public static final double MARRIED_BRACKET2 = 86500;
diff --git a/assignments/assignment1/src/test/java/ca/mokhan/assignment1/TaxReturnTest.java b/assignments/assignment1/src/test/java/ca/mokhan/assignment1/TaxReturnTest.java
index cdc592b..421fc44 100644
--- a/assignments/assignment1/src/test/java/ca/mokhan/assignment1/TaxReturnTest.java
+++ b/assignments/assignment1/src/test/java/ca/mokhan/assignment1/TaxReturnTest.java
@@ -43,6 +43,19 @@ public class TaxReturnTest extends TestCase {
assertEquals(11743.5031, subject.getTax());
}
+ // if the income is greater than $249,999 for SINGLE, then add a tax of 25% on income amount above
+ // $150,000;
+ public void test_SINGLE_Income_Greater_Than_250K() {
+ // $0 - $21450: 0.15% = $3,217.5
+ // $21450 - $51900: 0.28% = $8,526.0
+ // $51900 - $250,000: 0.31% = $61411.0
+ // $150,000 - $250,000: 0.25% = $25,000.0
+ // total: $98,154.50
+
+ TaxReturn subject = new TaxReturn(250000, TaxReturn.SINGLE);
+ assertEquals(98154.50, subject.getTax());
+ }
+
public void test_MARRIED_BRACKET1() {
TaxReturn subject = new TaxReturn(TaxReturn.MARRIED_BRACKET1 - 0.01, TaxReturn.MARRIED);
assertEquals(5369.9985, subject.getTax());