From a9a51a508925b06a22d3d173878298405ca70e11 Mon Sep 17 00:00:00 2001 From: sandeep Date: Fri, 6 Mar 2020 11:00:04 -0500 Subject: [PATCH 1/2] Complete part 1 and part 3 --- .../assessment2/part1/BasicUtilities.java | 10 +-- .../part1/IntegerArrayUtilities.java | 17 +++-- .../assessment2/part1/WuTangConcatenator.java | 28 ++++---- .../assessment2/part2/ArrayUtility.java | 71 +++++++++++++++++-- .../assessment2/part2/ListUtility.java | 31 ++++++-- .../assessment2/part2/Router.java | 30 +++++++- .../assessment2/part3/Bird.java | 17 +++-- .../assessment2/part3/BlueJay.java | 10 ++- .../assessment2/part3/Horse.java | 16 ++++- .../assessment2/part3/RedRobin.java | 23 +++++- .../assessment2/part3/SpeedComparator.java | 10 ++- .../part2/listutility/AddTest.java | 1 + 12 files changed, 224 insertions(+), 40 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..e810e67 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 (5<=valueToEvaluate && valueToEvaluate<=7); } public Boolean startsWith(String string, Character character) { - return null; + 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..7002ce1 100644 --- a/src/main/java/com/zipcodewilmington/assessment2/part1/IntegerArrayUtilities.java +++ b/src/main/java/com/zipcodewilmington/assessment2/part1/IntegerArrayUtilities.java @@ -1,19 +1,28 @@ 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; + + Integer[] newArray = new Integer[stop - start + 1]; + int idx = 0; + for (int i = stop; i >= start; i--){ + newArray[idx] = i; + idx++; + } + return newArray; } 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..d73e1dd 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) { - } - public Boolean isWu() { - return null; - } + Integer input; - public Boolean isTang() { - return null; - } + public WuTangConcatenator(Integer input) { + this.input = input; + } - public Boolean isWuTang() { - return null; - } -} + public Boolean isWu() { + return input % 3 == 0; + } + + public Boolean isTang() { + return input % 5 == 0; + } + + public Boolean isWuTang() { + return isTang() && isWu(); + } + } \ No newline at end of file diff --git a/src/main/java/com/zipcodewilmington/assessment2/part2/ArrayUtility.java b/src/main/java/com/zipcodewilmington/assessment2/part2/ArrayUtility.java index de2f799..805c771 100644 --- a/src/main/java/com/zipcodewilmington/assessment2/part2/ArrayUtility.java +++ b/src/main/java/com/zipcodewilmington/assessment2/part2/ArrayUtility.java @@ -1,19 +1,80 @@ package com.zipcodewilmington.assessment2.part2; +import java.util.Map; +import java.util.TreeMap; + public class ArrayUtility { public Integer[] merge(Integer[] array1, Integer[] array2) { - return null; + + Integer[] newArray = new Integer[array1.length + array2.length]; + for (int i = 0; i < array1.length; i++) { + newArray[i] = array1[i]; + } + + for (int j = 0; j < array2.length; j++) newArray[j + array1.length] = array2[j]; + + return newArray; } public Integer[] rotate(Integer[] array, Integer index) { - return null; + + Integer[] newArray = new Integer[array.length]; + for (int i = 0; i < array.length; i++) { + if (i - index < 0) { + newArray[array.length - index + i] = array[i]; + } else { + newArray[i - index] = array[i]; + } + } + return newArray; } public Integer countOccurrence(Integer[] array1, Integer[] array2, Integer valueToEvaluate) { - return null; + + int c = 0; + for(Integer i : array1){ + if(i == valueToEvaluate){ + c++; + } + } + for(Integer i : array2){ + if(i == valueToEvaluate){ + c++; + } + } + return c; } - public Integer mostCommon(Integer[] array) { - return null; + public static Integer mostCommon(Integer[] array) { + + Map c = new TreeMap<>(); + int nc = 0; + for (int i = 0; i < array.length; i++) { + if (array[i] != null) { + Integer count = c.get(array[i]); + if (count == null) { + c.put(array[i], 1); + } else { + c.put(array[i], count++); + } + } else { + nc++; + } + } + + + Integer maxKey = null; + int maxValue = 0; + + for (Map.Entry e : c.entrySet()) { + if (e.getValue() >= maxValue) { + maxKey = e.getKey(); + maxValue = e.getValue(); + } + } + if (nc > maxValue) { + return null; + } + return maxKey; } } diff --git a/src/main/java/com/zipcodewilmington/assessment2/part2/ListUtility.java b/src/main/java/com/zipcodewilmington/assessment2/part2/ListUtility.java index e978685..85f9741 100644 --- a/src/main/java/com/zipcodewilmington/assessment2/part2/ListUtility.java +++ b/src/main/java/com/zipcodewilmington/assessment2/part2/ListUtility.java @@ -1,14 +1,23 @@ package com.zipcodewilmington.assessment2.part2; +import java.util.ArrayList; import java.util.List; public class ListUtility { + + private List list = new ArrayList<>(); + public Boolean add(int i) { - return null; + +// if(i = null){ +// list.add(null); +// } + list.add(i); + return this.contains(i); } public Integer size() { - return null; + return list.size(); } public List getUnique() { @@ -16,11 +25,25 @@ public List getUnique() { } public String join() { - return null; + + String c = list.get(0).toString(); + if( list.size() ==1) { + return list.get(0).toString(); + } + else + for (int i = 1; i < list.size(); i++){ + c = c + ", " +list.get(i) ; + } + return c; } public Integer mostCommon() { - return null; + + Integer[] array = new Integer[list.size()]; + array = list.toArray(array); + // if (list.contains(null)) return null; +// else + return ArrayUtility.mostCommon(array); } public Boolean contains(Integer 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..d228bc9 100644 --- a/src/main/java/com/zipcodewilmington/assessment2/part2/Router.java +++ b/src/main/java/com/zipcodewilmington/assessment2/part2/Router.java @@ -1,20 +1,44 @@ package com.zipcodewilmington.assessment2.part2; +import java.util.Map; +import java.util.TreeMap; + public class Router { + + Map map = new TreeMap<>(); + public void add(String path, String controller) { + + map.put(path, controller); } public Integer size() { - return null; + + return map.keySet().size(); } public String getController(String path) { - return null; + + return map.get(path); } public void update(String path, String studentController) { + + add(path, studentController); } public void remove(String path) { + + map.put(path, null); + } + + public String toString() { + + String s = ""; + + for (String path : map.keySet()) { + s = s + path + " -> " + map.get(path) + "\n"; + } + return s; } -} +} \ 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..09798c4 100644 --- a/src/main/java/com/zipcodewilmington/assessment2/part3/Bird.java +++ b/src/main/java/com/zipcodewilmington/assessment2/part3/Bird.java @@ -1,7 +1,18 @@ package com.zipcodewilmington.assessment2.part3; -public class Bird { +public class Bird implements Animal{ + public String move() { + return "fly"; + } + + @Override + public int getSpeed() { + return 0; + } + + @Override + public String color() { return null; } @@ -9,7 +20,5 @@ public void setMigrationMonth(String expected) { } - public String getMigrationMonth() { - return null; - } + public String getMigrationMonth() { return null; } } diff --git a/src/main/java/com/zipcodewilmington/assessment2/part3/BlueJay.java b/src/main/java/com/zipcodewilmington/assessment2/part3/BlueJay.java index f18d13a..7ed3842 100644 --- a/src/main/java/com/zipcodewilmington/assessment2/part3/BlueJay.java +++ b/src/main/java/com/zipcodewilmington/assessment2/part3/BlueJay.java @@ -1,4 +1,12 @@ package com.zipcodewilmington.assessment2.part3; -public class BlueJay { +public class BlueJay extends Bird{ + + public String color() { + return "blue"; + } + + public int getSpeed() { + return 13; + } } 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..352d549 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{ + + private String migrationMonth; + + public String color() { + return "red"; + } + + public int getSpeed() { + return 10; + } + + public void setMigrationMonth(String expected) { + + this.migrationMonth = expected; + + } + + public String getMigrationMonth() { + + return this.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..f4e33e5 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 o1, Animal o2) { + return o2.getSpeed() - o1.getSpeed(); + } } diff --git a/src/test/java/com/zipcodewilmington/assessment2/part2/listutility/AddTest.java b/src/test/java/com/zipcodewilmington/assessment2/part2/listutility/AddTest.java index 418e7be..2dbeaef 100644 --- a/src/test/java/com/zipcodewilmington/assessment2/part2/listutility/AddTest.java +++ b/src/test/java/com/zipcodewilmington/assessment2/part2/listutility/AddTest.java @@ -27,6 +27,7 @@ public void test4() { private void test(Integer valueToAdd){ + // given ListUtility utility = new ListUtility(); Assert.assertFalse(utility.contains(valueToAdd)); From 31deef80ef571cf1fba8f771f04eb342f81d1b3e Mon Sep 17 00:00:00 2001 From: sandeep Date: Fri, 6 Mar 2020 11:20:33 -0500 Subject: [PATCH 2/2] 80 of 86 tests passing --- .../assessment2/part2/ListUtility.java | 23 +++++++++++-------- 1 file changed, 14 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 85f9741..15d43d5 100644 --- a/src/main/java/com/zipcodewilmington/assessment2/part2/ListUtility.java +++ b/src/main/java/com/zipcodewilmington/assessment2/part2/ListUtility.java @@ -7,22 +7,29 @@ public class ListUtility { private List list = new ArrayList<>(); - public Boolean add(int i) { + public Boolean add(Integer i) { -// if(i = null){ -// list.add(null); -// } + if(i == null){ + list.add(null); + } list.add(i); - return this.contains(i); + return list.contains(i); } public Integer size() { return list.size(); } - public List getUnique() { - return null; + public List getUnique(){ + + List newList = new ArrayList<>(); + for(Integer i : list){ + if (!newList.contains(i)){ + newList.add(i); + } } + return newList; +} public String join() { @@ -41,8 +48,6 @@ public Integer mostCommon() { Integer[] array = new Integer[list.size()]; array = list.toArray(array); - // if (list.contains(null)) return null; -// else return ArrayUtility.mostCommon(array); }