From b018ca913cca6d3c8fb89c9adb9bacd03966241a Mon Sep 17 00:00:00 2001 From: chris Date: Fri, 23 Sep 2022 10:17:40 +0200 Subject: [PATCH] =?UTF-8?q?Entfernen=20der=20L=C3=B6sungsdateien=20f=C3=BC?= =?UTF-8?q?r=20das=20Queue-Testat?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../SimplePriorityQueue00000.java | 123 --------------- .../SimplePriorityQueueTest00000.java | 45 ------ .../src/testat_g11/IPriorityQueue.java | 29 ---- .../SimplePriorityQeueTest11111.java | 12 -- .../src/testat_g11/SimplePriorityQueue.java | 140 ------------------ 5 files changed, 349 deletions(-) delete mode 100644 SimplePriorityQueue/src/solution_g11/SimplePriorityQueue00000.java delete mode 100644 SimplePriorityQueue/src/solution_g11/SimplePriorityQueueTest00000.java delete mode 100644 SimplePriorityQueue/src/testat_g11/IPriorityQueue.java delete mode 100644 SimplePriorityQueue/src/testat_g11/SimplePriorityQeueTest11111.java delete mode 100644 SimplePriorityQueue/src/testat_g11/SimplePriorityQueue.java diff --git a/SimplePriorityQueue/src/solution_g11/SimplePriorityQueue00000.java b/SimplePriorityQueue/src/solution_g11/SimplePriorityQueue00000.java deleted file mode 100644 index 0fe5903..0000000 --- a/SimplePriorityQueue/src/solution_g11/SimplePriorityQueue00000.java +++ /dev/null @@ -1,123 +0,0 @@ -package solution_g11; - -import java.util.function.Consumer; - -import testat_g11.IPDetermination; -import testat_g11.IPriorityQueue; -import testat_g11.Ticket; -import testat_g11.TicketStatus; - -public class SimplePriorityQueue00000 implements IPriorityQueue { - - private IPDetermination prioDet; - private int size; - private T[] tickets; - - public SimplePriorityQueue00000(IPDetermination prioDet) { - super(); - this.prioDet = prioDet; - - tickets = (T[]) java.lang.reflect.Array.newInstance(Ticket.class, 10); - size = 0; - } - - @Override - public boolean add(T t) { - if (t == null) { - return false; - } - if (t.getPriority() < 0) { - return false; - } - int priority = setPriority(t, t.getPriority()); - if (priority >= 0) { - return true; // fehler - } else { - tickets[size] = t; - size++; - } - return true; - } - - @Override - public T poll() { - if (size == 0) { - return null; - } - T ticket = tickets[0]; - for (int i = 1; i < size; i++) { - if (prioDet.calculate(tickets[i]) > prioDet.calculate(ticket)) { - ticket.incrementAge(); - ticket = tickets[i]; - } else { - tickets[i].incrementAge(); - } - } - remove(ticket); - return ticket; - } - - @Override - public boolean contains(T t) { - int index = getIndexOfTicket(t); - return index >= 0; - } - - private int getIndexOfTicket(T t) { - for (int i = 0; i < size; i++) { - if (tickets[i].equals(t)) { - return i; - } - - } - return -1; - } - - @Override - public int getTotalPriority(T t) { - int index = getIndexOfTicket(t); - if (index >= 0) { - return prioDet.calculate(tickets[index]); - } - return -1; - } - - @Override - public int setPriority(T t, int newPriority) { - int index = getIndexOfTicket(t); - if (index >= 0) { - tickets[index].setPriority(newPriority); - return prioDet.calculate(tickets[index]); - } - return -1; - } - - @Override - public int size() { - return size; - } - - @Override - public void forAll(Consumer action) { - for (int i = 0; i < size; i++) { - action.accept(tickets[i]); - } - - } - - @Override - public boolean remove(T t) { - int index = getIndexOfTicket(t); - if (index < 0) { - return false; - } - t.setStatus(TicketStatus.FINISHED); - for (int i = index; i < size - 1; i++) { - tickets[i] = tickets[i + 1]; - } - tickets[size - 1] = null; - size = size - 1; - return true; - } - -} diff --git a/SimplePriorityQueue/src/solution_g11/SimplePriorityQueueTest00000.java b/SimplePriorityQueue/src/solution_g11/SimplePriorityQueueTest00000.java deleted file mode 100644 index ff88606..0000000 --- a/SimplePriorityQueue/src/solution_g11/SimplePriorityQueueTest00000.java +++ /dev/null @@ -1,45 +0,0 @@ -package solution_g11; - -import static org.junit.Assert.assertEquals; - -import org.junit.jupiter.api.Test; - -import testat_g11.ASimplePriorityQueueBaseTest; -import testat_g11.IPDetermination; -import testat_g11.IPriorityQueue; -import testat_g11.Ticket; - -public class SimplePriorityQueueTest00000 extends ASimplePriorityQueueBaseTest { - - protected static IPDetermination prioDetermination = new IPDetermination<>() { - - @Override - public int calculate(Ticket t) { - // TODO Auto-generated method stub - return IPDetermination.super.calculate(t); - } - - }; - - @Override - protected IPriorityQueue getInstance() { - // TODO Auto-generated method stub - return new SimplePriorityQueue00000(new IPDetermination() { - }); - } - - @Test - public void testPoll5() { - queue.add(t1); - queue.add(t2); - queue.add(t3); - queue.poll(); - queue.poll(); - queue.add(t8); - Ticket actual = queue.poll(); - assertEquals(t2, actual); - actual = queue.poll(); - assertEquals(t8, actual); - } - -} diff --git a/SimplePriorityQueue/src/testat_g11/IPriorityQueue.java b/SimplePriorityQueue/src/testat_g11/IPriorityQueue.java deleted file mode 100644 index 8fcf800..0000000 --- a/SimplePriorityQueue/src/testat_g11/IPriorityQueue.java +++ /dev/null @@ -1,29 +0,0 @@ -package testat_g11; - -import java.util.function.Consumer; - -public interface IPriorityQueue { - - // Nimmt t in die Queue auf, sofern t != null und t noch nicht enthalten und die - // Priorität >= 0 ist. - // ist t bereits enthalten, wird es nicht erneut aufgenommen, aber die Priorität - // des bestehenden Tickets durch die Priorität von t ersetzt. - // Rückgabe: False, wenn t == null, true sonst - boolean add(T t); - - // Entfernt das Element mit der größten Priorität aus der Queue - T poll(); - - boolean contains(T t); - - boolean remove(T t); - - int getTotalPriority(T t); - - int setPriority(T t, int newPriority); - - int size(); - - void forAll(Consumer action); - -} diff --git a/SimplePriorityQueue/src/testat_g11/SimplePriorityQeueTest11111.java b/SimplePriorityQueue/src/testat_g11/SimplePriorityQeueTest11111.java deleted file mode 100644 index feca8a9..0000000 --- a/SimplePriorityQueue/src/testat_g11/SimplePriorityQeueTest11111.java +++ /dev/null @@ -1,12 +0,0 @@ -package testat_g11; - -public class SimplePriorityQeueTest11111 extends ASimplePriorityQueueTest{ - - @Override - protected IPriorityQueue getInstance() { - // TODO Auto-generated method stub - return new SimplePriorityQueue(new IPDetermination() { - }); - } - -} diff --git a/SimplePriorityQueue/src/testat_g11/SimplePriorityQueue.java b/SimplePriorityQueue/src/testat_g11/SimplePriorityQueue.java deleted file mode 100644 index 2dd79db..0000000 --- a/SimplePriorityQueue/src/testat_g11/SimplePriorityQueue.java +++ /dev/null @@ -1,140 +0,0 @@ -package testat_g11; - -import java.util.function.Consumer; - -public class SimplePriorityQueue implements IPriorityQueue { - - private T[] tickets; - private int size; - private IPDetermination prioDet; - - public SimplePriorityQueue(IPDetermination prioDet) { - super(); - this.prioDet = prioDet; - tickets = (T[]) java.lang.reflect.Array.newInstance(Ticket.class, 10); - size = 0; - } - - private int getIndexOfTicket(T t) { - for (int i = 0; i < size; i++) { - if (tickets[i].equals(t)) { - return i; - } - } - return -1; - } - - // Nimmt t in die Queue auf, sofern t != null und t noch nicht enthalten und - // die Priorität >= 0 ist. Ist t bereits enthalten, wird es nicht erneut - // aufgenommen, aber die Priorität des bestehenden Tickets durch die Priorität - // von t ersetzt. Rückgabe: False, wenn t == null, true sonst - @Override - public boolean add(T t) { - if (t == null | t.getPriority() < 0) { - return false; - } else if (this.contains(t)) { - setPriority(tickets[getIndexOfTicket(t)], t.getPriority()); - } else { - tickets[size] = t; - size++; - } - return true; - } - - - // Entnimmt das Ticket mit der größten Gesamtpriorität (gemäß Implementierung - // von IPDetermination. Falls zwei Tickets die gleiche Gesamtpriorität - // aufweisen, wird das Ticket gewählt, dessen BeginOfTicket-Datum kleiner ist - // (das ältere Ticket). Bei den restlichen Tickets wird das Alter mit der - // Methode incrementAge() erhöht (Siehe Ticket im Paket testat_g11) - @Override - public T poll() { - if (size == 0) { - return null; - } - T tick = tickets[0]; - - for (int i = 1; i < size; i++) { - if (prioDet.calculate(tickets[i]) > prioDet.calculate(tick)) { - tick.incrementAge(); - tick = tickets[i]; - } else { - tickets[i].incrementAge(); - } - } - - // Der Fall 2 Tickets haben die gleiche HöchstPrio - for (int i = 0; i < size; i++) { - if (prioDet.calculate(tickets[i]) == prioDet.calculate(tick) & !tickets[i].equals(tick)) { - if (tick.getBeginOfTicket() != null && tickets[i].getBeginOfTicket() != null) { - if (tick.getBeginOfTicket().after(tickets[i].getBeginOfTicket())) { - tick = tickets[i]; - } - } - } - } - - remove(tick); - return tick; - } - - // True: Ticket t ist enthalten, false sonst - @Override - public boolean contains(T t) { - return this.getIndexOfTicket(t) >= 0; - } - - // True: Ticket t wurde entfernt, false sonst. Der Status des entfernten - // Tickets wird auf TicketStatus.FINISHED gesetzt - @Override - public boolean remove(T t) { - int index = getIndexOfTicket(t); - if (index < 0) { - return false; - } - t.setStatus(TicketStatus.FINISHED); - for (int i = index; i < size - 1; i++) { - tickets[i] = tickets[i + 1]; - } - tickets[size - 1] = null; - size--; - return true; - } - - // Liefert die Gesamtpriorität (IPDetermination) von t bzw. -1 falls t nicht - // enthalten ist - @Override - public int getTotalPriority(T t) { - if (!this.contains(t)) { - return -1; - } - return prioDet.calculate(t); - } - - // Setzt die Priorität von t auf newPriority. Rückgabe wie getPriority() - @Override - public int setPriority(T t, int newPriority) { - int index = getIndexOfTicket(t); - if (index >= 0) { - tickets[index].setPriority(newPriority); - return prioDet.calculate(tickets[index]); - } - return -1; - } - - // Anzahl der Elemente in der Queue - @Override - public int size() { - return size; - } - - // Wendet die Methode action.accept(…) auf alle Tickets an, die in der Queue - // enthalten sind - @Override - public void forAll(Consumer action) { - for (int i = 0; i < size; i++) { - action.accept(tickets[i]); - } - } - -}