diff --git a/.idea/compiler.xml b/.idea/compiler.xml
index 055d4f1..f1a5f65 100644
--- a/.idea/compiler.xml
+++ b/.idea/compiler.xml
@@ -6,8 +6,10 @@
-
+
+
+
diff --git a/.idea/misc.xml b/.idea/misc.xml
index 6ca38f7..871cff4 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -9,7 +9,7 @@
-
+
\ No newline at end of file
diff --git a/.idea/modules.xml b/.idea/modules.xml
index d71d76f..57c4b36 100644
--- a/.idea/modules.xml
+++ b/.idea/modules.xml
@@ -2,7 +2,6 @@
-
diff --git a/.idea/workspace.xml b/.idea/workspace.xml
index 81689a9..777ad61 100644
--- a/.idea/workspace.xml
+++ b/.idea/workspace.xml
@@ -1,13 +1,25 @@
-
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -19,93 +31,168 @@
za.co.oldtimerza.sorts.*
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
-
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
-
-
+
+
+
+
+
+
+
+
+
+
-
+
-
-
+
+
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
@@ -122,14 +209,13 @@
+
+
@@ -156,11 +277,17 @@
+
+
+
+
+
+
-
-
-
-
+
+
+
+
@@ -168,7 +295,6 @@
-
@@ -179,41 +305,100 @@
-
+
-
+
+
-
+
+
-
+
+
-
+
+
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -221,7 +406,6 @@
-
@@ -229,7 +413,6 @@
-
@@ -238,24 +421,30 @@
-
-
+
+
+
+
+
+
+
-
-
+
+
+
@@ -266,6 +455,13 @@
+
+
+
+
+
+
+
@@ -279,8 +475,8 @@
-
-
+
+
@@ -289,88 +485,109 @@
-
+
+
+
-
-
+
+
-
+
-
-
-
-
+
+
+
-
-
+
+
-
+
-
-
+
+
+
-
-
+
+
-
+
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
-
+
-
-
+
+
+
+
-
-
-
-
-
+
+
+
+
+
+
-
-
-
-
-
+
+
+
+
+
+
+
@@ -379,45 +596,160 @@
1550764945869
+
+ 1554582567035
+
+
+
+ 1554582567035
+
+
+ 1554582901740
+
+
+
+ 1554582901740
+
+
+ 1554583178892
+
+
+
+ 1554583178892
+
+
+ 1554583288725
+
+
+
+ 1554583288725
+
+
+ 1554587564305
+
+
+
+ 1554587564305
+
+
+ 1554604313439
+
+
+
+ 1554604313439
+
+
+ 1554604483962
+
+
+
+ 1554604483962
+
+
+ 1554668332743
+
+
+
+ 1554668332744
+
+
+ 1555258553190
+
+
+
+ 1555258553190
+
+
+ 1557794659648
+
+
+
+ 1557794659648
+
+
+ 1557794881772
+
+
+
+ 1557794881772
+
+
+ 1557796054267
+
+
+
+ 1557796054267
+
+
+ 1557869310127
+
+
+
+ 1557869310127
+
+
+ 1557884557436
+
+
+
+ 1557884557436
+
+
+ 1557970212003
+
+
+
+ 1557970212003
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
+
+
+
+
+
+
+
+
+
-
+
-
+
@@ -425,18 +757,19 @@
-
-
+
+
-
-
-
-
-
+
+
+
+
+
+
-
+
@@ -444,10 +777,26 @@
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -482,9 +831,19 @@
+
+ file://$PROJECT_DIR$/data-structures/src/test/java/za/co/oldtimerza/data/LinkedListTest.java
+ 15
+
+
+
+
+
+
+
@@ -508,10 +867,81 @@
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -529,117 +959,273 @@
-
+
-
+
-
+
+
+
+
-
-
+
+
+
+
+
-
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
-
+
-
-
+
+
-
+
+
+
+
+
+
+
+
-
-
+
+
+
+
+
+
+
+
+
-
+
+
+
+
+
+
-
+
-
-
+
+
+
+
+
+
+
-
+
-
-
+
+
+
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
+
+
+
-
-
+
+
+
+
+
+
+
+
+
-
-
+
+
+
+
+
+
+
+
-
+
-
-
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -692,12 +1278,11 @@
- java-experiments-sort
+ java-experiments-pass-by
-
diff --git a/data-structures/pom.xml b/data-structures/pom.xml
new file mode 100644
index 0000000..573e268
--- /dev/null
+++ b/data-structures/pom.xml
@@ -0,0 +1,32 @@
+
+
+ 4.0.0
+
+ za.co.oldtimerza.javaexperiments.data-structures
+ data-structures
+ 1.0-SNAPSHOT
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+
+ 8
+ 8
+
+
+
+
+
+
+
+ junit
+ junit
+ 4.12
+ provided
+
+
+
+
\ No newline at end of file
diff --git a/data-structures/src/main/java/za/co/oldtimerza/data/BinaryTree.java b/data-structures/src/main/java/za/co/oldtimerza/data/BinaryTree.java
new file mode 100644
index 0000000..9241e0c
--- /dev/null
+++ b/data-structures/src/main/java/za/co/oldtimerza/data/BinaryTree.java
@@ -0,0 +1,45 @@
+package za.co.oldtimerza.data;
+
+public class BinaryTree implements List
+{
+
+ @Override
+ public void remove(int node) {
+
+ }
+
+ @Override
+ public int length() {
+ return 0;
+ }
+
+ @Override
+ public Linkable getFirst() {
+ return null;
+ }
+
+ @Override
+ public Linkable getLast() {
+ return null;
+ }
+
+ @Override
+ public Linkable get(int index) {
+ return null;
+ }
+
+ @Override
+ public Linkable get(Object o) {
+ return null;
+ }
+
+ @Override
+ public void add(Object o) {
+
+ }
+
+ @Override
+ public void add(int index, Object o) {
+
+ }
+}
diff --git a/data-structures/src/main/java/za/co/oldtimerza/data/CanHoldData.java b/data-structures/src/main/java/za/co/oldtimerza/data/CanHoldData.java
new file mode 100644
index 0000000..5525211
--- /dev/null
+++ b/data-structures/src/main/java/za/co/oldtimerza/data/CanHoldData.java
@@ -0,0 +1,6 @@
+package za.co.oldtimerza.data;
+
+public interface CanHoldData {
+ void setData(T t);
+ T getData();
+}
diff --git a/data-structures/src/main/java/za/co/oldtimerza/data/Dequeue.java b/data-structures/src/main/java/za/co/oldtimerza/data/Dequeue.java
new file mode 100644
index 0000000..e23b947
--- /dev/null
+++ b/data-structures/src/main/java/za/co/oldtimerza/data/Dequeue.java
@@ -0,0 +1,5 @@
+package za.co.oldtimerza.data;
+
+public interface Dequeue extends Queue
+{
+}
diff --git a/data-structures/src/main/java/za/co/oldtimerza/data/Linkable.java b/data-structures/src/main/java/za/co/oldtimerza/data/Linkable.java
new file mode 100644
index 0000000..013e800
--- /dev/null
+++ b/data-structures/src/main/java/za/co/oldtimerza/data/Linkable.java
@@ -0,0 +1,8 @@
+package za.co.oldtimerza.data;
+
+public interface Linkable extends CanHoldData{
+ Linkable getNext();
+ Linkable getPrev();
+ void setNext(Linkable node);
+ void setPrev(Linkable node);
+}
diff --git a/data-structures/src/main/java/za/co/oldtimerza/data/LinkedList.java b/data-structures/src/main/java/za/co/oldtimerza/data/LinkedList.java
new file mode 100644
index 0000000..d945264
--- /dev/null
+++ b/data-structures/src/main/java/za/co/oldtimerza/data/LinkedList.java
@@ -0,0 +1,130 @@
+package za.co.oldtimerza.data;
+
+public class LinkedList implements List, Queue {
+
+ private Linkable head = null;
+ private Linkable tail = null;
+
+ public LinkedList()
+ {
+
+ }
+
+ public void setHead(T t)
+ {
+ Linkable node = new Node(t);
+ if(this.head == null){
+ this.head = node;
+ this.tail = node;
+ }
+ else{
+ Linkable temp = this.head;
+ temp.setPrev(node);
+ this.head = node;
+ this.head.setNext(temp);
+ }
+ }
+
+ public void setTail(T t)
+ {
+ Linkable node = new Node(t);
+ this.tail.setNext(node);
+ node.setPrev(this.tail);
+ node.setNext(null);
+ this.tail = node;
+ }
+
+ public Linkable getFirst()
+ {
+ return this.head;
+ }
+
+ public Linkable getLast()
+ {
+
+ if(this.tail == null){
+ Linkable n = this.head;
+ while(n.getNext() != null){
+ n = n.getNext();
+ }
+ this.tail = n;
+ return this.tail;
+ }
+ else{
+ return this.tail;
+ }
+ }
+
+ public Linkable get(int index)
+ {
+ int count = 0;
+ Linkable n = this.head;
+ while(n.getNext() != null){
+ if(count == index){
+ return n;
+ }
+ else{
+ count += 1;
+ n = n.getNext();
+ }
+ }
+ return null;
+ }
+
+ public Linkable get(T t)
+ {
+ Linkable n = this.head;
+ while(n.getNext() != null){
+ if(n.getData() == t){
+ return n;
+ }
+ else{
+ n = n.getNext();
+ }
+ }
+ return null;
+ }
+
+ public void add(T t)
+ {
+ Linkable newNode = new Node(t);
+ if(this.head == null){
+ this.head = newNode;
+ this.tail = newNode;
+ }
+ else{
+ newNode.setPrev(this.getLast());
+ newNode.setNext(null);
+ this.getLast().setNext(newNode);
+ this.tail = newNode;
+ }
+ }
+
+ public void add(int index, T t)
+ {
+ Linkable newNode = new Node(t);
+ Linkable n0 = this.get(index);
+ Linkable n1 = n0.getNext();
+
+ n0.setNext(newNode);
+ n1.setPrev(newNode);
+ newNode.setPrev(n0);
+ newNode.setNext(n1);
+ }
+
+ public void remove(int index)
+ {
+ this.get(index);
+ }
+
+ public int length()
+ {
+ int count = 0;
+ Linkable n = this.head;
+ while(n != null){
+ n = n.getNext();
+ count += 1;
+ }
+ return count;
+ }
+}
\ No newline at end of file
diff --git a/data-structures/src/main/java/za/co/oldtimerza/data/List.java b/data-structures/src/main/java/za/co/oldtimerza/data/List.java
new file mode 100644
index 0000000..88311dd
--- /dev/null
+++ b/data-structures/src/main/java/za/co/oldtimerza/data/List.java
@@ -0,0 +1,12 @@
+package za.co.oldtimerza.data;
+
+public interface List{
+ Linkable getFirst();
+ Linkable getLast();
+ Linkable get(int index);
+ Linkable get(T t);
+ void add(T t);
+ void add(int index, T t);
+ void remove(int index);
+ int length();
+}
diff --git a/data-structures/src/main/java/za/co/oldtimerza/data/Node.java b/data-structures/src/main/java/za/co/oldtimerza/data/Node.java
new file mode 100644
index 0000000..0734edf
--- /dev/null
+++ b/data-structures/src/main/java/za/co/oldtimerza/data/Node.java
@@ -0,0 +1,40 @@
+package za.co.oldtimerza.data;
+
+public class Node implements Linkable{
+
+ private Linkable prev = null;
+ private Linkable next = null;
+ private T data = null;
+
+ public Node(T t){
+ this.data = t;
+ }
+
+ public Node(){
+
+ }
+
+ public Linkable getPrev() {
+ return prev;
+ }
+
+ public void setPrev(Linkable prev) {
+ this.prev = prev;
+ }
+
+ public Linkable getNext() {
+ return next;
+ }
+
+ public void setNext(Linkable next) {
+ this.next = next;
+ }
+
+ public T getData() {
+ return data;
+ }
+
+ public void setData(Object t) {
+ this.data = data;
+ }
+}
\ No newline at end of file
diff --git a/data-structures/src/main/java/za/co/oldtimerza/data/Queue.java b/data-structures/src/main/java/za/co/oldtimerza/data/Queue.java
new file mode 100644
index 0000000..9c242b8
--- /dev/null
+++ b/data-structures/src/main/java/za/co/oldtimerza/data/Queue.java
@@ -0,0 +1,15 @@
+package za.co.oldtimerza.data;
+
+public interface Queue{
+ void setHead(T t);
+ void setTail(T t);
+ Linkable getFirst();
+ Linkable getLast();
+ Linkable get(int index);
+ Linkable get(T t);
+ void add(T t);
+ void add(int index, T t);
+ void remove(int index);
+ int length();
+}
+
diff --git a/data-structures/src/main/java/za/co/oldtimerza/data/Stack.java b/data-structures/src/main/java/za/co/oldtimerza/data/Stack.java
new file mode 100644
index 0000000..caeddf1
--- /dev/null
+++ b/data-structures/src/main/java/za/co/oldtimerza/data/Stack.java
@@ -0,0 +1,58 @@
+package za.co.oldtimerza.data;
+
+public class Stack implements Queue {
+
+ public Stack()
+ {
+ }
+
+ @Override
+ public void setHead(T t) {
+
+ }
+
+ @Override
+ public void setTail(T t) {
+
+ }
+
+ @Override
+ public Linkable getFirst() {
+ return null;
+ }
+
+ @Override
+ public Linkable getLast() {
+ return null;
+ }
+
+ @Override
+ public Linkable get(int index) {
+ return null;
+ }
+
+ @Override
+ public Linkable get(T t) {
+ return null;
+ }
+
+ @Override
+ public void add(T t) {
+
+ }
+
+ @Override
+ public void add(int index, T t) {
+
+ }
+
+ @Override
+ public void remove(int index) {
+
+ }
+
+ @Override
+ public int length() {
+ return 0;
+ }
+}
diff --git a/data-structures/src/test/java/za/co/oldtimerza/data/LinkedListTest.java b/data-structures/src/test/java/za/co/oldtimerza/data/LinkedListTest.java
new file mode 100644
index 0000000..860d924
--- /dev/null
+++ b/data-structures/src/test/java/za/co/oldtimerza/data/LinkedListTest.java
@@ -0,0 +1,53 @@
+package za.co.oldtimerza.data;
+
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+
+public class LinkedListTest{
+
+ private LinkedList list;
+ private Linkable node1;
+ private Linkable node2;
+ private Linkable node3;
+
+ @Before
+ public void setup(){
+ this.list = new LinkedList();
+ this.list.add("node1");
+ this.list.add("node2");
+ this.list.add("node3");
+ }
+
+ @Test
+ public void shouldAddHeadToList()
+ {
+ Assert.assertEquals(this.list.getFirst().getData(),"node1");
+ }
+
+ @Test
+ public void shouldAddNodeToEndOfList()
+ {
+ Assert.assertEquals(this.list.getLast().getData(),"node3");
+ }
+
+ @Test
+ public void shoudlAddNodeAtPosition()
+ {
+ Linkable node4 = new Node();
+ this.list.add(1,"node4");
+ Assert.assertEquals(this.list.get(2).getNext().getData(), "node3");
+ }
+
+ @Test
+ public void shouldGetListLength()
+ {
+ Assert.assertEquals(this.list.length(),3);
+ }
+
+ @Test
+ public void shouldGetNode(){
+ Assert.assertEquals(this.list.get(1).getData(),"node2");
+ }
+}
+
diff --git a/data-structures/src/test/java/za/co/oldtimerza/data/NodeTest.java b/data-structures/src/test/java/za/co/oldtimerza/data/NodeTest.java
new file mode 100644
index 0000000..d90b763
--- /dev/null
+++ b/data-structures/src/test/java/za/co/oldtimerza/data/NodeTest.java
@@ -0,0 +1,32 @@
+package za.co.oldtimerza.data;
+
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+
+public class NodeTest{
+
+ private Node node1;
+ private Node node2;
+
+
+ @Before
+ public void setup(){
+ node1 = new Node();
+ node2 = new Node();
+ }
+
+ @Test
+ public void shouldSetNodeData(){
+ node2.setData("test");
+ Assert.assertEquals(node2.getData(),"test");
+ }
+
+ @Test
+ public void shouldSetNodeNext(){
+ node1.setNext(node2);
+ node2.setData("test");
+ Assert.assertEquals(node1.getNext().getData(), "test");
+ }
+
+}
\ No newline at end of file
diff --git a/data-structures/src/test/java/za/co/oldtimerza/data/Queue1Test.java b/data-structures/src/test/java/za/co/oldtimerza/data/Queue1Test.java
new file mode 100644
index 0000000..0566fab
--- /dev/null
+++ b/data-structures/src/test/java/za/co/oldtimerza/data/Queue1Test.java
@@ -0,0 +1,44 @@
+package za.co.oldtimerza.data;
+
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+
+public class Queue1Test {
+
+ private LinkedList queue;
+ private Linkable node1;
+ private Linkable node2;
+ private Linkable node3;
+ private Linkable node4;
+
+ @Before
+ public void setup(){
+ this.queue = new LinkedList();
+
+ this.node1 = new Node("node1");
+ this.node2 = new Node("node2");
+ this.node3 = new Node("node3");
+ this.node4 = new Node("node4");
+ }
+
+ @Test
+ public void shouldAddNodeToQueue()
+ {
+ this.queue.add(node1);
+ Assert.assertEquals(this.queue.getFirst(),node1);
+
+ }
+
+
+
+ @Test
+ public void shouldGetBackOfQueue()
+ {
+ this.queue.add(node1);
+ this.queue.add(node2);
+ this.queue.add(node3);
+ Linkable tail = this.queue.getLast();
+ Assert.assertEquals(tail,node3);
+ }
+}
diff --git a/pom.xml b/pom.xml
index 6c77d6b..d521737 100644
--- a/pom.xml
+++ b/pom.xml
@@ -11,8 +11,9 @@
java-experiments=sort
pass-by
+ data-structures
+ sorts
-
junit
@@ -21,5 +22,4 @@
test
-
\ No newline at end of file
diff --git a/sorts/sorts.iml b/sorts/sorts.iml
deleted file mode 100644
index ea1c5c2..0000000
--- a/sorts/sorts.iml
+++ /dev/null
@@ -1,18 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/sorts/src/main/java/za/co/oldtimerza/sorts/BubbleSort.java b/sorts/src/main/java/za/co/oldtimerza/sorts/BubbleSort.java
new file mode 100644
index 0000000..0aa2c1c
--- /dev/null
+++ b/sorts/src/main/java/za/co/oldtimerza/sorts/BubbleSort.java
@@ -0,0 +1,27 @@
+package za.co.oldtimerza.sorts;
+
+import java.util.List;
+
+public class BubbleSort {
+
+ public List sort(List sortableList){
+ return bubbleSort(sortableList);
+ }
+
+ private List bubbleSort(List arr){
+
+ int i;
+ int j;
+
+ for (i=0; iarr.get(j)){
+ arr.set(j-1,arr.get(j));
+ arr.set(j,value);
+ }
+ }
+ }
+ return arr;
+ }
+}
diff --git a/sorts/src/main/java/za/co/oldtimerza/sorts/InsertionSort.java b/sorts/src/main/java/za/co/oldtimerza/sorts/InsertionSort.java
new file mode 100644
index 0000000..ebe1f5a
--- /dev/null
+++ b/sorts/src/main/java/za/co/oldtimerza/sorts/InsertionSort.java
@@ -0,0 +1,29 @@
+package za.co.oldtimerza.sorts;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+public class InsertionSort {
+ public List sort(List sortableList) {
+ return insertionSort(sortableList);
+ }
+
+ private int test;
+
+ private List insertionSort(List arr) {
+
+ for (int i = 1; i < arr.size(); i++) {
+ int value = arr.get(i);
+ int j = i;
+
+ while (j > 0 && value < arr.get(j - 1)) {
+ arr.set(j, arr.get(j - 1));
+ j--;
+ }
+
+ arr.set(j, value);
+ }
+
+ return arr;
+ }
+}
diff --git a/sorts/src/main/java/za/co/oldtimerza/sorts/SelectSort.java b/sorts/src/main/java/za/co/oldtimerza/sorts/SelectSort.java
new file mode 100644
index 0000000..df47f6a
--- /dev/null
+++ b/sorts/src/main/java/za/co/oldtimerza/sorts/SelectSort.java
@@ -0,0 +1,33 @@
+package za.co.oldtimerza.sorts;
+
+import java.util.ArrayList;
+import java.util.List;
+
+
+public class SelectSort {
+
+ public List sort(List sortableList){
+ return selectSort(sortableList);
+ }
+
+ private List selectSort(List arr){
+
+ int i;
+ int j;
+
+ for(i=0; i < arr.size();i++){
+ int min = i;
+ int curr_value = arr.get(i);
+
+ for(j=i; j sortableList = Arrays.asList(4, 3, 2, 9, 11, 12, 19, 1, 0, 45, 23, 15);
+
+ List sortedList = bubbleSort.sort(sortableList);
+
+ List expectedResult = Arrays.asList(0, 1, 2, 3, 4, 9, 11, 12, 15, 19, 23, 45);
+ Assert.assertEquals(expectedResult, sortedList);
+ }
+}
\ No newline at end of file
diff --git a/sorts/src/test/java/za/co/oldtimerza/sorts/InsertionSortTest.java b/sorts/src/test/java/za/co/oldtimerza/sorts/InsertionSortTest.java
new file mode 100644
index 0000000..faf7687
--- /dev/null
+++ b/sorts/src/test/java/za/co/oldtimerza/sorts/InsertionSortTest.java
@@ -0,0 +1,27 @@
+package za.co.oldtimerza.sorts;
+
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+
+import java.util.Arrays;
+import java.util.List;
+
+public class InsertionSortTest{
+ private InsertionSort insertSort;
+
+ @Before
+ public void setup(){
+ insertSort = new InsertionSort();
+ }
+
+ @Test
+ public void shouldSortIntegers(){
+ List sortableList = Arrays.asList(4, 3, 2, 9, 11, 12, 19, 1, 0, 45, 23, 15);
+
+ List sortedList = insertSort.sort(sortableList);
+
+ List expectedResult = Arrays.asList(0, 1, 2, 3, 4, 9, 11, 12, 15, 19, 23, 45);
+ Assert.assertEquals(expectedResult, sortedList);
+ }
+}
\ No newline at end of file
diff --git a/sorts/src/test/java/za/co/oldtimerza/sorts/SelectSortTests.java b/sorts/src/test/java/za/co/oldtimerza/sorts/SelectSortTests.java
new file mode 100644
index 0000000..ffc0e15
--- /dev/null
+++ b/sorts/src/test/java/za/co/oldtimerza/sorts/SelectSortTests.java
@@ -0,0 +1,27 @@
+package za.co.oldtimerza.sorts;
+
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+
+import java.util.Arrays;
+import java.util.List;
+
+public class SelectSortTests {
+ private SelectSort selectSort;
+
+ @Before
+ public void setup(){
+ selectSort = new SelectSort();
+ }
+
+ @Test
+ public void shouldSortIntegers(){
+ List sortableList = Arrays.asList(4, 3, 2, 9, 11, 12, 19, 1, 0, 45, 23, 15);
+
+ List sortedList = selectSort.sort(sortableList);
+
+ List expectedResult = Arrays.asList(0, 1, 2, 3, 4, 9, 11, 12, 15, 19, 23, 45);
+ Assert.assertEquals(expectedResult, sortedList);
+ }
+}
\ No newline at end of file
diff --git a/sorts/target/classes/za/co/oldtimerza/sorts/MergeSort.class b/sorts/target/classes/za/co/oldtimerza/sorts/MergeSort.class
deleted file mode 100644
index c5e62e2..0000000
Binary files a/sorts/target/classes/za/co/oldtimerza/sorts/MergeSort.class and /dev/null differ
diff --git a/sorts/target/classes/za/co/oldtimerza/sorts/QuickSort.class b/sorts/target/classes/za/co/oldtimerza/sorts/QuickSort.class
deleted file mode 100644
index 2a3f1d0..0000000
Binary files a/sorts/target/classes/za/co/oldtimerza/sorts/QuickSort.class and /dev/null differ
diff --git a/sorts/target/test-classes/za/co/oldtimerza/sorts/MergeSortTests.class b/sorts/target/test-classes/za/co/oldtimerza/sorts/MergeSortTests.class
deleted file mode 100644
index 3b91b15..0000000
Binary files a/sorts/target/test-classes/za/co/oldtimerza/sorts/MergeSortTests.class and /dev/null differ
diff --git a/sorts/target/test-classes/za/co/oldtimerza/sorts/QuickSortTests.class b/sorts/target/test-classes/za/co/oldtimerza/sorts/QuickSortTests.class
deleted file mode 100644
index 25894ae..0000000
Binary files a/sorts/target/test-classes/za/co/oldtimerza/sorts/QuickSortTests.class and /dev/null differ