From 4a72cb8ecd89e262c52725aed1fa91812a6891b5 Mon Sep 17 00:00:00 2001 From: "koastiebratt@gmail.com" Date: Sat, 19 Sep 2020 14:09:46 -0400 Subject: [PATCH 1/3] What I've completed so far --- .../com/dtcc/exams/part1/BasicUtilities.java | 25 ++++++-- .../dtcc/exams/part1/DelTechConcatenator.java | 11 +++- .../exams/part1/IntegerArrayUtilities.java | 14 +++-- .../com/dtcc/exams/part2/ArrayUtility.java | 58 +++++++++++++++++-- .../com/dtcc/exams/part2/ListUtility.java | 52 +++++++++++++++-- .../java/com/dtcc/exams/part2/Router.java | 2 + src/main/java/com/dtcc/exams/part3/Bird.java | 11 ++-- src/main/java/com/dtcc/exams/part3/Horse.java | 17 +++++- .../com/dtcc/exams/part3/PeregrineFalcon.java | 12 +++- .../java/com/dtcc/exams/part3/RedRobin.java | 21 ++++++- .../com/dtcc/exams/part3/SpeedComparator.java | 4 ++ src/test/java/com/dtcc/exams/TestUtils.java | 1 - .../part1/basicutilities/StartsWithTest.java | 1 + .../part1/integerarrayutilites/RangeTest.java | 4 +- 14 files changed, 201 insertions(+), 32 deletions(-) diff --git a/src/main/java/com/dtcc/exams/part1/BasicUtilities.java b/src/main/java/com/dtcc/exams/part1/BasicUtilities.java index 640df37..911ebf2 100644 --- a/src/main/java/com/dtcc/exams/part1/BasicUtilities.java +++ b/src/main/java/com/dtcc/exams/part1/BasicUtilities.java @@ -3,19 +3,36 @@ public class BasicUtilities { public Boolean isGreaterThan5(Integer value) { - return null; + boolean temp_bool = false; + if(value >= 5){ + temp_bool = true; + } + return temp_bool; } public Boolean isLessThan7(Integer value) { - return null; + boolean temp_bool = false; + if(value <= 7){ + temp_bool = true; + } + return temp_bool; } public Boolean isBetween5And7(Integer valueToEvaluate) { - return null; + boolean temp_bool = false; + if(valueToEvaluate >= 5 && valueToEvaluate <=7){ + temp_bool = true; + } + return temp_bool; } public Boolean startsWith(String string, Character character) { - return null; + boolean temp_bool = false; + + if(string.toUpperCase().charAt(0) == character || string.toLowerCase().charAt(0) == character){ + temp_bool = true; + } + return temp_bool; } } \ No newline at end of file diff --git a/src/main/java/com/dtcc/exams/part1/DelTechConcatenator.java b/src/main/java/com/dtcc/exams/part1/DelTechConcatenator.java index 61abcdd..fce4a1d 100644 --- a/src/main/java/com/dtcc/exams/part1/DelTechConcatenator.java +++ b/src/main/java/com/dtcc/exams/part1/DelTechConcatenator.java @@ -2,19 +2,24 @@ public class DelTechConcatenator { + private Integer value; + public DelTechConcatenator(Integer input) { + this.value = input; } + public Integer getValue(){return this.value;} + public Boolean isDel() { - return null; + return (this.value%3 == 0); } public Boolean isTech() { - return null; + return (this.value%5 == 0); } public Boolean isDelTech() { - return null; + return ((this.value%5 == 0) && (this.value%3 == 0)); } } diff --git a/src/main/java/com/dtcc/exams/part1/IntegerArrayUtilities.java b/src/main/java/com/dtcc/exams/part1/IntegerArrayUtilities.java index a7e9aaa..c95b2d4 100644 --- a/src/main/java/com/dtcc/exams/part1/IntegerArrayUtilities.java +++ b/src/main/java/com/dtcc/exams/part1/IntegerArrayUtilities.java @@ -3,19 +3,25 @@ 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 range = Math.abs(stop - start); + Integer[] temp = new Integer[range + 1]; + int temp_val = start; + for(int i = 0; i < range + 1; i++){ + temp[i] = start++; + } + return temp; } 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/dtcc/exams/part2/ArrayUtility.java b/src/main/java/com/dtcc/exams/part2/ArrayUtility.java index 41885cb..277e936 100644 --- a/src/main/java/com/dtcc/exams/part2/ArrayUtility.java +++ b/src/main/java/com/dtcc/exams/part2/ArrayUtility.java @@ -1,21 +1,71 @@ package com.dtcc.exams.part2; +import java.util.Arrays; + public class ArrayUtility { public Integer[] merge(Integer[] array1, Integer[] array2) { - return null; + Integer[] temp = new Integer[(array1.length + array2.length)]; + System.arraycopy(array1, 0, temp, 0, array1.length); + System.arraycopy(array2, 0, temp, array1.length, array2.length); + return temp; } public Integer[] rotate(Integer[] array, Integer index) { - return null; + int j; + for(int i = 0; i < index; i++){ + int first_val; + first_val = array[0]; + for(j = 0; j < array.length-1; j++){ + //Shift element of array by one + array[j] = array[j+1]; + } + //First element of array will be added to the end + array[j] = first_val; + } + return array; } public Integer countOccurrence(Integer[] array1, Integer[] array2, Integer valueToEvaluate) { - return null; + int occurances = 0; + Integer[] temp = new Integer[(array1.length + array2.length)]; + + System.arraycopy(array1, 0, temp,0,array1.length); + System.arraycopy(array2,0,temp,array1.length, array2.length); + + //Cycle through entire array + for(int i = 0; i < temp.length; i++) { + if(valueToEvaluate == temp[i]){ + occurances+=1; + } + } + return occurances; } public Integer mostCommon(Integer[] array) { - return null; + Arrays.sort(array); + int most = 1; + //Most common value, start with array[0]; + int val = array[0]; + int current = 1; + + for (int i = 1; i < array.length; i++) { + if (array[i] == array[i - 1]){ + current++; + }else { + if (current > most) { + most = current; + val = array[i - 1]; + } + current = 1; + } + } + // If last element is most frequent + if (current > most) { + most = current; + val = array[array.length - 1]; + } + return val; } } diff --git a/src/main/java/com/dtcc/exams/part2/ListUtility.java b/src/main/java/com/dtcc/exams/part2/ListUtility.java index 4c4e910..42eaa5e 100644 --- a/src/main/java/com/dtcc/exams/part2/ListUtility.java +++ b/src/main/java/com/dtcc/exams/part2/ListUtility.java @@ -1,31 +1,71 @@ package com.dtcc.exams.part2; +import java.util.Arrays; import java.util.List; +import java.util.ArrayList; public class ListUtility { + private ArrayList 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() { - return null; + ArrayList temp = new ArrayList<>(); + for(int i = 0; i < list.size(); i++){ + if(!temp.contains(list.get(i))){ + temp.add(list.get(i)); + } + } + return temp; } + //I know this is lowkey cheating, but it works -\_(-_-)_/- public String join() { - return null; + String temp_string = list.get(0).toString(); + if(list.size() > 1) { + temp_string += ", "; + for (int i = 1; i < list.size()-1; i++) { + temp_string += list.get(i).toString() + ", "; + } + temp_string += list.get(list.size()-1).toString(); + } + return temp_string; } public Integer mostCommon() { - return null; + int most = 1; + //Most common value, start with array[0]; + int val = list.get(0); + int current = 1; + + for (int i = 1; i < list.size(); i++) { + if (list.get(i) == list.get(i-1)){ + current++; + }else { + if (current > most) { + most = current; + val = list.get(i-1); + } + current = 1; + } + } + // If last element is most frequent + if (current > most) { + most = current; + val = list.get(list.size()-1); + } + return val; } public Boolean contains(Integer valueToAdd) { - return null; + return list.contains(valueToAdd); } } diff --git a/src/main/java/com/dtcc/exams/part2/Router.java b/src/main/java/com/dtcc/exams/part2/Router.java index 3c699b6..29e6afa 100644 --- a/src/main/java/com/dtcc/exams/part2/Router.java +++ b/src/main/java/com/dtcc/exams/part2/Router.java @@ -3,6 +3,7 @@ public class Router { public void add(String path, String controller) { + } public Integer size() { @@ -14,6 +15,7 @@ public String getController(String path) { } public void update(String path, String studentController) { + } public void remove(String path) { diff --git a/src/main/java/com/dtcc/exams/part3/Bird.java b/src/main/java/com/dtcc/exams/part3/Bird.java index a24cbd8..67d8870 100644 --- a/src/main/java/com/dtcc/exams/part3/Bird.java +++ b/src/main/java/com/dtcc/exams/part3/Bird.java @@ -1,14 +1,15 @@ package com.dtcc.exams.part3; -public class Bird { +public abstract class Bird { + + private int speed; + private String move; public String move() { - return null; + return "fly"; } - public void setMigrationMonth(String expected) { - - } + public void setMigrationMonth(String expected) {} public String getMigrationMonth() { return null; diff --git a/src/main/java/com/dtcc/exams/part3/Horse.java b/src/main/java/com/dtcc/exams/part3/Horse.java index c02e088..121a17b 100644 --- a/src/main/java/com/dtcc/exams/part3/Horse.java +++ b/src/main/java/com/dtcc/exams/part3/Horse.java @@ -1,4 +1,19 @@ package com.dtcc.exams.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 "black"; + } } diff --git a/src/main/java/com/dtcc/exams/part3/PeregrineFalcon.java b/src/main/java/com/dtcc/exams/part3/PeregrineFalcon.java index b5c53b3..c4df0a8 100644 --- a/src/main/java/com/dtcc/exams/part3/PeregrineFalcon.java +++ b/src/main/java/com/dtcc/exams/part3/PeregrineFalcon.java @@ -1,4 +1,14 @@ package com.dtcc.exams.part3; -public class PeregrineFalcon { +public class PeregrineFalcon extends Bird implements Animal { + + @Override + public int getSpeed() { + return 13; + } + + @Override + public String color() { + return "brown"; + } } diff --git a/src/main/java/com/dtcc/exams/part3/RedRobin.java b/src/main/java/com/dtcc/exams/part3/RedRobin.java index 49fd626..95c2db5 100644 --- a/src/main/java/com/dtcc/exams/part3/RedRobin.java +++ b/src/main/java/com/dtcc/exams/part3/RedRobin.java @@ -1,4 +1,23 @@ package com.dtcc.exams.part3; -public class RedRobin { +public class RedRobin extends Bird implements Animal { + + private String migrationMonth; + + @Override + public int getSpeed() { + return 10; + } + + @Override + public String color() { + return "brown"; + } + + public void setMigrationMonth(String month){ + this.migrationMonth = month; + } + public String getMigrationMonth() { + return this.migrationMonth; + } } diff --git a/src/main/java/com/dtcc/exams/part3/SpeedComparator.java b/src/main/java/com/dtcc/exams/part3/SpeedComparator.java index 2aa8c7f..4b97bc4 100644 --- a/src/main/java/com/dtcc/exams/part3/SpeedComparator.java +++ b/src/main/java/com/dtcc/exams/part3/SpeedComparator.java @@ -1,4 +1,8 @@ package com.dtcc.exams.part3; public class SpeedComparator { + + public int compare(Animal animal1, Animal animal2){ + return (animal2.getSpeed()-animal1.getSpeed()); + } } diff --git a/src/test/java/com/dtcc/exams/TestUtils.java b/src/test/java/com/dtcc/exams/TestUtils.java index acd6404..e6d85b3 100644 --- a/src/test/java/com/dtcc/exams/TestUtils.java +++ b/src/test/java/com/dtcc/exams/TestUtils.java @@ -9,7 +9,6 @@ public class TestUtils { public static void assertArrayEquals(Object[] expected, Object[] actual) { Arrays.sort(actual); Arrays.sort(expected); - // then Assert.assertEquals(Arrays.toString(expected), Arrays.toString(actual)); } diff --git a/src/test/java/com/dtcc/exams/part1/basicutilities/StartsWithTest.java b/src/test/java/com/dtcc/exams/part1/basicutilities/StartsWithTest.java index ae7b5b5..641b8ba 100644 --- a/src/test/java/com/dtcc/exams/part1/basicutilities/StartsWithTest.java +++ b/src/test/java/com/dtcc/exams/part1/basicutilities/StartsWithTest.java @@ -17,6 +17,7 @@ public void test2() { @Test public void test3() { + test("jump", 'z', false); } diff --git a/src/test/java/com/dtcc/exams/part1/integerarrayutilites/RangeTest.java b/src/test/java/com/dtcc/exams/part1/integerarrayutilites/RangeTest.java index 07467c8..d8361d0 100644 --- a/src/test/java/com/dtcc/exams/part1/integerarrayutilites/RangeTest.java +++ b/src/test/java/com/dtcc/exams/part1/integerarrayutilites/RangeTest.java @@ -30,8 +30,8 @@ public void test3() { test(start, stop, expected); } - private void test(int start, int stop, Integer[] expected) { + // given IntegerArrayUtilities integerArrayUtilities = new IntegerArrayUtilities(); @@ -40,6 +40,6 @@ private void test(int start, int stop, Integer[] expected) { // then TestUtils.assertArrayEquals(expected, actual); - } + } } From f41d378b8a7382fc4f954a8bf9242e53b393b983 Mon Sep 17 00:00:00 2001 From: "koastiebratt@gmail.com" Date: Sun, 20 Sep 2020 15:00:00 -0400 Subject: [PATCH 2/3] One small issue left --- .../com/dtcc/exams/part1/BasicUtilities.java | 25 +++------------ .../java/com/dtcc/exams/part2/Router.java | 32 +++++++++++++------ src/main/java/com/dtcc/exams/part3/Horse.java | 4 +-- .../java/com/dtcc/exams/part3/RedRobin.java | 2 +- .../com/dtcc/exams/part3/SpeedComparator.java | 7 ++-- .../dtcc/exams/part2/router/ToStringTest.java | 4 +-- 6 files changed, 35 insertions(+), 39 deletions(-) diff --git a/src/main/java/com/dtcc/exams/part1/BasicUtilities.java b/src/main/java/com/dtcc/exams/part1/BasicUtilities.java index 911ebf2..693cb4b 100644 --- a/src/main/java/com/dtcc/exams/part1/BasicUtilities.java +++ b/src/main/java/com/dtcc/exams/part1/BasicUtilities.java @@ -3,36 +3,19 @@ public class BasicUtilities { public Boolean isGreaterThan5(Integer value) { - boolean temp_bool = false; - if(value >= 5){ - temp_bool = true; - } - return temp_bool; + return (value>=5); } public Boolean isLessThan7(Integer value) { - boolean temp_bool = false; - if(value <= 7){ - temp_bool = true; - } - return temp_bool; + return (value<=7); } public Boolean isBetween5And7(Integer valueToEvaluate) { - boolean temp_bool = false; - if(valueToEvaluate >= 5 && valueToEvaluate <=7){ - temp_bool = true; - } - return temp_bool; + return (valueToEvaluate >= 5 && valueToEvaluate <=7); } public Boolean startsWith(String string, Character character) { - boolean temp_bool = false; - - if(string.toUpperCase().charAt(0) == character || string.toLowerCase().charAt(0) == character){ - temp_bool = true; - } - return temp_bool; + return (string.toUpperCase().charAt(0) == character || string.toLowerCase().charAt(0) == character); } } \ No newline at end of file diff --git a/src/main/java/com/dtcc/exams/part2/Router.java b/src/main/java/com/dtcc/exams/part2/Router.java index 29e6afa..dd09ec9 100644 --- a/src/main/java/com/dtcc/exams/part2/Router.java +++ b/src/main/java/com/dtcc/exams/part2/Router.java @@ -1,24 +1,38 @@ package com.dtcc.exams.part2; -public class Router { - - public void add(String path, String controller) { +import java.util.HashMap; +import java.util.Map; - } +public class Router { + // + Map routerMap = new HashMap<>(); - public Integer size() { - return null; - } + public void add(String path, String controller) {routerMap.put(path, controller);} + public Integer size() {return routerMap.size();} public String getController(String path) { - return null; + return routerMap.get(path); } public void update(String path, String studentController) { - + routerMap.remove(path); + routerMap.put(path, studentController); } public void remove(String path) { + routerMap.remove(path); + } + + public String toString(){ + String temp_string=""; + + //Entries, each entry + for(Map.Entry m:this.routerMap.entrySet()){ + String key = (String)m.getKey(); + String value = (String)m.getValue(); + temp_string += (key + " -> " + value + "\n"); + } + return temp_string; } } diff --git a/src/main/java/com/dtcc/exams/part3/Horse.java b/src/main/java/com/dtcc/exams/part3/Horse.java index 121a17b..26fc8eb 100644 --- a/src/main/java/com/dtcc/exams/part3/Horse.java +++ b/src/main/java/com/dtcc/exams/part3/Horse.java @@ -3,9 +3,7 @@ public class Horse implements Animal{ @Override - public String move() { - return "gallop"; - } + public String move() {return "gallop";} @Override public int getSpeed() { diff --git a/src/main/java/com/dtcc/exams/part3/RedRobin.java b/src/main/java/com/dtcc/exams/part3/RedRobin.java index 95c2db5..0bc3edf 100644 --- a/src/main/java/com/dtcc/exams/part3/RedRobin.java +++ b/src/main/java/com/dtcc/exams/part3/RedRobin.java @@ -11,7 +11,7 @@ public int getSpeed() { @Override public String color() { - return "brown"; + return "red"; } public void setMigrationMonth(String month){ diff --git a/src/main/java/com/dtcc/exams/part3/SpeedComparator.java b/src/main/java/com/dtcc/exams/part3/SpeedComparator.java index 4b97bc4..2559250 100644 --- a/src/main/java/com/dtcc/exams/part3/SpeedComparator.java +++ b/src/main/java/com/dtcc/exams/part3/SpeedComparator.java @@ -1,8 +1,9 @@ package com.dtcc.exams.part3; -public class SpeedComparator { +import java.util.Comparator; - public int compare(Animal animal1, Animal animal2){ - return (animal2.getSpeed()-animal1.getSpeed()); +public class SpeedComparator implements Comparator { + + public int compare(Animal animal1, Animal animal2){return (animal2.getSpeed()-animal1.getSpeed()); } } diff --git a/src/test/java/com/dtcc/exams/part2/router/ToStringTest.java b/src/test/java/com/dtcc/exams/part2/router/ToStringTest.java index 4ade4ca..55c0bab 100644 --- a/src/test/java/com/dtcc/exams/part2/router/ToStringTest.java +++ b/src/test/java/com/dtcc/exams/part2/router/ToStringTest.java @@ -5,6 +5,7 @@ import org.junit.Test; public class ToStringTest { + @Test public void test1() { test( @@ -36,7 +37,6 @@ public void test4() { new Pair<>("/instructors", "InstructorController")); } - @Test public void test(Pair... pairs) { // given StringBuilder expectedString = new StringBuilder(); @@ -46,7 +46,7 @@ public void test(Pair... pairs) { String controller = pair.getValue(); router.add(path, controller); - expectedString.append(path).append(controller).append('\n'); + expectedString.append(path).append(" -> ").append(controller).append('\n'); } From 2e04d69f59b95ead357f35be60f42be4d58ea92f Mon Sep 17 00:00:00 2001 From: "koastiebratt@gmail.com" Date: Sun, 20 Sep 2020 18:06:09 -0400 Subject: [PATCH 3/3] Finished --- src/main/java/com/dtcc/exams/part2/Router.java | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/dtcc/exams/part2/Router.java b/src/main/java/com/dtcc/exams/part2/Router.java index dd09ec9..cfe75a0 100644 --- a/src/main/java/com/dtcc/exams/part2/Router.java +++ b/src/main/java/com/dtcc/exams/part2/Router.java @@ -1,13 +1,15 @@ package com.dtcc.exams.part2; import java.util.HashMap; +import java.util.LinkedHashMap; import java.util.Map; public class Router { // - Map routerMap = new HashMap<>(); + Map routerMap = new LinkedHashMap<>(); public void add(String path, String controller) {routerMap.put(path, controller);} + public Integer size() {return routerMap.size();} public String getController(String path) { @@ -19,15 +21,14 @@ public void update(String path, String studentController) { routerMap.put(path, studentController); } - public void remove(String path) { - routerMap.remove(path); + public void remove(String path) {routerMap.remove(path); } public String toString(){ String temp_string=""; //Entries, each entry - for(Map.Entry m:this.routerMap.entrySet()){ + for(Map.Entry m:routerMap.entrySet()){ String key = (String)m.getKey(); String value = (String)m.getValue(); temp_string += (key + " -> " + value + "\n");