From 1fc166c78f36e85f2521d991a474e33346ddd4bf Mon Sep 17 00:00:00 2001 From: hlin Date: Fri, 6 Mar 2020 11:01:31 -0500 Subject: [PATCH 1/6] Half way done --- .../assessment2/part1/BasicUtilities.java | 12 ++++-- .../part1/IntegerArrayUtilities.java | 23 +++++++++-- .../assessment2/part1/WuTangConcatenator.java | 10 +++-- .../assessment2/part2/ArrayUtility.java | 40 +++++++++++++++++-- .../part2/arrayutility/RotateTest.java | 1 + 5 files changed, 72 insertions(+), 14 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..befd7ce 100644 --- a/src/main/java/com/zipcodewilmington/assessment2/part1/BasicUtilities.java +++ b/src/main/java/com/zipcodewilmington/assessment2/part1/BasicUtilities.java @@ -2,18 +2,22 @@ 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 (Character.isUpperCase(string.charAt(0))) { + string.toLowerCase().charAt(0); + } + + 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..506ebef 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]; + + for (int i = 0; i < arr.length; i++) { + for (int j = start; j < stop; j++) { + arr[i] = j; + } + } + 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..54cfafe 100644 --- a/src/main/java/com/zipcodewilmington/assessment2/part2/ArrayUtility.java +++ b/src/main/java/com/zipcodewilmington/assessment2/part2/ArrayUtility.java @@ -1,18 +1,52 @@ package com.zipcodewilmington.assessment2.part2; 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; } 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 From 739d2522d61d5ef2425c361b4ee0fe06135a33fe Mon Sep 17 00:00:00 2001 From: hlin Date: Fri, 6 Mar 2020 11:27:57 -0500 Subject: [PATCH 2/6] Stuck on List --- .../assessment2/part2/ArrayUtility.java | 26 ++++++++++++++++++- .../assessment2/part2/ListUtility.java | 17 +++++++++--- 2 files changed, 39 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/zipcodewilmington/assessment2/part2/ArrayUtility.java b/src/main/java/com/zipcodewilmington/assessment2/part2/ArrayUtility.java index 54cfafe..5e9e9cb 100644 --- a/src/main/java/com/zipcodewilmington/assessment2/part2/ArrayUtility.java +++ b/src/main/java/com/zipcodewilmington/assessment2/part2/ArrayUtility.java @@ -1,5 +1,9 @@ package com.zipcodewilmington.assessment2.part2; +import java.util.HashMap; +import java.util.Map; + + public class ArrayUtility { @@ -48,6 +52,26 @@ public Integer countOccurrence(Integer[] array1, Integer[] array2, Integer value public Integer mostCommon(Integer[] array) { - return null; + Map map = new HashMap<>(); + + for (int i = 0; i < array.length; i++) { + int key = array[i]; + if (map.containsKey(key)) { + int freq = map.get(key); + freq++; + map.put(key,freq); + } else { + map.put(key,1); + } + } + int maxCount = 0; + int 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..7eb77db 100644 --- a/src/main/java/com/zipcodewilmington/assessment2/part2/ListUtility.java +++ b/src/main/java/com/zipcodewilmington/assessment2/part2/ListUtility.java @@ -1,14 +1,22 @@ package com.zipcodewilmington.assessment2.part2; +import java.util.ArrayList; import java.util.List; public class ListUtility { + + List list; + + public ListUtility() { + this.list = new ArrayList<>(); + } + public Boolean add(int i) { - return null; + return list.add(i); } public Integer size() { - return null; + return list.size(); } public List getUnique() { @@ -24,6 +32,9 @@ public Integer mostCommon() { } public Boolean contains(Integer valueToAdd) { - return null; + if (valueToAdd == null) { + return null; + } + return list.contains(valueToAdd); } } From c9b6bc69b467bb854c9994e0ce4c4ff5e84292b7 Mon Sep 17 00:00:00 2001 From: hlin Date: Fri, 6 Mar 2020 12:16:32 -0500 Subject: [PATCH 3/6] Fix part 1 --- .../assessment2/part1/BasicUtilities.java | 6 ++---- .../part1/IntegerArrayUtilities.java | 10 +++++----- .../assessment2/part3/Bird.java | 5 +++-- .../assessment2/part3/BlueJay.java | 12 +++++++++++- .../assessment2/part3/Horse.java | 16 +++++++++++++++- .../assessment2/part3/RedRobin.java | 18 +++++++++++++++++- .../assessment2/part3/SpeedComparator.java | 10 +++++++++- 7 files changed, 62 insertions(+), 15 deletions(-) diff --git a/src/main/java/com/zipcodewilmington/assessment2/part1/BasicUtilities.java b/src/main/java/com/zipcodewilmington/assessment2/part1/BasicUtilities.java index befd7ce..c1b0c4f 100644 --- a/src/main/java/com/zipcodewilmington/assessment2/part1/BasicUtilities.java +++ b/src/main/java/com/zipcodewilmington/assessment2/part1/BasicUtilities.java @@ -14,10 +14,8 @@ public Boolean isBetween5And7(Integer valueToEvaluate) { } public Boolean startsWith(String string, Character character) { - if (Character.isUpperCase(string.charAt(0))) { - string.toLowerCase().charAt(0); - } - + 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 506ebef..a3285aa 100644 --- a/src/main/java/com/zipcodewilmington/assessment2/part1/IntegerArrayUtilities.java +++ b/src/main/java/com/zipcodewilmington/assessment2/part1/IntegerArrayUtilities.java @@ -13,12 +13,12 @@ public Integer[] range(int start, int stop) { for (int i = start; i < stop; i++) { counter++; } - Integer[] arr = new Integer[counter + 1]; - for (int i = 0; i < arr.length; i++) { - for (int j = start; j < stop; j++) { - arr[i] = j; - } + Integer[] arr = new Integer[counter + 1]; + int counter2 = 0; + for (int k = start; k <= stop; k++) { + arr[counter2] = k; + counter2++; } return arr; } 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; + } } From 49a4de2d7178c2e9148fd31b9d5fe325213d65d1 Mon Sep 17 00:00:00 2001 From: hlin Date: Fri, 6 Mar 2020 13:58:56 -0500 Subject: [PATCH 4/6] Pass one more test class --- .../assessment2/part2/ListUtility.java | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/zipcodewilmington/assessment2/part2/ListUtility.java b/src/main/java/com/zipcodewilmington/assessment2/part2/ListUtility.java index 7eb77db..6d07302 100644 --- a/src/main/java/com/zipcodewilmington/assessment2/part2/ListUtility.java +++ b/src/main/java/com/zipcodewilmington/assessment2/part2/ListUtility.java @@ -1,6 +1,7 @@ package com.zipcodewilmington.assessment2.part2; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; public class ListUtility { @@ -24,16 +25,26 @@ public List getUnique() { } 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) { if (valueToAdd == null) { - return null; + return true; } return list.contains(valueToAdd); } From 9fef92a63f7afbe1b434df747229faea824562ab Mon Sep 17 00:00:00 2001 From: hlin Date: Fri, 6 Mar 2020 16:57:36 -0500 Subject: [PATCH 5/6] Not Done --- .../assessment2/part2/ArrayUtility.java | 10 +++--- .../assessment2/part2/ListUtility.java | 23 ++++++++------ .../assessment2/part2/Router.java | 31 +++++++++++++++++-- .../part2/router/ToStringTest.java | 2 +- 4 files changed, 48 insertions(+), 18 deletions(-) diff --git a/src/main/java/com/zipcodewilmington/assessment2/part2/ArrayUtility.java b/src/main/java/com/zipcodewilmington/assessment2/part2/ArrayUtility.java index 5e9e9cb..9e92b67 100644 --- a/src/main/java/com/zipcodewilmington/assessment2/part2/ArrayUtility.java +++ b/src/main/java/com/zipcodewilmington/assessment2/part2/ArrayUtility.java @@ -1,5 +1,6 @@ package com.zipcodewilmington.assessment2.part2; + import java.util.HashMap; import java.util.Map; @@ -55,17 +56,18 @@ public Integer mostCommon(Integer[] array) { Map map = new HashMap<>(); for (int i = 0; i < array.length; i++) { - int key = array[i]; + Integer key = array[i]; if (map.containsKey(key)) { - int freq = map.get(key); + Integer freq = map.get(key); freq++; map.put(key,freq); } else { map.put(key,1); } } - int maxCount = 0; - int result = -1; + + Integer maxCount = 0; + Integer result = -1; for(Map.Entry val : map.entrySet()) { if (maxCount < val.getValue()) { result = val.getKey(); diff --git a/src/main/java/com/zipcodewilmington/assessment2/part2/ListUtility.java b/src/main/java/com/zipcodewilmington/assessment2/part2/ListUtility.java index 6d07302..0001986 100644 --- a/src/main/java/com/zipcodewilmington/assessment2/part2/ListUtility.java +++ b/src/main/java/com/zipcodewilmington/assessment2/part2/ListUtility.java @@ -12,18 +12,22 @@ public ListUtility() { this.list = new ArrayList<>(); } - public Boolean add(int i) { - return list.add(i); - } - public Integer size() { - return list.size(); - } + public Boolean add(Integer i) { return list.add(i); } + + + public Integer size() { return list.size(); } + public List getUnique() { + List list2 = new ArrayList<>(); + for (Integer inter : list2) { + list2.add(inter); + } return null; } + public String join() { Integer[] result = new Integer[list.size()]; for (int i = 0; i < result.length; i++) { @@ -32,20 +36,19 @@ public String join() { return Arrays.toString(result).replaceAll("\\[|]|", ""); } + public Integer mostCommon() { + 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) { - if (valueToAdd == null) { - return true; - } 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..c02593f 100644 --- a/src/main/java/com/zipcodewilmington/assessment2/part2/Router.java +++ b/src/main/java/com/zipcodewilmington/assessment2/part2/Router.java @@ -1,20 +1,45 @@ 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); + } + + @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/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(); From eb3880d63d5d7ca8d5dd3234ab4ffa9956405334 Mon Sep 17 00:00:00 2001 From: hlin Date: Tue, 10 Mar 2020 09:19:28 -0400 Subject: [PATCH 6/6] Still need work --- .../com/zipcodewilmington/assessment2/part2/ListUtility.java | 2 +- .../java/com/zipcodewilmington/assessment2/part2/Router.java | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/zipcodewilmington/assessment2/part2/ListUtility.java b/src/main/java/com/zipcodewilmington/assessment2/part2/ListUtility.java index 0001986..862c331 100644 --- a/src/main/java/com/zipcodewilmington/assessment2/part2/ListUtility.java +++ b/src/main/java/com/zipcodewilmington/assessment2/part2/ListUtility.java @@ -18,7 +18,7 @@ public ListUtility() { public Integer size() { return list.size(); } - +// TODO: getUnique public List getUnique() { List list2 = new ArrayList<>(); for (Integer inter : list2) { diff --git a/src/main/java/com/zipcodewilmington/assessment2/part2/Router.java b/src/main/java/com/zipcodewilmington/assessment2/part2/Router.java index c02593f..503e680 100644 --- a/src/main/java/com/zipcodewilmington/assessment2/part2/Router.java +++ b/src/main/java/com/zipcodewilmington/assessment2/part2/Router.java @@ -30,6 +30,8 @@ public void remove(String path) { this.map.remove(path); } + + // TODO: toString @Override public String toString() {