Bladeren bron

Finished very good reference

Nicholas Maidanos 6 jaren geleden
bovenliggende
commit
0b9280e166

BIN
.DS_Store Bestand weergeven


+ 10
- 0
src/main/java/ArrayListCombiner/ArrayListCombiner.java Bestand weergeven

@@ -1,5 +1,7 @@
1 1
 package ArrayListCombiner;
2 2
 
3
+import Employee.Employee;
4
+
3 5
 import java.util.ArrayList;
4 6
 
5 7
 /**
@@ -9,4 +11,12 @@ import java.util.ArrayList;
9 11
  * The second method should be called superCombiner and should use ? super E
10 12
  */
11 13
 public class ArrayListCombiner {
14
+
15
+    public static <E> void extendCombiner(ArrayList<E> first, ArrayList<? extends E> second) {
16
+        first.addAll(second);
17
+    }
18
+
19
+    public static <E> void superCombiner(ArrayList<? super E> first, ArrayList<E> second) {
20
+        first.addAll(second);
21
+    }
12 22
 }

+ 9
- 0
src/main/java/MapFunc/MapFunc.java Bestand weergeven

@@ -9,4 +9,13 @@ import java.util.function.Function;
9 9
  */
10 10
 public class MapFunc {
11 11
 
12
+    public static <E,T> ArrayList<E> map(ArrayList<T> elements, Function<T,E> function){
13
+        ArrayList<E> arrayList =  new ArrayList<>();
14
+        for (int i = 0; i < elements.size() ; i++) {
15
+            T t = elements.get(i);
16
+           arrayList.add(function.apply(t));
17
+        }
18
+        return arrayList;
19
+    }
20
+
12 21
 }

+ 38
- 1
src/main/java/Pair/Arrays.java Bestand weergeven

@@ -2,6 +2,7 @@ package Pair;
2 2
 
3 3
 import java.util.ArrayList;
4 4
 import java.util.Collections;
5
+import java.util.Comparator;
5 6
 
6 7
 /**
7 8
  * In here you must make firstLast, which will return a pair of the first element in the array list and the last
@@ -11,6 +12,42 @@ import java.util.Collections;
11 12
  * And a minmax method that returns a pair containing the largest and smallest items from the array list
12 13
  */
