From 5da4ad52d23fdf013fd8e3fe48c8833832f1ee44 Mon Sep 17 00:00:00 2001 From: James Wilkinson Date: Fri, 6 Mar 2020 09:42:42 -0500 Subject: [PATCH 1/6] First commit --- .../assessment2/part1/BasicUtilities.java | 12 ++++++++---- .../assessment2/part1/IntegerArrayUtilities.java | 16 ++++++++++++---- 2 files changed, 20 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/zipcodewilmington/assessment2/part1/BasicUtilities.java b/src/main/java/com/zipcodewilmington/assessment2/part1/BasicUtilities.java index 1402353..f899268 100644 --- a/src/main/java/com/zipcodewilmington/assessment2/part1/BasicUtilities.java +++ b/src/main/java/com/zipcodewilmington/assessment2/part1/BasicUtilities.java @@ -1,19 +1,23 @@ package com.zipcodewilmington.assessment2.part1; +import sun.tools.jstat.Scale; + public class BasicUtilities { public Boolean isGreaterThan5(Integer value) { - return null; + return (value >= 5); } public Boolean isLessThan7(Integer value) { - return null; + return (value <= 7); } public Boolean isBetween5And7(Integer valueToEvaluate) { - return null; + return (isGreaterThan5(valueToEvaluate) && isLessThan7(valueToEvaluate)); } public Boolean startsWith(String string, Character character) { - return null; + String firstLetter = string.substring(0, 1); + String characterAsString = character.toString(); + return firstLetter.equalsIgnoreCase(characterAsString); } } diff --git a/src/main/java/com/zipcodewilmington/assessment2/part1/IntegerArrayUtilities.java b/src/main/java/com/zipcodewilmington/assessment2/part1/IntegerArrayUtilities.java index a360000..c54d2e5 100644 --- a/src/main/java/com/zipcodewilmington/assessment2/part1/IntegerArrayUtilities.java +++ b/src/main/java/com/zipcodewilmington/assessment2/part1/IntegerArrayUtilities.java @@ -2,18 +2,26 @@ public class IntegerArrayUtilities { public Boolean hasEvenLength(Integer[] array) { - return null; + return (array.length % 2 == 0); } public Integer[] range(int start, int stop) { - return null; + Integer arrayLength = Math.abs(start - stop); + Integer[] result = new Integer[arrayLength + 1]; + + for(int i = 0; i <= arrayLength; i++) + { + result[i] = start + i; + } + + return result; } public Integer getSumOfFirstTwo(Integer[] array) { - return null; + return (array[0] + array[1]); } public Integer getProductOfFirstTwo(Integer[] array) { - return null; + return (array[0] * array[1]); } } From 875c107b515f5dc9590375bacdb9e50c5dcbe64f Mon Sep 17 00:00:00 2001 From: James Wilkinson Date: Fri, 6 Mar 2020 09:49:28 -0500 Subject: [PATCH 2/6] Get Product of last 2? Tricksy. --- .../assessment2/part1/IntegerArrayUtilities.java | 2 +- .../assessment2/part1/WuTangConcatenator.java | 12 ++++++++---- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/zipcodewilmington/assessment2/part1/IntegerArrayUtilities.java b/src/main/java/com/zipcodewilmington/assessment2/part1/IntegerArrayUtilities.java index c54d2e5..71a53f7 100644 --- a/src/main/java/com/zipcodewilmington/assessment2/part1/IntegerArrayUtilities.java +++ b/src/main/java/com/zipcodewilmington/assessment2/part1/IntegerArrayUtilities.java @@ -22,6 +22,6 @@ public Integer getSumOfFirstTwo(Integer[] array) { } public Integer getProductOfFirstTwo(Integer[] array) { - return (array[0] * array[1]); + return (array[array.length - 1] * array[array.length - 2]); } } diff --git a/src/main/java/com/zipcodewilmington/assessment2/part1/WuTangConcatenator.java b/src/main/java/com/zipcodewilmington/assessment2/part1/WuTangConcatenator.java index 63f210e..2e8975a 100644 --- a/src/main/java/com/zipcodewilmington/assessment2/part1/WuTangConcatenator.java +++ b/src/main/java/com/zipcodewilmington/assessment2/part1/WuTangConcatenator.java @@ -1,18 +1,22 @@ package com.zipcodewilmington.assessment2.part1; public class WuTangConcatenator { - public WuTangConcatenator(Integer input) { + int input; + + public WuTangConcatenator(Integer input) + { + this.input = input; } public Boolean isWu() { - return null; + return (input % 3 == 0); } public Boolean isTang() { - return null; + return (input % 5 == 0); } public Boolean isWuTang() { - return null; + return (input % 15 == 0); } } From b4074472ec0f892e4111c55c85072903164ec13c Mon Sep 17 00:00:00 2001 From: James Wilkinson Date: Fri, 6 Mar 2020 10:03:54 -0500 Subject: [PATCH 3/6] Partway through ArrayUtils --- .../assessment2/part2/ArrayUtility.java | 49 +++++++++++++++++-- 1 file changed, 44 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/zipcodewilmington/assessment2/part2/ArrayUtility.java b/src/main/java/com/zipcodewilmington/assessment2/part2/ArrayUtility.java index de2f799..a2639be 100644 --- a/src/main/java/com/zipcodewilmington/assessment2/part2/ArrayUtility.java +++ b/src/main/java/com/zipcodewilmington/assessment2/part2/ArrayUtility.java @@ -1,16 +1,55 @@ package com.zipcodewilmington.assessment2.part2; public class ArrayUtility { - public Integer[] merge(Integer[] array1, Integer[] array2) { - return null; + public Integer[] merge(Integer[] array1, Integer[] array2) + { + Integer[] output = new Integer[array1.length + array2.length]; + + for(Integer i = 0; i < array1.length; i++) + { + output[i] = array1[i]; + } + for(Integer i = 0; i < array2.length; i++) + { + output[array1.length + i] = array2[i]; + } + + return output; } public Integer[] rotate(Integer[] array, Integer index) { - return null; + Integer[] result = new Integer[array.length]; + + for(Integer i = 0; i < array.length; i++) + { + result[i] = array[(index + i) % array.length]; + } + + + + return result; } - public Integer countOccurrence(Integer[] array1, Integer[] array2, Integer valueToEvaluate) { - return null; + public Integer countOccurrence(Integer[] array1, Integer[] array2, Integer valueToEvaluate) + { + Integer occurrences = 0; + + for(Integer i = 0; i < array1.length; i++) + { + if(array1[i] == valueToEvaluate) + { + occurrences++; + } + } + for(Integer i = 0; i < array2.length; i++) + { + if(array2[i] == valueToEvaluate) + { + occurrences++; + } + } + + return occurrences; } public Integer mostCommon(Integer[] array) { From 4c845830ca1a4075abb0b62bd76bbb58b5249bce Mon Sep 17 00:00:00 2001 From: James Wilkinson Date: Fri, 6 Mar 2020 10:48:55 -0500 Subject: [PATCH 4/6] No idea how to do toString, says the test fails? --- .../assessment2/part2/ArrayUtility.java | 28 +++++++++-- .../assessment2/part2/ListUtility.java | 48 +++++++++++++++---- .../assessment2/part2/Router.java | 44 ++++++++++++++--- 3 files changed, 103 insertions(+), 17 deletions(-) diff --git a/src/main/java/com/zipcodewilmington/assessment2/part2/ArrayUtility.java b/src/main/java/com/zipcodewilmington/assessment2/part2/ArrayUtility.java index a2639be..0198687 100644 --- a/src/main/java/com/zipcodewilmington/assessment2/part2/ArrayUtility.java +++ b/src/main/java/com/zipcodewilmington/assessment2/part2/ArrayUtility.java @@ -1,5 +1,7 @@ package com.zipcodewilmington.assessment2.part2; +import java.util.HashMap; + public class ArrayUtility { public Integer[] merge(Integer[] array1, Integer[] array2) { @@ -52,7 +54,27 @@ public Integer countOccurrence(Integer[] array1, Integer[] array2, Integer value return occurrences; } - public Integer mostCommon(Integer[] array) { - return null; + public Integer mostCommon(Integer[] array) + { + Integer currentMostCommon = array[0]; + Integer currentMaxCount = 0; + for(Integer i = 0; i < array.length; i++) + { + Integer appearances = 0; + for(Integer k = 0; k < array.length; k++) + { + if(array[i] == array[k]) + { + appearances++; + } + } + if(appearances > currentMaxCount) + { + currentMaxCount = appearances; + currentMostCommon = array[i]; + } + } + + return currentMostCommon; } -} +} \ No newline at end of file diff --git a/src/main/java/com/zipcodewilmington/assessment2/part2/ListUtility.java b/src/main/java/com/zipcodewilmington/assessment2/part2/ListUtility.java index e978685..d8ca4c0 100644 --- a/src/main/java/com/zipcodewilmington/assessment2/part2/ListUtility.java +++ b/src/main/java/com/zipcodewilmington/assessment2/part2/ListUtility.java @@ -1,29 +1,61 @@ package com.zipcodewilmington.assessment2.part2; -import java.util.List; +import java.util.*; + +public class ListUtility +{ + List iList; + + public ListUtility() + { + iList = new ArrayList<>(); + } -public class ListUtility { public Boolean add(int i) { - return null; + return iList.add(i); } public Integer size() { - return null; + return iList.size(); } public List getUnique() { - return null; + Set uniques = new HashSet<>(iList); + + List uniquesAsList = new ArrayList<>(uniques); + return uniquesAsList; } public String join() { - return null; + StringBuilder joinedWithCommas = new StringBuilder(); + + for(Integer element : iList) + { + joinedWithCommas.append(element).append(", "); + } + + return (joinedWithCommas.substring(0, joinedWithCommas.length() - 2)); } public Integer mostCommon() { - return null; + Map map = new HashMap<>(); + + for (Integer element : iList) { + Integer val = map.get(element); + map.put(element, val == null ? 1 : val + 1); + } + + Map.Entry max = null; + + for (Map.Entry e : map.entrySet()) { + if (max == null || e.getValue() > max.getValue()) + max = e; + } + + return max.getKey(); } public Boolean contains(Integer valueToAdd) { - return null; + return iList.contains(valueToAdd); } } diff --git a/src/main/java/com/zipcodewilmington/assessment2/part2/Router.java b/src/main/java/com/zipcodewilmington/assessment2/part2/Router.java index 2267425..0f199ed 100644 --- a/src/main/java/com/zipcodewilmington/assessment2/part2/Router.java +++ b/src/main/java/com/zipcodewilmington/assessment2/part2/Router.java @@ -1,20 +1,52 @@ package com.zipcodewilmington.assessment2.part2; +import java.util.HashMap; +import java.util.Map; + public class Router { - public void add(String path, String controller) { + Map routing; + + public Router() + { + routing = new HashMap<>(); + } + + public void add(String path, String controller) + { + routing.put(path, controller); } - public Integer size() { - return null; + public Integer size() + { + return routing.size(); } public String getController(String path) { - return null; + return routing.get(path); } - public void update(String path, String studentController) { + public void update(String path, String studentController) + { + routing.replace(path, studentController); } - public void remove(String path) { + public void remove(String path) + { + routing.remove(path); + } + + @Override + public String toString() + { + StringBuilder output = new StringBuilder(); + Router router = new Router(); + for (Map.Entry pair : routing.entrySet()) { + String path = pair.getKey(); + String controller = pair.getValue(); + + output.append(path).append(controller).append('\n'); + } + + return output.toString(); } } From 8cb48ccab3c068a288c16557ddb583de9687b1a2 Mon Sep 17 00:00:00 2001 From: James Wilkinson Date: Fri, 6 Mar 2020 10:50:10 -0500 Subject: [PATCH 5/6] Removed unnecessary router from toString --- .../java/com/zipcodewilmington/assessment2/part2/Router.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/java/com/zipcodewilmington/assessment2/part2/Router.java b/src/main/java/com/zipcodewilmington/assessment2/part2/Router.java index 0f199ed..6e91381 100644 --- a/src/main/java/com/zipcodewilmington/assessment2/part2/Router.java +++ b/src/main/java/com/zipcodewilmington/assessment2/part2/Router.java @@ -39,7 +39,6 @@ public void remove(String path) public String toString() { StringBuilder output = new StringBuilder(); - Router router = new Router(); for (Map.Entry pair : routing.entrySet()) { String path = pair.getKey(); String controller = pair.getValue(); From 17065395c24a372a74eadccf242e113d7fdd213e Mon Sep 17 00:00:00 2001 From: James Wilkinson Date: Fri, 6 Mar 2020 11:02:55 -0500 Subject: [PATCH 6/6] Must debug Router.toString() --- .../assessment2/part2/ListUtility.java | 2 +- .../assessment2/part3/Bird.java | 16 +++++++++---- .../assessment2/part3/BlueJay.java | 12 +++++++++- .../assessment2/part3/Horse.java | 17 +++++++++++++- .../assessment2/part3/RedRobin.java | 23 ++++++++++++++++++- .../assessment2/part3/SpeedComparator.java | 10 +++++++- 6 files changed, 71 insertions(+), 9 deletions(-) diff --git a/src/main/java/com/zipcodewilmington/assessment2/part2/ListUtility.java b/src/main/java/com/zipcodewilmington/assessment2/part2/ListUtility.java index d8ca4c0..60a9bd7 100644 --- a/src/main/java/com/zipcodewilmington/assessment2/part2/ListUtility.java +++ b/src/main/java/com/zipcodewilmington/assessment2/part2/ListUtility.java @@ -11,7 +11,7 @@ public ListUtility() iList = new ArrayList<>(); } - public Boolean add(int i) { + public Boolean add(Integer i) { return iList.add(i); } diff --git a/src/main/java/com/zipcodewilmington/assessment2/part3/Bird.java b/src/main/java/com/zipcodewilmington/assessment2/part3/Bird.java index ee230c5..861f69e 100644 --- a/src/main/java/com/zipcodewilmington/assessment2/part3/Bird.java +++ b/src/main/java/com/zipcodewilmington/assessment2/part3/Bird.java @@ -1,11 +1,19 @@ package com.zipcodewilmington.assessment2.part3; -public class Bird { - public String move() { - return null; +public abstract class Bird implements Animal { + public String move() + { + return "fly"; } - public void setMigrationMonth(String expected) { + @Override + abstract public int getSpeed(); + + @Override + abstract public String color(); + + public void setMigrationMonth(String expected) + { } diff --git a/src/main/java/com/zipcodewilmington/assessment2/part3/BlueJay.java b/src/main/java/com/zipcodewilmington/assessment2/part3/BlueJay.java index f18d13a..a769157 100644 --- a/src/main/java/com/zipcodewilmington/assessment2/part3/BlueJay.java +++ b/src/main/java/com/zipcodewilmington/assessment2/part3/BlueJay.java @@ -1,4 +1,14 @@ package com.zipcodewilmington.assessment2.part3; -public class BlueJay { +public class BlueJay extends Bird +{ + @Override + public int getSpeed() { + return 13; + } + + @Override + public String color() { + return "blue"; + } } diff --git a/src/main/java/com/zipcodewilmington/assessment2/part3/Horse.java b/src/main/java/com/zipcodewilmington/assessment2/part3/Horse.java index e78cf2b..bd15246 100644 --- a/src/main/java/com/zipcodewilmington/assessment2/part3/Horse.java +++ b/src/main/java/com/zipcodewilmington/assessment2/part3/Horse.java @@ -1,4 +1,19 @@ package com.zipcodewilmington.assessment2.part3; -public class Horse{ +public class Horse implements Animal +{ + @Override + public String move() { + return "gallop"; + } + + @Override + public int getSpeed() { + return 40; + } + + @Override + public String color() { + return "brown"; + } } diff --git a/src/main/java/com/zipcodewilmington/assessment2/part3/RedRobin.java b/src/main/java/com/zipcodewilmington/assessment2/part3/RedRobin.java index c1e85f2..7c1f511 100644 --- a/src/main/java/com/zipcodewilmington/assessment2/part3/RedRobin.java +++ b/src/main/java/com/zipcodewilmington/assessment2/part3/RedRobin.java @@ -1,4 +1,25 @@ package com.zipcodewilmington.assessment2.part3; -public class RedRobin { +public class RedRobin extends Bird { + String migrationMonth; + + public void setMigrationMonth(String updatedMonth) + { + migrationMonth = updatedMonth; + } + + public String getMigrationMonth() + { + return migrationMonth; + } + + @Override + public int getSpeed() { + return 10; + } + + @Override + public String color() { + return "red"; + } } diff --git a/src/main/java/com/zipcodewilmington/assessment2/part3/SpeedComparator.java b/src/main/java/com/zipcodewilmington/assessment2/part3/SpeedComparator.java index 532e766..c569665 100644 --- a/src/main/java/com/zipcodewilmington/assessment2/part3/SpeedComparator.java +++ b/src/main/java/com/zipcodewilmington/assessment2/part3/SpeedComparator.java @@ -1,4 +1,12 @@ package com.zipcodewilmington.assessment2.part3; -public class SpeedComparator { +import java.util.Comparator; + +public class SpeedComparator implements Comparator +{ + + @Override + public int compare(Animal first, Animal second) { + return second.getSpeed() - first.getSpeed(); + } }