diff --git a/src/main/java/com/zipcodewilmington/assessment2/part1/BasicUtilities.java b/src/main/java/com/zipcodewilmington/assessment2/part1/BasicUtilities.java index 1402353..c1b0c4f 100644 --- a/src/main/java/com/zipcodewilmington/assessment2/part1/BasicUtilities.java +++ b/src/main/java/com/zipcodewilmington/assessment2/part1/BasicUtilities.java @@ -2,18 +2,20 @@ 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; + if (string.toLowerCase().charAt(0) == character) return true; + if (string.toUpperCase().charAt(0) == character) return true; + return string.charAt(0) == character; } } diff --git a/src/main/java/com/zipcodewilmington/assessment2/part1/IntegerArrayUtilities.java b/src/main/java/com/zipcodewilmington/assessment2/part1/IntegerArrayUtilities.java index a360000..a3285aa 100644 --- a/src/main/java/com/zipcodewilmington/assessment2/part1/IntegerArrayUtilities.java +++ b/src/main/java/com/zipcodewilmington/assessment2/part1/IntegerArrayUtilities.java @@ -1,19 +1,34 @@ package com.zipcodewilmington.assessment2.part1; + public class IntegerArrayUtilities { public Boolean hasEvenLength(Integer[] array) { - return null; + return array.length % 2 == 0; } + public Integer[] range(int start, int stop) { - return null; + + int counter = 0; + for (int i = start; i < stop; i++) { + counter++; + } + + Integer[] arr = new Integer[counter + 1]; + int counter2 = 0; + for (int k = start; k <= stop; k++) { + arr[counter2] = k; + counter2++; + } + return arr; } + public Integer getSumOfFirstTwo(Integer[] array) { - return null; + return array[0] + array[1]; } public Integer getProductOfFirstTwo(Integer[] array) { - return null; + 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..d11f2c1 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 { + + Integer input; + public WuTangConcatenator(Integer input) { + this.input = input; } public Boolean isWu() { - return null; + return this.input % 3 == 0; } public Boolean isTang() { - return null; + return this.input % 5 == 0; } public Boolean isWuTang() { - return null; + return this.input % 15 == 0; } } diff --git a/src/main/java/com/zipcodewilmington/assessment2/part2/ArrayUtility.java b/src/main/java/com/zipcodewilmington/assessment2/part2/ArrayUtility.java index de2f799..9e92b67 100644 --- a/src/main/java/com/zipcodewilmington/assessment2/part2/ArrayUtility.java +++ b/src/main/java/com/zipcodewilmington/assessment2/part2/ArrayUtility.java @@ -1,19 +1,79 @@ package com.zipcodewilmington.assessment2.part2; + +import java.util.HashMap; +import java.util.Map; + + public class ArrayUtility { + + public Integer[] merge(Integer[] array1, Integer[] array2) { - return null; + Integer[] newArr = new Integer[array1.length + array2.length]; + int counter = 0; + + for (int i = 0; i < array1.length; i++) { + newArr[i] = array1[i]; + counter++; + } + for (int j = 0; j < array2.length; j++) { + newArr[counter++] = array2[j]; + } + return newArr; } + public Integer[] rotate(Integer[] array, Integer index) { - return null; + + for (int i = 0; i < index; i++) { + int k; + int temp = array[0]; + + for (k = 0; k < array.length - 1; k++) { + array[k] = array[k + 1]; + } + array[k] = temp; + } + return array; } + public Integer countOccurrence(Integer[] array1, Integer[] array2, Integer valueToEvaluate) { - return null; + int counter = 0; + int counter2 = 0; + + for (Integer value1 : array1) { + if (value1.equals(valueToEvaluate)) counter++; + } + for (Integer value2 : array2) { + if (value2.equals(valueToEvaluate)) counter2++; + } + return counter + counter2; } + public Integer mostCommon(Integer[] array) { - return null; + Map map = new HashMap<>(); + + for (int i = 0; i < array.length; i++) { + Integer key = array[i]; + if (map.containsKey(key)) { + Integer freq = map.get(key); + freq++; + map.put(key,freq); + } else { + map.put(key,1); + } + } + + Integer maxCount = 0; + Integer result = -1; + for(Map.Entry val : map.entrySet()) { + if (maxCount < val.getValue()) { + result = val.getKey(); + maxCount = val.getValue(); + } + } + return result; } } diff --git a/src/main/java/com/zipcodewilmington/assessment2/part2/ListUtility.java b/src/main/java/com/zipcodewilmington/assessment2/part2/ListUtility.java index e978685..862c331 100644 --- a/src/main/java/com/zipcodewilmington/assessment2/part2/ListUtility.java +++ b/src/main/java/com/zipcodewilmington/assessment2/part2/ListUtility.java @@ -1,29 +1,54 @@ package com.zipcodewilmington.assessment2.part2; +import java.util.ArrayList; +import java.util.Arrays; import java.util.List; public class ListUtility { - public Boolean add(int i) { - return null; - } - public Integer size() { - return null; + List list; + + public ListUtility() { + this.list = new ArrayList<>(); } + + public Boolean add(Integer i) { return list.add(i); } + + + public Integer size() { return list.size(); } + +// TODO: getUnique public List getUnique() { + List list2 = new ArrayList<>(); + for (Integer inter : list2) { + list2.add(inter); + } return null; } + public String join() { - return null; + Integer[] result = new Integer[list.size()]; + for (int i = 0; i < result.length; i++) { + result[i] = list.get(i); + } + return Arrays.toString(result).replaceAll("\\[|]|", ""); } + public Integer mostCommon() { - return null; + + ArrayUtility arrayUtility = new ArrayUtility(); + Integer[] result = new Integer[list.size()]; + for (int i = 0; i < result.length; i++) { + result[i] = list.get(i); + } + return arrayUtility.mostCommon(result); } + public Boolean contains(Integer valueToAdd) { - return null; + return list.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..503e680 100644 --- a/src/main/java/com/zipcodewilmington/assessment2/part2/Router.java +++ b/src/main/java/com/zipcodewilmington/assessment2/part2/Router.java @@ -1,20 +1,47 @@ package com.zipcodewilmington.assessment2.part2; +import java.util.LinkedHashMap; +import java.util.Map; + + public class Router { + + Map map; + + public Router() { this.map = new LinkedHashMap<>(); } + public void add(String path, String controller) { + map.put(path, controller); } public Integer size() { - return null; + return this.map.size(); } public String getController(String path) { - return null; + return this.map.get(path); } public void update(String path, String studentController) { + this.map.replace(path, studentController); } public void remove(String path) { + this.map.remove(path); + } + + + // TODO: toString + @Override + public String toString() { + + StringBuilder sb = new StringBuilder(); + for (Map.Entry entry : map.entrySet()){ + String path = entry.getKey(); + String controller = entry.getValue(); + + sb.append(path).append(controller).append('\n'); + } + return sb.toString(); } -} +} \ No newline at end of file diff --git a/src/main/java/com/zipcodewilmington/assessment2/part3/Bird.java b/src/main/java/com/zipcodewilmington/assessment2/part3/Bird.java index ee230c5..14101cb 100644 --- a/src/main/java/com/zipcodewilmington/assessment2/part3/Bird.java +++ b/src/main/java/com/zipcodewilmington/assessment2/part3/Bird.java @@ -1,8 +1,9 @@ package com.zipcodewilmington.assessment2.part3; -public class Bird { +public abstract class Bird implements Animal{ + public String move() { - return null; + return "fly"; } 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..dd8bcbe 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..e033c1c 100644 --- a/src/main/java/com/zipcodewilmington/assessment2/part3/Horse.java +++ b/src/main/java/com/zipcodewilmington/assessment2/part3/Horse.java @@ -1,4 +1,18 @@ 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..804a1b3 100644 --- a/src/main/java/com/zipcodewilmington/assessment2/part3/RedRobin.java +++ b/src/main/java/com/zipcodewilmington/assessment2/part3/RedRobin.java @@ -1,4 +1,20 @@ package com.zipcodewilmington.assessment2.part3; -public class RedRobin { +public class RedRobin extends Bird{ + + String migrationMonth; + + @Override + public int getSpeed() { + return 10; + } + + @Override + public String color() { + return "red"; + } + + public String getMigrationMonth() { return this.migrationMonth; } + + public void setMigrationMonth(String migrationMonth) { this.migrationMonth = migrationMonth; } } diff --git a/src/main/java/com/zipcodewilmington/assessment2/part3/SpeedComparator.java b/src/main/java/com/zipcodewilmington/assessment2/part3/SpeedComparator.java index 532e766..21ed3a2 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 animal1, Animal animal2) { + if (animal1.getSpeed() > animal2.getSpeed()) return -1; + if (animal1.getSpeed() < animal2.getSpeed()) return 1; + return 0; + } } diff --git a/src/test/java/com/zipcodewilmington/assessment2/part2/arrayutility/RotateTest.java b/src/test/java/com/zipcodewilmington/assessment2/part2/arrayutility/RotateTest.java index 523f355..2f08f74 100644 --- a/src/test/java/com/zipcodewilmington/assessment2/part2/arrayutility/RotateTest.java +++ b/src/test/java/com/zipcodewilmington/assessment2/part2/arrayutility/RotateTest.java @@ -25,6 +25,7 @@ public void testRotateLeft_forOne(){ //Then Assert.assertArrayEquals(expected, actual); + System.out.println(actual); } @Test diff --git a/src/test/java/com/zipcodewilmington/assessment2/part2/router/ToStringTest.java b/src/test/java/com/zipcodewilmington/assessment2/part2/router/ToStringTest.java index b199783..e09eb02 100644 --- a/src/test/java/com/zipcodewilmington/assessment2/part2/router/ToStringTest.java +++ b/src/test/java/com/zipcodewilmington/assessment2/part2/router/ToStringTest.java @@ -36,7 +36,7 @@ public void test4() { new Pair<>("/instructors", "InstructorController")); } - @Test + public void test(Pair... pairs) { // given StringBuilder expectedString = new StringBuilder();