13 14
 public class Arrays {
14
-    public static <___> Pair<E> firstLast(ArrayList<___> a) {
15
+
16
+    public static <E extends Comparable> Pair firstLast(ArrayList<E> as) {
17
+        E min = as.get(0);
18
+        E max = as.get(as.size()-1);
19
+
20
+        System.out.println(min);
21
+        System.out.println(max);
22
+
23
+        return new Pair(min, max);
24
+    }
25
+
26
+    public static <E extends Comparable> Pair minMax(ArrayList<E> al) {
27
+        E min = al.get(0);
28
+        E max = al.get(1);
29
+
30
+        for (E e: al) {
31
+            if(e.compareTo(min) < 0){
32
+                min = e;
33
+            }
34
+            if(e.compareTo(max) > 0){
35
+                max = e;
36
+            }
37
+        }
38
+
39
+        return new Pair(max, min);
15 40
     }
41
+
42
+
43
+
44
+
45
+    public static <E extends Comparable> E min(ArrayList<E> al) {
46
+        return (E) minMax(al).min();
47
+    }
48
+
49
+    public static  <E extends Comparable> E  max(ArrayList<E> al) {
50
+        return (E) minMax(al).max();
51
+    }
52
+
16 53
 }

+ 34
- 1
src/main/java/Pair/Pair.java Bestand weergeven

@@ -1,5 +1,7 @@
1 1
 package Pair;
2 2
 
3
+import java.util.Comparator;
4
+
3 5
 /**
4 6
  * You need to store two values of type `E`, set them in a constructor, and have the following methods,
5 7
  * getFirst
@@ -7,6 +9,37 @@ package Pair;
7 9
  * min -> returns the minimum of the pair
8 10
  * max -> returns the maximum of the pair
9 11
  */
10
-public class Pair {
12
+public class Pair <E extends Comparable> {
13
+
14
+    private E first;
15
+    private E second;
16
+
17
+    public Pair(E first, E second){
18
+        this.first  = first;
19
+        this.second = second;
20
+    }
21
+
22
+    public E getFirst() {
23
+        return this.first;
24
+    }
25
+
26
+    public E getSecond() {
27
+        return this.second;
28
+    }
29
+
30
+    public E min() {
31
+        if(this.first.compareTo(this.second) > 0){
32
+            return this.second;
33
+        } else {
34
+            return this.first;
35
+        }
36
+    }
11 37
 
38
+    public E max() {
39
+        if(this.first.compareTo(this.second) > 0) {
40
+            return this.first;
41
+        } else {
42
+            return this.second;
43
+        }
44
+    }
12 45
 }

+ 43
- 0
src/main/java/StackArray/GenericStack.java Bestand weergeven

@@ -1,5 +1,7 @@
1 1
 package StackArray;
2 2
 
3
+import java.lang.reflect.Array;
4
+import java.util.ArrayList;
3 5
 import java.util.Arrays;
4 6
 
5 7
 /**
@@ -8,8 +10,49 @@ import java.util.Arrays;
8 10
  * @param <E>
9 11
  */
10 12
 public class GenericStack<E> {
13
+
11 14
     private E[] elements;
12 15
 
13 16
     public GenericStack() {
17
+        //elements = Arrays.copyOf(this.elements, this.elements.length + 1);
18
+        //elements = (E[])Array.newInstance(E, 0);
19
+        //elements = (E[]) Array.newInstance(this.elements.getClass().getComponentType(), 1);
20
+        elements = (E[]) new Object[0];
21
+    }
22
+
23
+    public boolean isEmpty() {
24
+        return elements.length == 0 ? true : false;
25
+    }
26
+
27
+    public void push(E foobar) {
28
+        elements = Arrays.copyOf(this.elements, this.elements.length + 1);
29
+        // shift right
30
+        for( int index =elements.length-2; index >= 0 ; index-- ) {
31
+            elements[index+1] = elements [index];
32
+        }
33
+        elements[0] = foobar;
34
+    }
35
+
36
+    public E pop() {
37
+        if(this.elements.length == 0){
38
+            throw new IndexOutOfBoundsException();
39
+        }
40
+        E[] newElements = Arrays.copyOf(this.elements, this.elements.length - 1);
41
+
42
+        E poped = this.elements[0];
43
+
44
+        int newArrayCounter = 0;
45
+
46
+        for(int i = 1; i < this.elements.length; i++){
47
+            newElements[newArrayCounter] = this.elements[i];
48
+            newArrayCounter++;
49
+        }
50
+
51
+        this.elements = newElements;
52
+
53
+        return poped;
54
+
55
+
56
+
14 57
     }
15 58
 }

+ 18
- 1
src/main/java/StackArray/ObjectStack.java Bestand weergeven

@@ -1,5 +1,7 @@
1 1
 package StackArray;
2 2
 
3
+import com.sun.tools.javah.Gen;
4
+
3 5
 import java.util.Arrays;
4 6
 
5 7
 /**
@@ -10,7 +12,22 @@ import java.util.Arrays;
10 12
 public class ObjectStack<E> {
11 13
     private Object[] elements;
12 14
 
15
+    private GenericStack<Object> genericStack;
16
+
13 17
     public ObjectStack() {
18
+        genericStack =  new GenericStack<Object>();
19
+
20
+    }
21
+
22
+    public boolean isEmpty() {
23
+        return genericStack.isEmpty();
24
+    }
25
+
26
+    public void push(E foobar) {
27
+        genericStack.push(foobar);
28
+    }
14 29
 
30
+    public Object pop() {
31
+        return genericStack.pop();
15 32
     }
16
-}
33
+}

+ 13
- 2
src/main/java/StackArrayList/Stack.java Bestand weergeven

@@ -7,10 +7,21 @@ import java.util.ArrayList;
7 7
  * If you pop on an empty stack, throw an IndexOutOfBoundsException.
8 8
  */
9 9
 public class Stack<E> {
10
-    private ArrayList elements;
10
+    private ArrayList<E> elements = new ArrayList<>();
11 11
 
12 12
 
13
-    public Stack(){
13
+    public Stack(){}
14 14
 
15
+    public boolean isEmpty() {
16
+        return elements.isEmpty();
17
+    }
18
+
19
+    public void push(E foobar) {
20
+        this.elements.add(0, foobar);
21
+
22
+    }
23
+
24
+    public E pop() {
25
+        return elements.remove(0);
15 26
     }
16 27
 }

+ 6
- 0
src/main/java/Table/Entry.java Bestand weergeven

@@ -2,6 +2,8 @@ package Table;
2 2
 
3 3
 public class Entry<K, V> {
4 4
     private K key;
5
+
6
+
5 7
     private V value;
6 8
 
7 9
     public Entry(K key, V value) {
@@ -17,4 +19,8 @@ public class Entry<K, V> {
17 19
         return value;
18 20
     }
19 21
 
22
+    public void setValue(V value) {
23
+        this.value = value;
24
+    }
25
+
20 26
 }

+ 36
- 1
src/main/java/Table/Table.java Bestand weergeven

@@ -10,8 +10,43 @@ import java.util.ArrayList;
10 10
  * Void return on `remove`.
11 11
  */
12 12
 public class Table<K, V> {
13
-    private ArrayList entries;
13
+    private ArrayList<Entry<K,V>> entries;
14 14
 
15 15
     public Table() {
16
+        entries = new ArrayList<Entry<K, V>>();
17
+    }
18
+
19
+    public V get(K foo) {
20
+        V value = null;
21
+        for (Entry entry: this.entries) {
22
+            if(entry.getKey().equals(foo)){
23
+                value = (V) entry.getValue();
24
+            }
25
+        }
26
+        return value;
27
+    }
28
+
29
+
30
+    public void put(K foo, V i) {
31
+        if(this.get(foo) == null){
32
+            Entry<K,V> entry = new Entry<K, V>(foo, i);
33
+            this.entries.add(entry);
34
+        } else {
35
+            for(Entry entry: this.entries){
36
+                if(entry.getKey().equals(foo)){
37
+                    entry.setValue(i);
38
+                    break;
39
+                }
40
+            }
41
+        }
42
+    }
43
+
44
+    public void remove(K foo) {
45
+        for (int i = 0; i < this.entries.size(); i++) {
46
+            if(this.entries.get(i).getKey().equals(foo)){
47
+                this.entries.remove(i);
48
+                break;
49
+            }
50
+        }
16 51
     }
17 52
 }

+ 67
- 0
src/main/java/TableNested/TableNested.java Bestand weergeven

@@ -1,5 +1,8 @@
1 1
 package TableNested;
2 2
 
3
+
4
+import Table.Entry;
5
+
3 6
 import java.util.ArrayList;
4 7
 
5 8
 /**
@@ -8,4 +11,68 @@ import java.util.ArrayList;
8 11
  */
9 12
 public class TableNested<K, V> {
10 13
 
14
+    private class Entry<K, V> {
15
+        private K key;
16
+
17
+
18
+        private V value;
19
+
20
+        public Entry(K key, V value) {
21
+            this.key = key;
22
+            this.value = value;
23
+        }
24
+
25
+        public K getKey() {
26
+            return key;
27
+        }
28
+
29
+        public V getValue() {
30
+            return value;
31
+        }
32
+
33
+        public void setValue(V value) {
34
+            this.value = value;
35
+        }
36
+    }
37
+
38
+    private ArrayList<Entry<K,V>> entries;
39
+
40
+    public TableNested() {
41
+        entries = new ArrayList<Entry<K, V>>();
42
+    }
43
+
44
+    public V get(K foo) {
45
+        V value = null;
46
+        for (Entry entry: this.entries) {
47
+            if(entry.getKey().equals(foo)){
48
+                value = (V) entry.getValue();
49
+            }
50
+        }
51
+        return value;
52
+    }
53
+
54
+    public void put(K foo, V i) {
55
+        if(this.get(foo) == null){
56
+            Entry<K,V> entry = new Entry<K, V>(foo, i);
57
+            this.entries.add(entry);
58
+        } else {
59
+            for(Entry entry: this.entries){
60
+                if(entry.getKey().equals(foo)){
61
+                    entry.setValue(i);
62
+                    break;
63
+                }
64
+            }
65
+        }
66
+    }
67
+
68
+    public void remove(K foo) {
69
+        for (int i = 0; i < this.entries.size(); i++) {
70
+            if(this.entries.get(i).getKey().equals(foo)){
71
+                this.entries.remove(i);
72
+                break;
73
+            }
74
+        }
75
+    }
76
+
77
+
11 78
 }

+ 35
- 35
src/test/java/ArrayListCombiner/ArrayListCombinerTest.java Bestand weergeven

@@ -9,40 +9,40 @@ import org.junit.Assert;
9 9
 import java.util.ArrayList;
10 10
 
11 11
 public class ArrayListCombinerTest {
12
-//    Employee foo = new Employee("FOO", 100);
13
-//    Manager bar = new Manager("BAR", 100);
14
-//    @Test
15
-//    public void testExtendCombiner() throws Exception {
16
-//        // Given an array list with employees
17
-//        ArrayList<Employee> first = new ArrayList<>();
18
-//        first.add(foo);
19
-//        // An an array list with managers
20
-//        ArrayList<Manager> second = new ArrayList<>();
21
-//        second.add(bar);
22
-//        // When  I combine them
23
-//        ArrayListCombiner.extendCombiner(first, second);
24
-//        // Then I should get an arrayList with both
25
-//        ArrayList<Employee> expected = new ArrayList<>();
26
-//        expected.add(foo);
27
-//        expected.add(bar);
28
-//        Assert.assertEquals(expected, first);
29
-//    }
30
-//
31
-//    @Test
32
-//    public void testSuperCombiner() throws Exception {
33
-//        // Given an array list with employees
34
-//        ArrayList<Employee> first = new ArrayList<>();
35
-//        first.add(foo);
36
-//        // An an array list with managers
37
-//        ArrayList<Manager> second = new ArrayList<>();
38
-//        second.add(bar);
39
-//        // When  I combine them
40
-//        ArrayListCombiner.superCombiner(first, second);
41
-//        // Then I should get an arrayList with both
42
-//        ArrayList<Employee> expected = new ArrayList<>();
43
-//        expected.add(foo);
44
-//        expected.add(bar);
45
-//        Assert.assertEquals(expected, first);
46
-//    }
12
+    Employee foo = new Employee("FOO", 100);
13
+    Manager bar = new Manager("BAR", 100);
14
+    @Test
15
+    public void testExtendCombiner() throws Exception {
16
+        // Given an array list with employees
17
+        ArrayList<Employee> first = new ArrayList<>();
18
+        first.add(foo);
19
+        // An an array list with managers
20
+        ArrayList<Manager> second = new ArrayList<>();
21
+        second.add(bar);
22
+        // When  I combine them
23
+        ArrayListCombiner.extendCombiner(first, second);
24
+        // Then I should get an arrayList with both
25
+        ArrayList<Employee> expected = new ArrayList<>();
26
+        expected.add(foo);
27
+        expected.add(bar);
28
+        Assert.assertEquals(expected, first);
29
+    }
30
+
31
+    @Test
32
+    public void testSuperCombiner() throws Exception {
33
+        // Given an array list with employees
34
+        ArrayList<Employee> first = new ArrayList<>();
35
+        first.add(foo);
36
+        // An an array list with managers
37
+        ArrayList<Manager> second = new ArrayList<>();
38
+        second.add(bar);
39
+        // When  I combine them
40
+        ArrayListCombiner.superCombiner(first, second);
41
+        // Then I should get an arrayList with both
42
+        ArrayList<Employee> expected = new ArrayList<>();
43
+        expected.add(foo);
44
+        expected.add(bar);
45
+        Assert.assertEquals(expected, first);
46
+    }
47 47
 
48 48
 }

+ 36
- 36
src/test/java/MapFunc/MapFuncTest.java Bestand weergeven

@@ -1,36 +1,36 @@
1
-//package MapFunc;
2
-//
3
-//import MapFunc.MapFunc;
4
-//import org.junit.Test;
5
-//
6
-//import java.util.ArrayList;
7
-//import org.junit.Assert;
8
-//
9
-//public class MapFuncTest {
10
-//    @Test
11
-//    public void testSingleTypeMap() throws Exception {
12
-//        // Given an integer array list
13
-//        ArrayList<Integer> intList = new ArrayList<>();
14
-//        intList.add(1);
15
-//        intList.add(2);
16
-//        // When it's mapped with a function to double the value
17
-//        ArrayList<Integer> mappedList = MapFunc.map(intList, num -> num*2);
18
-//        // Then all the values are doubled
19
-//        Assert.assertEquals(new Integer(2), mappedList.get(0));
20
-//        Assert.assertEquals(new Integer(4), mappedList.get(1));
21
-//    }
22
-//
23
-//    @Test
24
-//    public void testMultipleTypeMap() throws Exception {
25
-//        // Given an integer array list
26
-//        ArrayList<Integer> intList = new ArrayList<>();
27
-//        intList.add(1);
28
-//        intList.add(2);
29
-//        // When it's mapped with to string
30
-//        ArrayList<String> mappedList = MapFunc.map(intList, num -> num.toString());
31
-//        // Then all the values are doubled
32
-//        Assert.assertEquals("1", mappedList.get(0));
33
-//        Assert.assertEquals("2", mappedList.get(1));
34
-//    }
35
-//
36
-//}
1
+package MapFunc;
2
+
3
+import MapFunc.MapFunc;
4
+import org.junit.Test;
5
+
6
+import java.util.ArrayList;
7
+import org.junit.Assert;
8
+
9
+public class MapFuncTest {
10
+    @Test
11
+    public void testSingleTypeMap() throws Exception {
12
+        // Given an integer array list
13
+        ArrayList<Integer> intList = new ArrayList<>();
14
+        intList.add(1);
15
+        intList.add(2);
16
+        // When it's mapped with a function to double the value
17
+        ArrayList<Integer> mappedList = MapFunc.map(intList, num -> num*2);
18
+        // Then all the values are doubled
19
+        Assert.assertEquals(new Integer(2), mappedList.get(0));
20
+        Assert.assertEquals(new Integer(4), mappedList.get(1));
21
+    }
22
+
23
+    @Test
24
+    public void testMultipleTypeMap() throws Exception {
25
+        // Given an integer array list
26
+        ArrayList<Integer> intList = new ArrayList<>();
27
+        intList.add(1);
28
+        intList.add(2);
29
+        // When it's mapped with to string
30
+        ArrayList<String> mappedList = MapFunc.map(intList, num -> num.toString());
31
+        // Then all the values are doubled
32
+        Assert.assertEquals("1", mappedList.get(0));
33
+        Assert.assertEquals("2", mappedList.get(1));
34
+    }
35
+
36
+}

+ 75
- 74
src/test/java/Pair/ArraysTest.java Bestand weergeven

@@ -1,74 +1,75 @@
1
-//package Pair;
2
-//
3
-//import org.junit.Assert;
4
-//import org.junit.Test;
5
-//
6
-//import java.util.ArrayList;
7
-//
8
-//public class ArraysTest {
9
-//    @Test
10
-//    public void firstLast() throws Exception {
11
-//        // Given an ArrayList of Integers
12
-//        ArrayList<Integer> al = new ArrayList<>();
13
-//        al.add(1);
14
-//        al.add(5);
15
-//        al.add(3);
16
-//        al.add(4);
17
-//        al.add(2);
18
-//        al.add(0);
19
-//        al.add(1000);
20
-//        // When firstLast is called
21
-//        Pair<Integer> result = Arrays.firstLast(al);
22
-//        // Then it should return the first and last items
23
-//        Assert.assertEquals(new Integer(1), result.getFirst());
24
-//        Assert.assertEquals(new Integer(1000), result.getSecond());
25
-//    }
26
-//
27
-//    @Test
28
-//    public void testMin() throws Exception {
29
-//        // Given an ArrayList of Integers
30
-//        ArrayList<Integer> al = new ArrayList<>();
31
-//        al.add(1);
32
-//        al.add(5);
33
-//        al.add(3);
34
-//        al.add(4);
35
-//        al.add(2);
36
-//        al.add(0);
37
-//        al.add(1000);
38
-//        // When min is called assert that it gets the smallest item
39
-//        Assert.assertEquals(new Integer(0), Arrays.min(al));
40
-//    }
41
-//
42
-//    @Test
43
-//    public void testMax() throws Exception {
44
-//        // Given an ArrayList of Integers
45
-//        ArrayList<Integer> al = new ArrayList<>();
46
-//        al.add(1);
47
-//        al.add(5);
48
-//        al.add(3);
49
-//        al.add(4);
50
-//        al.add(2);
51
-//        al.add(0);
52
-//        al.add(1000);
53
-//        // When min is called assert that it gets the largest item
54
-//        Assert.assertEquals(new Integer(1000), Arrays.max(al));
55
-//    }
56
-//
57
-//    @Test
58
-//    public void testMinMax() throws Exception {
59
-//        // Given an ArrayList of Integers
60
-//        ArrayList<Integer> al = new ArrayList<>();
61
-//        al.add(1);
62
-//        al.add(5);
63
-//        al.add(3);
64
-//        al.add(4);
65
-//        al.add(2);
66
-//        al.add(0);
67
-//        al.add(1000);
68
-//        // When minMax is called
69
-//        Pair<Integer> result = Arrays.minMax(al);
70
-//        // Then it should return the first and last items
71
-//        Assert.assertEquals(new Integer(0), result.min());
72
-//        Assert.assertEquals(new Integer(1000), result.max());
73
-//    }
74
-//}
1
+package Pair;
2
+
3
+import org.junit.Assert;
4
+import org.junit.Test;
5
+
6
+import java.util.ArrayList;
7
+
8
+public class ArraysTest {
9
+    @Test
10
+    public void firstLast() throws Exception {
11
+
12
+        // Given an ArrayList of Integers
13
+        ArrayList<Integer> al = new ArrayList<>();
14
+        al.add(1);
15
+        al.add(5);
16
+        al.add(3);
17
+        al.add(4);
18
+        al.add(2);
19
+        al.add(0);
20
+        al.add(1000);
21
+        // When firstLast is called
22
+        Pair<Integer> result = Arrays.firstLast(al);
23
+        // Then it should return the first and last items
24
+        Assert.assertEquals(new Integer(1), result.getFirst());
25
+        Assert.assertEquals(new Integer(1000), result.getSecond());
26
+    }
27
+
28
+    @Test
29
+    public void testMin() throws Exception {
30
+        // Given an ArrayList of Integers
31
+        ArrayList<Integer> al = new ArrayList<>();
32
+        al.add(1);
33
+        al.add(5);
34
+        al.add(3);
35
+        al.add(4);
36
+        al.add(2);
37
+        al.add(0);
38
+        al.add(1000);
39
+        // When min is called assert that it gets the smallest item
40
+        Assert.assertEquals(new Integer(0), Arrays.min(al));
41
+    }
42
+
43
+    @Test
44
+    public void testMax() throws Exception {
45
+        // Given an ArrayList of Integers
46
+        ArrayList<Integer> al = new ArrayList<>();
47
+        al.add(1);
48
+        al.add(5);
49
+        al.add(3);
50
+        al.add(4);
51
+        al.add(2);
52
+        al.add(0);
53
+        al.add(1000);
54
+        // When min is called assert that it gets the largest item
55
+        Assert.assertEquals(new Integer(1000), Arrays.max(al));
56
+    }
57
+
58
+    @Test
59
+    public void testMinMax() throws Exception {
60
+        // Given an ArrayList of Integers
61
+        ArrayList<Integer> al = new ArrayList<>();
62
+        al.add(1);
63
+        al.add(5);
64
+        al.add(3);
65
+        al.add(4);
66
+        al.add(2);
67
+        al.add(0);
68
+        al.add(1000);
69
+        // When minMax is called
70
+        Pair<Integer> result = Arrays.minMax(al);
71
+        // Then it should return the first and last items
72
+        Assert.assertEquals(new Integer(0), result.min());
73
+        Assert.assertEquals(new Integer(1000), result.max());
74
+    }
75
+}

+ 32
- 32
src/test/java/Pair/PairTest.java Bestand weergeven

@@ -1,32 +1,32 @@
1
-//package Pair;
2
-//
3
-//import org.junit.Test;
4
-//import org.junit.Assert;
5
-//
6
-//public class PairTest {
7
-//
8
-//    @Test
9
-//    public void testGetters() throws Exception {
10
-//        // Given a pair with "Foo" and "Bar"
11
-//        Pair<String> p = new Pair<String>("Foo", "Bar");
12
-//        // When getFirst and getSecond are called, they should be returned.
13
-//        Assert.assertEquals("Foo", p.getFirst());
14
-//        Assert.assertEquals("Bar",  p.getSecond());
15
-//    }
16
-//
17
-//    @Test
18
-//    public void testMin() throws Exception {
19
-//        // Given a pair with two values
20
-//        Pair<Double> p = new Pair<Double>(1.23, 2.34);
21
-//        // When p.min() is called, the smallest should be returned.
22
-//        Assert.assertEquals(new Double(1.23), p.min());
23
-//    }
24
-//
25
-//    @Test
26
-//    public void testMax() throws Exception {
27
-//        // Given a pair with two values
28
-//        Pair<Double> p = new Pair<Double>(1.23, 2.34);
29
-//        // When p.max() is called, the largest should be returned.
30
-//        Assert.assertEquals(new Double(2.34), p.max());
31
-//    }
32
-//}
1
+package Pair;
2
+
3
+import org.junit.Test;
4
+import org.junit.Assert;
5
+
6
+public class PairTest {
7
+
8
+    @Test
9
+    public void testGetters() throws Exception {
10
+        // Given a pair with "Foo" and "Bar"
11
+        Pair<String> p = new Pair<String>("Foo", "Bar");
12
+        // When getFirst and getSecond are called, they should be returned.
13
+        Assert.assertEquals("Foo", p.getFirst());
14
+        Assert.assertEquals("Bar",  p.getSecond());
15
+    }
16
+
17
+    @Test
18
+    public void testMin() throws Exception {
19
+        // Given a pair with two values
20
+        Pair<Double> p = new Pair<Double>(1.23, 2.34);
21
+        // When p.min() is called, the smallest should be returned.
22
+        Assert.assertEquals(new Double(1.23), p.min());
23
+    }
24
+
25
+    @Test
26
+    public void testMax() throws Exception {
27
+        // Given a pair with two values
28
+        Pair<Double> p = new Pair<Double>(1.23, 2.34);
29
+        // When p.max() is called, the largest should be returned.
30
+        Assert.assertEquals(new Double(2.34), p.max());
31
+    }
32
+}

+ 41
- 41
src/test/java/StackArray/GenericStackTest.java Bestand weergeven

@@ -1,41 +1,41 @@
1
-//package StackArray;
2
-//
3
-//import org.junit.Assert;
4
-//import org.junit.Test;
5
-//
6
-//public class GenericStackTest {
7
-//    @Test
8
-//    public void testPushingGrowsTheStack() throws Exception {
9
-//        // Given an empty stack
10
-//        GenericStack<String> stack = new GenericStack<>();
11
-//
12
-//        // Assert that it is empty.
13
-//        Assert.assertEquals(true, stack.isEmpty());
14
-//        // When we push something onto the stack
15
-//        stack.push("foobar");
16
-//        // Then it shouldn't be empty
17
-//        Assert.assertEquals(false, stack.isEmpty());
18
-//    }
19
-//
20
-//    @Test
21
-//    public void testPushingAndPoppingOrder() throws Exception {
22
-//        // Given an empty stack
23
-//        GenericStack<String> stack = new GenericStack<>();
24
-//        // When we push two elements on it
25
-//        stack.push("foo");
26
-//        stack.push("bar");
27
-//        // Then we should see them returned in the correct order
28
-//        Assert.assertEquals("bar", stack.pop());
29
-//        Assert.assertEquals("foo", stack.pop());
30
-//    }
31
-//
32
-//    @Test(expected = IndexOutOfBoundsException.class)
33
-//    public void testPopFirst() throws Exception {
34
-//        // Given an empty stack
35
-//        GenericStack<String> stack = new GenericStack<>();
36
-//        // When it's popped
37
-//        stack.pop();
38
-//        // Then we should get an exception
39
-//    }
40
-//
41
-//}
1
+package StackArray;
2
+
3
+import org.junit.Assert;
4
+import org.junit.Test;
5
+
6
+public class GenericStackTest {
7
+    @Test
8
+    public void testPushingGrowsTheStack() throws Exception {
9
+        // Given an empty stack
10
+        GenericStack<String> stack = new GenericStack<>();
11
+
12
+        // Assert that it is empty.
13
+        Assert.assertEquals(true, stack.isEmpty());
14
+        // When we push something onto the stack
15
+        stack.push("foobar");
16
+        // Then it shouldn't be empty
17
+        Assert.assertEquals(false, stack.isEmpty());
18
+    }
19
+
20
+    @Test
21
+    public void testPushingAndPoppingOrder() throws Exception {
22
+        // Given an empty stack
23
+        GenericStack<String> stack = new GenericStack<>();
24
+        // When we push two elements on it
25
+        stack.push("foo");
26
+        stack.push("bar");
27
+        // Then we should see them returned in the correct order
28
+        Assert.assertEquals("bar", stack.pop());
29
+        Assert.assertEquals("foo", stack.pop());
30
+    }
31
+
32
+    @Test(expected = IndexOutOfBoundsException.class)
33
+    public void testPopFirst() throws Exception {
34
+        // Given an empty stack
35
+        GenericStack<String> stack = new GenericStack<>();
36
+        // When it's popped
37
+        stack.pop();
38
+        // Then we should get an exception
39
+    }
40
+
41
+}

+ 39
- 39
src/test/java/StackArray/ObjectStackTest.java Bestand weergeven

@@ -1,39 +1,39 @@
1
-//package StackArray;
2
-//
3
-//import org.junit.Assert;
4
-//import org.junit.Test;
5
-//
6
-//public class ObjectStackTest {
7
-//    @Test
8
-//    public void testPushingGrowsTheStack() throws Exception {
9
-//        // Given an empty stack
10
-//        ObjectStack<String> stack = new ObjectStack<>();
11
-//        // Assert that it is empty.
12
-//        Assert.assertEquals(true, stack.isEmpty());
13
-//        // When we push something onto the stack
14
-//        stack.push("foobar");
15
-//        // Then it shouldn't be empty
16
-//        Assert.assertEquals(false, stack.isEmpty());
17
-//    }
18
-//
19
-//    @Test
20
-//    public void testPushingAndPoppingOrder() throws Exception {
21
-//        // Given an empty stack
22
-//        ObjectStack<String> stack = new ObjectStack<>();
23
-//        // When we push two elements on it
24
-//        stack.push("foo");
25
-//        stack.push("bar");
26
-//        // Then we should see them returned in the correct order
27
-//        Assert.assertEquals("bar", stack.pop());
28
-//        Assert.assertEquals("foo", stack.pop());
29
-//    }
30
-//
31
-//    @Test(expected = IndexOutOfBoundsException.class)
32
-//    public void testPopFirst() throws Exception {
33
-//        // Given an empty stack
34
-//        ObjectStack<String> stack = new ObjectStack<>();
35
-//        // When it's popped
36
-//        stack.pop();
37
-//        // Then we should get an exception
38
-//    }
39
-//}
1
+package StackArray;
2
+
3
+import org.junit.Assert;
4
+import org.junit.Test;
5
+
6
+public class ObjectStackTest {
7
+    @Test
8
+    public void testPushingGrowsTheStack() throws Exception {
9
+        // Given an empty stack
10
+        ObjectStack<String> stack = new ObjectStack<>();
11
+        // Assert that it is empty.
12
+        Assert.assertEquals(true, stack.isEmpty());
13
+        // When we push something onto the stack
14
+        stack.push("foobar");
15
+        // Then it shouldn't be empty
16
+        Assert.assertEquals(false, stack.isEmpty());
17
+    }
18
+
19
+    @Test
20
+    public void testPushingAndPoppingOrder() throws Exception {
21
+        // Given an empty stack
22
+        ObjectStack<String> stack = new ObjectStack<>();
23
+        // When we push two elements on it
24
+        stack.push("foo");
25
+        stack.push("bar");
26
+        // Then we should see them returned in the correct order
27
+        Assert.assertEquals("bar", stack.pop());
28
+        Assert.assertEquals("foo", stack.pop());
29
+    }
30
+
31
+    @Test(expected = IndexOutOfBoundsException.class)
32
+    public void testPopFirst() throws Exception {
33
+        // Given an empty stack
34
+        ObjectStack<String> stack = new ObjectStack<>();
35
+        // When it's popped
36
+        stack.pop();
37
+        // Then we should get an exception
38
+    }
39
+}

+ 45
- 45
src/test/java/StackArrayList/StackTest.java Bestand weergeven

@@ -1,45 +1,45 @@
1
-//package StackArrayList;
2
-//
3
-//import org.junit.Test;
4
-//
5
-//import org.junit.Assert;
6
-//
7
-//public class StackTest {
8
-//    @Test
9
-//    public void testEmptyStackStopsBeingEmptyWhenAnItemIsAdded() throws Exception {
10
-//        // Given an empty stack
11
-//        Stack<String> stack = new Stack<>();
12
-//        // Assert that it starts empty
13
-//        Assert.assertEquals(true, stack.isEmpty());
14
-//        // When an element gets pushed
15
-//        stack.push("foobar");
16
-//        // Then the stack should not be empty.
17
-//        Assert.assertEquals(false, stack.isEmpty());
18
-//    }
19
-//
20
-//    @Test
21
-//    public void testTwoItemsPushedComeOutInCorrectOrder() throws Exception {
22
-//        // Given an empty stack
23
-//        Stack<String> stack = new Stack<>();
24
-//
25
-//        //When two items are pushed
26
-//        stack.push("foo");
27
-//        stack.push("bar");
28
-//
29
-//        // Then they should come off in reverse order.
30
-//        Assert.assertEquals("bar", stack.pop());
31
-//        Assert.assertEquals("foo", stack.pop());
32
-//
33
-//        // And then the stack should be empty
34
-//        Assert.assertEquals(true, stack.isEmpty());
35
-//    }
36
-//
37
-//    @Test(expected = IndexOutOfBoundsException.class)
38
-//    public void testPopFirst() throws Exception {
39
-//        // Given an empty stack
40
-//        Stack<String> stack = new Stack<>();
41
-//        // Then it is popped
42
-//        stack.pop();
43
-//        // We should get an exception
44
-//    }
45
-//}
1
+package StackArrayList;
2
+
3
+import org.junit.Test;
4
+
5
+import org.junit.Assert;
6
+
7
+public class StackTest {
8
+    @Test
9
+    public void testEmptyStackStopsBeingEmptyWhenAnItemIsAdded() throws Exception {
10
+        // Given an empty stack
11
+        Stack<String> stack = new Stack<>();
12
+        // Assert that it starts empty
13
+        Assert.assertEquals(true, stack.isEmpty());
14
+        // When an element gets pushed
15
+        stack.push("foobar");
16
+        // Then the stack should not be empty.
17
+        Assert.assertEquals(false, stack.isEmpty());
18
+    }
19
+
20
+    @Test
21
+    public void testTwoItemsPushedComeOutInCorrectOrder() throws Exception {
22
+        // Given an empty stack
23
+        Stack<String> stack = new Stack<>();
24
+
25
+        //When two items are pushed
26
+        stack.push("foo");
27
+        stack.push("bar");
28
+
29
+        // Then they should come off in reverse order.
30
+        Assert.assertEquals("bar", stack.pop());
31
+        Assert.assertEquals("foo", stack.pop());
32
+
33
+        // And then the stack should be empty
34
+        Assert.assertEquals(true, stack.isEmpty());
35
+    }
36
+
37
+    @Test(expected = IndexOutOfBoundsException.class)
38
+    public void testPopFirst() throws Exception {
39
+        // Given an empty stack
40
+        Stack<String> stack = new Stack<>();
41
+        // Then it is popped
42
+        stack.pop();
43
+        // We should get an exception
44
+    }
45
+}

+ 15
- 15
src/test/java/Swap/SwapTest.java Bestand weergeven

@@ -1,16 +1,16 @@
1 1
 package Swap;
2
-//
3
-//import org.junit.Assert;
4
-//import org.junit.Test;
5
-//
6
-///**
7
-// * Get the tests passing.
8
-// */
9
-//public class SwapTest {
10
-//    @Test
11
-//    public void testSwap() throws Exception {
12
-//        Double[] result = Swap.swap(0,1, 1.5, 2,3);
13
-//        Double[] expected = {2.0, 1.5, 3.0};
14
-//        Assert.assertArrayEquals(expected, result);
15
-//    }
16
-//}
2
+
3
+import org.junit.Assert;
4
+import org.junit.Test;
5
+
6
+/**
7
+ * Get the tests passing.
8
+ */
9
+public class SwapTest {
10
+    @Test
11
+    public void testSwap() throws Exception {
12
+        Double[] result = Swap.swap(0,1, 1.5,2.0 ,3.0);
13
+        Double[] expected = {2.0, 1.5, 3.0};
14
+        Assert.assertArrayEquals(expected, result);
15
+    }
16
+}

+ 50
- 50
src/test/java/Table/TableTest.java Bestand weergeven

@@ -1,50 +1,50 @@
1
-//package Table;
2
-//
3
-//import org.junit.Assert;
4
-//import org.junit.Test;
5
-//
6
-//public class TableTest {
7
-//    @Test
8
-//    public void testGetWithoutAnItemReturnsNull() throws Exception {
9
-//        // Given an empty table
10
-//        Table<String, Integer> table = new Table<String, Integer>();
11
-//        // When we try and get an item then it returns null
12
-//        Assert.assertEquals(table.get("foo"), null);
13
-//    }
14
-//
15
-//    @Test
16
-//    public void testPutAnItemReturnsAndDoesNotDelete() throws Exception {
17
-//        //Given an empty table
18
-//        Table<String, Integer> table = new Table<String, Integer>();
19
-//        // When we put an item in it
20
-//        table.put("foo", 1);
21
-//        // Then we should be able to get it's value
22
-//        Assert.assertEquals(table.get("foo"), new Integer(1));
23
-//        // And then we should be able to get it again as it wasn't removed
24
-//        Assert.assertEquals(table.get("foo"), new Integer(1));
25
-//    }
26
-//
27
-//    @Test
28
-//    public void testOverwritingAnItem() throws Exception {
29
-//        //Given an empty table
30
-//        Table<String, Integer> table = new Table<String, Integer>();
31
-//        // When we put an item in it
32
-//        table.put("foo", 1);
33
-//        // And we put a new value with the same key
34
-//        table.put("foo", 2);
35
-//        // Then we should get back the new value
36
-//        Assert.assertEquals(table.get("foo"), new Integer(2));
37
-//    }
38
-//
39
-//    @Test
40
-//    public void testRemoveAnItem() throws Exception {
41
-//        //Given an empty table
42
-//        Table<String, Integer> table = new Table<String, Integer>();
43
-//        // When we put an item in it
44
-//        table.put("foo", 1);
45
-//        // And we remove that item
46
-//        table.remove("foo");
47
-//        // Then we should get back null for that balue
48
-//        Assert.assertEquals(table.get("foo"), null);
49
-//    }
50
-//}
1
+package Table;
2
+
3
+import org.junit.Assert;
4
+import org.junit.Test;
5
+
6
+public class TableTest {
7
+    @Test
8
+    public void testGetWithoutAnItemReturnsNull() throws Exception {
9
+        // Given an empty table
10
+        Table<String, Integer> table = new Table<String, Integer>();
11
+        // When we try and get an item then it returns null
12
+        Assert.assertEquals(table.get("foo"), null);
13
+    }
14
+
15
+    @Test
16
+    public void testPutAnItemReturnsAndDoesNotDelete() throws Exception {
17
+        //Given an empty table
18
+        Table<String, Integer> table = new Table<String, Integer>();
19
+        // When we put an item in it
20
+        table.put("foo", 1);
21
+        // Then we should be able to get it's value
22
+        Assert.assertEquals(table.get("foo"), new Integer(1));
23
+        // And then we should be able to get it again as it wasn't removed
24
+        Assert.assertEquals(table.get("foo"), new Integer(1));
25
+    }
26
+
27
+    @Test
28
+    public void testOverwritingAnItem() throws Exception {
29
+        //Given an empty table
30
+        Table<String, Integer> table = new Table<String, Integer>();
31
+        // When we put an item in it
32
+        table.put("foo", 1);
33
+        // And we put a new value with the same key
34
+        table.put("foo", 2);
35
+        // Then we should get back the new value
36
+        Assert.assertEquals(table.get("foo"), new Integer(2));
37
+    }
38
+
39
+    @Test
40
+    public void testRemoveAnItem() throws Exception {
41
+        //Given an empty table
42
+        Table<String, Integer> table = new Table<String, Integer>();
43
+        // When we put an item in it
44
+        table.put("foo", 1);
45
+        // And we remove that item
46
+        table.remove("foo");
47
+        // Then we should get back null for that balue
48
+        Assert.assertEquals(table.get("foo"), null);
49
+    }
50
+}

+ 50
- 50
src/test/java/TableNested/TableNestedTest.java Bestand weergeven

@@ -1,50 +1,50 @@
1
-//package TableNested;
2
-//
3
-//import org.junit.Assert;
4
-//import org.junit.Test;
5
-//
6
-//public class TableNestedTest {
7
-//    @Test
8
-//    public void testGetWithoutAnItemReturnsNull() throws Exception {
9
-//        // Given an empty table
10
-//        TableNested<String, Integer> table = new TableNested<String, Integer>();
11
-//        // When we try and get an item then it returns null
12
-//        Assert.assertEquals(table.get("foo"), null);
13
-//    }
14
-//
15
-//    @Test
16
-//    public void testPutAnItemReturnsAndDoesNotDelete() throws Exception {
17
-//        //Given an empty table
18
-//        TableNested<String, Integer> table = new TableNested<String, Integer>();
19
-//        // When we put an item in it
20
-//        table.put("foo", 1);
21
-//        // Then we should be able to get it's value
22
-//        Assert.assertEquals(table.get("foo"), new Integer(1));
23
-//        // And then we should be able to get it again as it wasn't removed
24
-//        Assert.assertEquals(table.get("foo"), new Integer(1));
25
-//    }
26
-//
27
-//    @Test
28
-//    public void testOverwritingAnItem() throws Exception {
29
-//        //Given an empty table
30
-//        TableNested<String, Integer> table = new TableNested<String, Integer>();
31
-//        // When we put an item in it
32
-//        table.put("foo", 1);
33
-//        // And we put a new value with the same key
34
-//        table.put("foo", 2);
35
-//        // Then we should get back the new value
36
-//        Assert.assertEquals(table.get("foo"), new Integer(2));
37
-//    }
38
-//
39
-//    @Test
40
-//    public void testRemoveAnItem() throws Exception {
41
-//        //Given an empty table
42
-//        TableNested<String, Integer> table = new TableNested<String, Integer>();
43
-//        // When we put an item in it
44
-//        table.put("foo", 1);
45
-//        // And we remove that item
46
-//        table.remove("foo");
47
-//        // Then we should get back null for that balue
48
-//        Assert.assertEquals(table.get("foo"), null);
49
-//    }
50
-//}
1
+package TableNested;
2
+
3
+import org.junit.Assert;
4
+import org.junit.Test;
5
+
6
+public class TableNestedTest {
7
+    @Test
8
+    public void testGetWithoutAnItemReturnsNull() throws Exception {
9
+        // Given an empty table
10
+        TableNested<String, Integer> table = new TableNested<String, Integer>();
11
+        // When we try and get an item then it returns null
12
+        Assert.assertEquals(table.get("foo"), null);
13
+    }
14
+
15
+    @Test
16
+    public void testPutAnItemReturnsAndDoesNotDelete() throws Exception {
17
+        //Given an empty table
18
+        TableNested<String, Integer> table = new TableNested<String, Integer>();
19
+        // When we put an item in it
20
+        table.put("foo", 1);
21
+        // Then we should be able to get it's value
22
+        Assert.assertEquals(table.get("foo"), new Integer(1));
23
+        // And then we should be able to get it again as it wasn't removed
24
+        Assert.assertEquals(table.get("foo"), new Integer(1));
25
+    }
26
+
27
+    @Test
28
+    public void testOverwritingAnItem() throws Exception {
29
+        //Given an empty table
30
+        TableNested<String, Integer> table = new TableNested<String, Integer>();
31
+        // When we put an item in it
32
+        table.put("foo", 1);
33
+        // And we put a new value with the same key
34
+        table.put("foo", 2);
35
+        // Then we should get back the new value
36
+        Assert.assertEquals(table.get("foo"), new Integer(2));
37
+    }
38
+
39
+    @Test
40
+    public void testRemoveAnItem() throws Exception {
41
+        //Given an empty table
42
+        TableNested<String, Integer> table = new TableNested<String, Integer>();
43
+        // When we put an item in it
44
+        table.put("foo", 1);
45
+        // And we remove that item
46
+        table.remove("foo");
47
+        // Then we should get back null for that balue
48
+        Assert.assertEquals(table.get("foo"), null);
49
+    }
50
+}