From 7e31b68407f3a605e92ff3f56de404a57dadce2f Mon Sep 17 00:00:00 2001
From: Fourn <alexandre.fournel@etu.univ-amu.fr>
Date: Fri, 9 Dec 2022 11:56:16 +0100
Subject: [PATCH] task5 + questions

---
 src/main/java/fr/univamu/sorting/Sort.java    | 22 +++++++++++
 .../java/fr/univamu/sorting/Sortable.java     | 37 +++++++++++++++++++
 .../fr/univamu/sorting/SortableIntArray.java  | 19 ++++++++++
 .../fr/univamu/sorting/SortableIntList.java   |  8 ++--
 .../java/fr/univamu/sorting/ListSortTest.java | 21 +----------
 5 files changed, 82 insertions(+), 25 deletions(-)
 create mode 100644 src/main/java/fr/univamu/sorting/Sort.java
 create mode 100644 src/main/java/fr/univamu/sorting/Sortable.java
 create mode 100644 src/main/java/fr/univamu/sorting/SortableIntArray.java

diff --git a/src/main/java/fr/univamu/sorting/Sort.java b/src/main/java/fr/univamu/sorting/Sort.java
new file mode 100644
index 0000000..8d4e21c
--- /dev/null
+++ b/src/main/java/fr/univamu/sorting/Sort.java
@@ -0,0 +1,22 @@
+package fr.univamu.sorting;
+
+import java.util.List;
+
+public class Sort {
+    public Sortable sortable;
+
+    public List<Integer> IntList;
+    public int[] IntTab;
+
+
+    public void sort() {
+        for (int i = 0; i < this.size() - 1; i++) {
+            for (int j = i + 1; j < this.size(); j++) {
+                if (compare(j,i) < 0) {
+                    swap(i,j);
+                }
+            }
+        }
+    }
+}
+
diff --git a/src/main/java/fr/univamu/sorting/Sortable.java b/src/main/java/fr/univamu/sorting/Sortable.java
new file mode 100644
index 0000000..8f0b574
--- /dev/null
+++ b/src/main/java/fr/univamu/sorting/Sortable.java
@@ -0,0 +1,37 @@
+package fr.univamu.sorting;
+
+public interface Sortable {
+    public void swap(int index1, int index2) {
+        int value1 = IntTab[index1];
+        int value2 = IntTab[index2];
+        IntTab[index1] = value2;
+        IntTab[index2] = value1;
+
+    }
+
+    public int compare(int index1, int index2) {
+        return IntTab[index1] - (IntTab[index2];
+    }
+
+    public int size() {
+        return IntTab.length;
+    }
+    public void swap(int index1, int index2) {
+        int value1 = IntList.get(index1);
+        int value2 = IntList.get(index2);
+        IntList.set(index1, value1);
+        IntList.set(index2, value2);
+    }
+
+    public int compare(int index1, int index2) {
+        return IntList.get(index1).compareTo(IntList.get(index2));
+    }
+
+    public int size() {
+        return IntList.size();
+    }
+
+    public int get(int index) {
+        return IntList.get(index);
+    }
+}
diff --git a/src/main/java/fr/univamu/sorting/SortableIntArray.java b/src/main/java/fr/univamu/sorting/SortableIntArray.java
new file mode 100644
index 0000000..aaa80ba
--- /dev/null
+++ b/src/main/java/fr/univamu/sorting/SortableIntArray.java
@@ -0,0 +1,19 @@
+package fr.univamu.sorting;
+
+public class SortableIntArray {
+    public int[] IntTab;
+
+    public void swap(int index1, int index2) {
+        int value1 = IntTab[index1];
+        int value2 = IntTab[index2];
+        IntTab[index1] = value2;
+        IntTab[index2] = value1;
+    }
+    public int compare(int index1, int index2) {
+        return IntTab[index1] - (IntTab[index2];
+    }
+    public int size() {
+        return IntTab.length;
+    }
+
+}
diff --git a/src/main/java/fr/univamu/sorting/SortableIntList.java b/src/main/java/fr/univamu/sorting/SortableIntList.java
index 65cc74c..042c4d5 100644
--- a/src/main/java/fr/univamu/sorting/SortableIntList.java
+++ b/src/main/java/fr/univamu/sorting/SortableIntList.java
@@ -2,7 +2,7 @@ package fr.univamu.sorting;
 import java.util.*;
 
 public class SortableIntList {
-    public ArrayList<Integer> IntList;
+    public List<Integer> IntList;
 
     public void swap(int index1, int index2) {
         int value1 = IntList.get(index1);
@@ -13,7 +13,6 @@ public class SortableIntList {
 
     public int compare(int index1, int index2) {
         return IntList.get(index1).compareTo(IntList.get(index2));
-
     }
 
     public int size() {
@@ -23,12 +22,11 @@ public class SortableIntList {
     public int get(int index) {
         return IntList.get(index);
     }
-
     public void sort() {
         for (int i = 0; i < IntList.size() - 1; i++) {
             for (int j = i + 1; j < IntList.size(); j++) {
-                if (compare(IntList.get(j), IntList.get(i)) < 0) {
-                    swap(IntList.get(i), IntList.get(j));
+                if (compare(j,i) < 0) {
+                    swap(i,j);
                 }
             }
         }
diff --git a/src/test/java/fr/univamu/sorting/ListSortTest.java b/src/test/java/fr/univamu/sorting/ListSortTest.java
index d25a4ef..76a1d00 100644
--- a/src/test/java/fr/univamu/sorting/ListSortTest.java
+++ b/src/test/java/fr/univamu/sorting/ListSortTest.java
@@ -12,26 +12,7 @@ class ListSortTest {
 
   @Test
   void testSort() {
-    ArrayList<Integer> TestList = new ArrayList<Integer>(8);
-    TestList.add(1);
-    TestList.add(8);
-    TestList.add(9);
-    TestList.add(5);
-    TestList.add(4);
-    TestList.add(3);
-    TestList.add(2);
-    TestList.add(4);
-    ArrayList<Integer> TestList2 = new ArrayList<Integer>(8);
-    TestList.add(1);
-    TestList.add(2);
-    TestList.add(3);
-    TestList.add(4);
-    TestList.add(4);
-    TestList.add(5);
-    TestList.add(8);
-    TestList.add(9);
-    assertThat(TestList.sort()).isEqualTo(TestList2);
-
+    assertThat(shuffledRange(1,8).sort()).isEqualTo(range(1,8));
   }
 
 }
\ No newline at end of file
-- 
GitLab