summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormokha <mokha@cisco.com>2019-05-05 15:42:22 -0600
committermokha <mokha@cisco.com>2019-05-05 15:42:22 -0600
commitbd5d87b531d815ee9e5eb67374a5bd482e52fad8 (patch)
tree603e9eb8e2e4ca4d85025382486030c17471e38f
parentc7c0a5e2af6df659955901ef7e2ba767616f953a (diff)
check if communication isAtLease(minimum)
-rw-r--r--assignments/assignment1/src/main/java/ca/mokhan/assignment1/Candidate.java12
-rw-r--r--assignments/assignment1/src/main/java/ca/mokhan/assignment1/Communication.java21
-rw-r--r--assignments/assignment1/src/test/java/ca/mokhan/assignment1/CandidateTest.java1
-rw-r--r--assignments/assignment1/src/test/java/ca/mokhan/assignment1/CommunicationTest.java17
4 files changed, 46 insertions, 5 deletions
diff --git a/assignments/assignment1/src/main/java/ca/mokhan/assignment1/Candidate.java b/assignments/assignment1/src/main/java/ca/mokhan/assignment1/Candidate.java
index befb7f0..2763e05 100644
--- a/assignments/assignment1/src/main/java/ca/mokhan/assignment1/Candidate.java
+++ b/assignments/assignment1/src/main/java/ca/mokhan/assignment1/Candidate.java
@@ -4,7 +4,7 @@ import java.util.ArrayList;
public class Candidate extends AddressBook {
private double grade = 0.0;
- private String communication;
+ private Communication communication;
private boolean isInnovative;
private double regulatoryCapability;
@@ -17,7 +17,7 @@ public class Candidate extends AddressBook {
double regulatoryCapability) {
super(firstName, "", lastName);
this.grade = grade;
- this.communication = communication;
+ this.setCommunication(communication);
this.isInnovative = isInnovative;
this.regulatoryCapability = regulatoryCapability;
}
@@ -35,11 +35,11 @@ public class Candidate extends AddressBook {
}
public String getCommunication() {
- return this.communication;
+ return this.communication.toString();
}
public void setCommunication(String communication) {
- this.communication = communication;
+ this.communication = Communication.findBy(communication);
}
public void setGrade(double grade) {
@@ -55,7 +55,9 @@ public class Candidate extends AddressBook {
}
public boolean isEligible() {
- return this.grade >= 85.0;
+ return this.grade >= 85.0
+ || (this.regulatoryCapability >= 0.5
+ && this.communication.isAtLeast(Communication.Average));
}
public static ArrayList<Candidate> getEligibleCandidates(Candidate[] candidates) {
diff --git a/assignments/assignment1/src/main/java/ca/mokhan/assignment1/Communication.java b/assignments/assignment1/src/main/java/ca/mokhan/assignment1/Communication.java
index 09bcc84..2e4c2a8 100644
--- a/assignments/assignment1/src/main/java/ca/mokhan/assignment1/Communication.java
+++ b/assignments/assignment1/src/main/java/ca/mokhan/assignment1/Communication.java
@@ -13,7 +13,28 @@ public class Communication implements Comparable<Communication> {
return this.ranking.compareTo(other.ranking);
}
+ public boolean isAtLeast(Communication other) {
+ return this.compareTo(other) >= 0;
+ }
+
+ @Override
+ public String toString() {
+ return this.name;
+ }
+
public static final Communication Poor = new Communication("poor", 0);
public static final Communication Average = new Communication("average", 1);
public static final Communication Excellent = new Communication("excellent", 2);
+
+ public static Communication findBy(String name) {
+ switch (name) {
+ case "poor":
+ return Communication.Poor;
+ case "average":
+ return Communication.Average;
+ case "excellent":
+ return Communication.Excellent;
+ }
+ throw new IllegalArgumentException("Unknown communication type");
+ }
}
diff --git a/assignments/assignment1/src/test/java/ca/mokhan/assignment1/CandidateTest.java b/assignments/assignment1/src/test/java/ca/mokhan/assignment1/CandidateTest.java
index a09ee61..7ad23d5 100644
--- a/assignments/assignment1/src/test/java/ca/mokhan/assignment1/CandidateTest.java
+++ b/assignments/assignment1/src/test/java/ca/mokhan/assignment1/CandidateTest.java
@@ -41,5 +41,6 @@ public class CandidateTest extends TestCase {
public void testIsElligibleWithLessThanRequiredGrade() {
assertFalse(new Candidate("Tsuyoshi", "Garrett", 84.9, "average", false, 0.0).isEligible());
+ assertTrue(new Candidate("Tsuyoshi", "Garrett", 84.9, "average", false, 0.5).isEligible());
}
}
diff --git a/assignments/assignment1/src/test/java/ca/mokhan/assignment1/CommunicationTest.java b/assignments/assignment1/src/test/java/ca/mokhan/assignment1/CommunicationTest.java
index cf0bbeb..675492f 100644
--- a/assignments/assignment1/src/test/java/ca/mokhan/assignment1/CommunicationTest.java
+++ b/assignments/assignment1/src/test/java/ca/mokhan/assignment1/CommunicationTest.java
@@ -16,11 +16,28 @@ public class CommunicationTest extends TestCase {
public void testCompareTo() {
assertEquals(-1, Communication.Poor.compareTo(Communication.Average));
assertEquals(-1, Communication.Poor.compareTo(Communication.Excellent));
+ assertEquals(0, Communication.Poor.compareTo(Communication.Poor));
assertEquals(-1, Communication.Average.compareTo(Communication.Excellent));
assertEquals(1, Communication.Average.compareTo(Communication.Poor));
+ assertEquals(0, Communication.Average.compareTo(Communication.Average));
assertEquals(1, Communication.Excellent.compareTo(Communication.Average));
assertEquals(1, Communication.Excellent.compareTo(Communication.Poor));
+ assertEquals(0, Communication.Excellent.compareTo(Communication.Excellent));
+ }
+
+ public void testIsAtLeast() {
+ assertFalse(Communication.Poor.isAtLeast(Communication.Average));
+ assertFalse(Communication.Poor.isAtLeast(Communication.Excellent));
+ assertTrue(Communication.Poor.isAtLeast(Communication.Poor));
+
+ assertFalse(Communication.Average.isAtLeast(Communication.Excellent));
+ assertTrue(Communication.Average.isAtLeast(Communication.Poor));
+ assertTrue(Communication.Average.isAtLeast(Communication.Average));
+
+ assertTrue(Communication.Excellent.isAtLeast(Communication.Average));
+ assertTrue(Communication.Excellent.isAtLeast(Communication.Poor));
+ assertTrue(Communication.Excellent.isAtLeast(Communication.Excellent));
}
}