From cc6c4ed8221024d7ea2b119e70eb18aed536e92b Mon Sep 17 00:00:00 2001 From: CedricNew Date: Tue, 10 Jan 2023 00:47:27 +0100 Subject: [PATCH 1/2] New created test class for Nexus6 with tests --- tests/tests/Nexus6Test.java | 107 ++++++++++++++++++++++++++++++++++++ 1 file changed, 107 insertions(+) create mode 100644 tests/tests/Nexus6Test.java diff --git a/tests/tests/Nexus6Test.java b/tests/tests/Nexus6Test.java new file mode 100644 index 0000000..5874631 --- /dev/null +++ b/tests/tests/Nexus6Test.java @@ -0,0 +1,107 @@ +package tests; + +import domain.Nexus6; +import domain.R2D2; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import utility.robot_exceptions.RobotException; + +import static org.junit.jupiter.api.Assertions.*; + +class Nexus6Test { + + Nexus6 nexus6; + int id = 19281982; + String name = "Pris"; + + @BeforeEach + void setup(){ + nexus6 = new Nexus6(name); + nexus6.triggerPowerSwitch(); + } + + @Test + void getId() { + assertEquals(id, nexus6.getId()); + } + + @Test + void getName() { + assertEquals(name, nexus6.getName()); + } + + @Test + void triggerPowerSwitch() { + assertTrue(nexus6.isPowerOn()); + nexus6.triggerPowerSwitch(); + assertFalse(nexus6.isPowerOn()); + } + + @Test + void R2D2SpeakTestEmpty() { + try{ + String solution = nexus6.speak(new int[]{}); + }catch(RobotException re){ + assertEquals(0, "Pris ist in einem illegalen Zustand".compareTo(re.getMessage())); + } + } + + @Test + void R2D2SpeakTestZeros() throws RobotException { + try{ + String solution = nexus6.speak(new int[4]); + }catch(RobotException re){ + assertEquals(0, "Pris ist in einem illegalen Zustand".compareTo(re.getMessage())); + } + } + + @Test + void R2D2SpeakTestOneElement() throws RobotException { + try{ + String solution = nexus6.speak(new int[]{1}); + }catch(RobotException re){ + assertEquals(0, "Pris ist in einem illegalen Zustand".compareTo(re.getMessage())); + } + } + + @Test + void R2D2SpeakTestUnitElements() throws RobotException { + try{ + String solution = nexus6.speak(new int[]{-1, 0, 1}); + }catch(RobotException re){ + assertEquals(0, "Pris ist in einem illegalen Zustand".compareTo(re.getMessage())); + } + } + + @Test + void R2D2SpeakTestMagicNumberException() { + + try{ + String solution = nexus6.speak(new int[]{42}); + }catch(RobotException re){ + assertEquals(0, "Pris ist in einem illegalen Zustand".compareTo(re.getMessage())); + } + } + + @Test + void speak(){ + String solution = "12, 2, 4, 5, 12, 2, 4, 7, 56, 433, 23"; + int[] input = {12, 2, 4, 5, 12, 2, 4, 7, 56, 433, 23}; + try{ + String array = nexus6.speak(input); + } catch(RobotException re) { + assertEquals(0, "Pris ist in einem illegalen Zustand".compareTo(re.getMessage())); + } + } + + @Test + void think(){ + int[] solution = { 2, 4, 4, 5, 7, 12, 23, 56, 433}; + int[] input = { 4, 5, 12, 2, 4, 7, 56, 433, 23}; + try{ + int[] value = nexus6.think(input); + }catch(RobotException re){ + assertEquals(0, "Pris ist in einem illegalen Zustand".compareTo(re.getMessage())); + } + } + } \ No newline at end of file From 5210c54003c063776e269d6fd8a8702d20165dae Mon Sep 17 00:00:00 2001 From: CedricNew Date: Tue, 10 Jan 2023 00:53:37 +0100 Subject: [PATCH 2/2] my changes --- .idea/Robot_Factory_PR.iml | 3 +- .idea/misc.xml | 2 +- Main.java | 4 +- .../Robot_Factory_PR/.idea/.gitignore | 3 - .../.idea/Robot_Factory_PR.iml | 37 -- .../Robot_Factory_PR/.idea/misc.xml | 6 - .../Robot_Factory_PR/.idea/modules.xml | 8 - .../Robot_Factory_PR/.idea/uiDesigner.xml | 124 ------ out/production/Robot_Factory_PR/.idea/vcs.xml | 6 - out/production/Robot_Factory_PR/Main.class | Bin 594 -> 0 bytes out/production/Robot_Factory_PR/README.md | 382 ------------------ .../Robot_Factory_PR/domain/C3PO.class | Bin 0 -> 1892 bytes .../Robot_Factory_PR/domain/C3POTest.class | Bin 3582 -> 0 bytes .../Robot_Factory_PR/domain/Factory.class | Bin 2259 -> 2259 bytes .../Robot_Factory_PR/domain/Nexus6.class | Bin 0 -> 1447 bytes .../Robot_Factory_PR/domain/R2D2.class | Bin 0 -> 1873 bytes .../Robot_Factory_PR/domain/R2D2Test.class | Bin 1329 -> 0 bytes .../Robot_Factory_PR/domain/Robot.class | Bin 0 -> 4062 bytes .../Robot_Factory_PR/domain/RobotType.class | Bin 0 -> 1236 bytes .../facade/FactorySystem.class | Bin 1832 -> 1832 bytes .../infrastructure/Persistenz.class | Bin out/production/Robot_Factory_PR/makefile | 31 -- out/production/Robot_Factory_PR/ui/UI$1.class | Bin 0 -> 609 bytes .../production/Robot_Factory_PR/ui/UI.class | Bin 4657 -> 4745 bytes .../utility/interfaces/Robot.class | Bin .../utility/interfaces/RobotControl.class | Bin .../interfaces/RobotInstructions.class | Bin .../ArrayEmptyException.class | Bin .../robot_exceptions/ExceptionStorage.class | Bin 1100 -> 1100 bytes .../robot_exceptions/RobotException.class | Bin 1397 -> 1397 bytes .../RobotIllegalStateException.class | Bin 550 -> 550 bytes .../RobotMagicValueException.class | Bin 544 -> 544 bytes .../robot_exceptions/robotExceptions.class | Bin .../Robot_Factory_PR/tests/C3POTest.class | Bin 0 -> 4888 bytes .../Robot_Factory_PR/tests/Nexus6Test.class | Bin 0 -> 3093 bytes .../Robot_Factory_PR/tests/R2D2Test.class | Bin 0 -> 3453 bytes src/domain/Nexus6.java | 6 +- .../Robot_Factory_PR/domain/C3PO.class | Bin 1841 -> 0 bytes .../Robot_Factory_PR/domain/R2D2.class | Bin 1822 -> 0 bytes .../Robot_Factory_PR/domain/Robot.class | Bin 3983 -> 0 bytes ...toryFactory.ser => test_factoryFactory.ser | Bin 41 files changed, 8 insertions(+), 604 deletions(-) delete mode 100644 out/production/Robot_Factory_PR/.idea/.gitignore delete mode 100644 out/production/Robot_Factory_PR/.idea/Robot_Factory_PR.iml delete mode 100644 out/production/Robot_Factory_PR/.idea/misc.xml delete mode 100644 out/production/Robot_Factory_PR/.idea/modules.xml delete mode 100644 out/production/Robot_Factory_PR/.idea/uiDesigner.xml delete mode 100644 out/production/Robot_Factory_PR/.idea/vcs.xml delete mode 100644 out/production/Robot_Factory_PR/Main.class delete mode 100644 out/production/Robot_Factory_PR/README.md create mode 100644 out/production/Robot_Factory_PR/domain/C3PO.class delete mode 100644 out/production/Robot_Factory_PR/domain/C3POTest.class rename {src/out => out}/production/Robot_Factory_PR/domain/Factory.class (88%) create mode 100644 out/production/Robot_Factory_PR/domain/Nexus6.class create mode 100644 out/production/Robot_Factory_PR/domain/R2D2.class delete mode 100644 out/production/Robot_Factory_PR/domain/R2D2Test.class create mode 100644 out/production/Robot_Factory_PR/domain/Robot.class create mode 100644 out/production/Robot_Factory_PR/domain/RobotType.class rename {src/out => out}/production/Robot_Factory_PR/facade/FactorySystem.class (88%) rename {src/out => out}/production/Robot_Factory_PR/infrastructure/Persistenz.class (100%) delete mode 100644 out/production/Robot_Factory_PR/makefile create mode 100644 out/production/Robot_Factory_PR/ui/UI$1.class rename {src/out => out}/production/Robot_Factory_PR/ui/UI.class (50%) rename {src/out => out}/production/Robot_Factory_PR/utility/interfaces/Robot.class (100%) rename {src/out => out}/production/Robot_Factory_PR/utility/interfaces/RobotControl.class (100%) rename {src/out => out}/production/Robot_Factory_PR/utility/interfaces/RobotInstructions.class (100%) rename {src/out => out}/production/Robot_Factory_PR/utility/robot_exceptions/ArrayEmptyException.class (100%) rename {src/out => out}/production/Robot_Factory_PR/utility/robot_exceptions/ExceptionStorage.class (90%) rename {src/out => out}/production/Robot_Factory_PR/utility/robot_exceptions/RobotException.class (90%) rename {src/out => out}/production/Robot_Factory_PR/utility/robot_exceptions/RobotIllegalStateException.class (89%) rename {src/out => out}/production/Robot_Factory_PR/utility/robot_exceptions/RobotMagicValueException.class (89%) rename {src/out => out}/production/Robot_Factory_PR/utility/robot_exceptions/robotExceptions.class (100%) create mode 100644 out/test/Robot_Factory_PR/tests/C3POTest.class create mode 100644 out/test/Robot_Factory_PR/tests/Nexus6Test.class create mode 100644 out/test/Robot_Factory_PR/tests/R2D2Test.class delete mode 100644 src/out/production/Robot_Factory_PR/domain/C3PO.class delete mode 100644 src/out/production/Robot_Factory_PR/domain/R2D2.class delete mode 100644 src/out/production/Robot_Factory_PR/domain/Robot.class rename out/production/Robot_Factory_PR/test_factoryFactory.ser => test_factoryFactory.ser (100%) diff --git a/.idea/Robot_Factory_PR.iml b/.idea/Robot_Factory_PR.iml index 7345876..9247d32 100644 --- a/.idea/Robot_Factory_PR.iml +++ b/.idea/Robot_Factory_PR.iml @@ -3,7 +3,8 @@ - + + diff --git a/.idea/misc.xml b/.idea/misc.xml index d15472f..2be7c15 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,6 +1,6 @@ - + \ No newline at end of file diff --git a/Main.java b/Main.java index e5f8633..023cd66 100644 --- a/Main.java +++ b/Main.java @@ -1,5 +1,5 @@ -import facade.FactorySystem; -import ui.UI; +import src.facade.FactorySystem; +import src.ui.UI; public class Main { public static void main(String[] args) { diff --git a/out/production/Robot_Factory_PR/.idea/.gitignore b/out/production/Robot_Factory_PR/.idea/.gitignore deleted file mode 100644 index 26d3352..0000000 --- a/out/production/Robot_Factory_PR/.idea/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -# Default ignored files -/shelf/ -/workspace.xml diff --git a/out/production/Robot_Factory_PR/.idea/Robot_Factory_PR.iml b/out/production/Robot_Factory_PR/.idea/Robot_Factory_PR.iml deleted file mode 100644 index 7345876..0000000 --- a/out/production/Robot_Factory_PR/.idea/Robot_Factory_PR.iml +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/out/production/Robot_Factory_PR/.idea/misc.xml b/out/production/Robot_Factory_PR/.idea/misc.xml deleted file mode 100644 index b789a5e..0000000 --- a/out/production/Robot_Factory_PR/.idea/misc.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/out/production/Robot_Factory_PR/.idea/modules.xml b/out/production/Robot_Factory_PR/.idea/modules.xml deleted file mode 100644 index 6e7f4ca..0000000 --- a/out/production/Robot_Factory_PR/.idea/modules.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/out/production/Robot_Factory_PR/.idea/uiDesigner.xml b/out/production/Robot_Factory_PR/.idea/uiDesigner.xml deleted file mode 100644 index 2b63946..0000000 --- a/out/production/Robot_Factory_PR/.idea/uiDesigner.xml +++ /dev/null @@ -1,124 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/out/production/Robot_Factory_PR/.idea/vcs.xml b/out/production/Robot_Factory_PR/.idea/vcs.xml deleted file mode 100644 index 35eb1dd..0000000 --- a/out/production/Robot_Factory_PR/.idea/vcs.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/out/production/Robot_Factory_PR/Main.class b/out/production/Robot_Factory_PR/Main.class deleted file mode 100644 index c170efe0d4e7ff145af33317217bb33257d29a6b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 594 zcmZ`$%TB^T6g|VMP!W)qh@$vdR88y$K-_3ZOo}d05_DmPQg8^gNtv4PS*}PV@dNxQ z%W~sVv!-%=E9|P;|&~!tR-CMKA83$|B?46)X7_( z%_m*%3swI$WAaVR=wOy2H;6qAMass@CWC}?e?;?z4KPDwNKo~Eqcjl+hOKZSJR Class R2D2 - -### Variables: -`--not set yet--` -___ - -### Methods: -`public R2D2():R2D2` - -

-TestClass R2D2Test -

- -### Variables: - -`public int id` - -`public String name` - -`public R2D2 Herbert` -___ - -### Methods: - -`@BeforeEach` -`setup():void` - -`@Test` - -`getId():void` - -`getName():void` - -`triggerPowerSwitch():void` - -`iPowerOn():void` - - - -

-Class C3PO -

- - -### Variables: -`--not set yet--` -___ - -### Methods: -`//construtor` - -`public C3PO(): C3PO` - -

-TestClass C3PO -

- -### Variables: -`public int id` - -`public String name` - -`public C3PO Herbert` -___ - -### Methods: -`@BeforeEach` -`setup():void` - -`@Test` - -`getId():void` - -`getName():void` - -`triggerPowerSwitch():void` - -`iPowerOn():void` - - - -

-Class RobotBasics -

- - -### Variables: -`private int id` - -`private String name` - -`private boolean power` - -___ - -### Methods: -`public RobotBasics():RobotBasics` - -`public getId():int` - -`public getName():String` - -`public triggerPowerSwitch():void` - -`public ìsPowerOn():boolean` - -`public speak():String` - -`public think():int[]` - -## facade - -

Class Factory

- -### Variables: -`--not set yet--` -___ - -### Methods: -`--not set yet--` - -## Infrastructure - -

Class Persistenz

- -### Variables: -`--not set yet--` -___ - -### Methods: -`existsSavedData():boolean` - -`saveFactoryData():void -> throws` - -`loadFactoryData():Object -> throws` - -## utility - -### utility - -

-Class RobotException -

- -#### Methods: -`public RobotException():Exception` - -

Class RobotIllegalStateException

- -#### Methods: -`public RobotIllegalStateException():RobotException` - -

Class RobotMagicValueException

- -#### Methods: -`public RobotMagicValueException():RobotException` - -### interfaces - -

-Interface Robot

- -#### Methods: -`--not set yet--` - - - -

-Interface RobotControl -

- -### Methods: -`--not set yet--` - -

-Interface RobotInstructions

- -### Methods: -`--not set yet--` - - -## UI - -

Class UI

- -### Variables: -`--not set yet--` -___ - -### Methods: -`--not set yet--` - - - - -

Class Main

- -### Variables: -`--not set yet--` -___ - -### Methods: -`--not set yet--` - -

makefile for Git updates

- -### Variables: -`--not set yet--` -___ - -### Methods: - -`update_readme:` - -`update_make:` - -`update_all:` - - - -## Aufgabe - -PR2-Aufgabe Roboterfabrik -(ursprüngliche Autoren: Sebastian Tschirpke und Steffen Hennhöfer; mit Erweiterungen von Oliver Hummel) -Nach Abschluss Ihres Bachelorstudiums sind Sie auf Jobsuche. In einem Zeitungsartikel -lesen Sie, dass die Firma ASDF123-Roboter AG, junge und kreative Mitarbeiter für den -Aufbau einer Roboterfabrik sucht. Von der Stellenausschreibung ganz hingerissen, machen -Sie sich sofort auf den Weg und reichen Ihre Bewerbungsunterlagen ein. Tatsächlich -meldet sich die Firma kurz darauf bei Ihnen und lädt Sie zu einem Bewerbungsgespräch ein. -Für Sie läuft scheinbar alles perfekt und Sie können es kaum erwarten Ihren zukünftigen -Arbeitgeber von Ihren Qualitäten zu überzeugen. Jedoch zeigt dieser keinerlei Interesse an -Ihren Zeugnissen, sondern knüpft vielmehr Ihre Einstellung an die Lösung folgender Aufgabe -für die Sie Klassen auf der Domänenebene implementieren und testen sollen: -Die Firma möchte eine neue Roboterfabrik aufbauen und benötigt dazu ein Softwaremodell, -welches den Produktionsprozess und die Roboter simuliert. Es handelt sich nur um eine -einzige Fabrik mit einer Fabrikmethode, die flexibel auf Bestellungen der Kunden reagieren -kann. Die Roboterfabrik bietet ihren Kunden zunächst zwei verschiedene Modelle an, beide -aus der Star-Wars-Produktreihe: die Modelle heißen C3PO und R2D2 und sollen gemeinsam -genutzte Funktionalität von einer Superklasse erben. Alle Roboter haben eine einfache -Schnittstelle Robot, mit der sie gesteuert werden können. Diese Schnittstelle besteht insgesamt -aus den folgenden Dateien: - - - -* Robot.java -* RobotControl.java -* RobotInstructions.java - -Die Fabrik ist von ihren Fertigungsanlagen her so konzipiert, dass jeder Roboter einzeln -gefertigt wird. Übergeben wird lediglich das gewünschte Roboter-Modell und der Name und -schon erhält der Kunde den von ihm gewünschten Roboter (also in der Simulation eine Instanz). -Der Unterschied zwischen den angebotenen Modellen liegt in der Ausführung der Befehle aus -dem Interface RobotInstructions. Während R2D2 Arrays immer aufsteigend sortiert und bei der -Umwandlung in ein Array den Inhalt durch Kommas trennt (z.B. 1, 2, 3, 4, 5, 6), sortiert C3PO -Arrays stets absteigend und wandelt deren Inhalt in einen String mit Semikolon als Trennzeichen -um (z.B. 6; 5; 4; 3; 2; 1). R2D2 soll für die Sortierung der Daten einen selbst implementierten -SelectionSort-Algorithmus verwenden, C3PO InsertionSort. Die Zusammenstellung des Strings für -die Rückgabe soll in einer privaten Methode der Roboter- Basisklasse mit Hilfe eines Streams und -Lambda-Ausdrücken erfolgen. -Programmieren Sie zwei Klassen R2D2 und C3PO, die beide das Interface Robot implementieren. -Lesen Sie bitte sorgfältig die Dokumentation der Interfaces, damit Sie die beschriebene Semantik -in Ihrer Implementierung einhalten. Die Seriennummern der R2D2- Modelle bewegen sich im Bereich -von 0–9999, die der C3PO-Modelle von 10000–19999. Schreiben Sie ferner die in den Interfaces -referenzierten Klassen für die Ausnahmen. Sorgen Sie dafür, dass die Ausnahmen den Namen des -Roboters tragen, in dem sie entstanden sind und dass man diesen Namen über die Methode getRobotName() -wieder auslesen kann. -Auch für die Implementierung der Exceptions kann daher eine gemeinsame Superklasse hilfreich sein. -Entwickeln Sie eine Klasse RobotFactory mit deren Hilfe man Instanzen der beiden Roboter- Typen -erzeugen kann. Eine Enumeration mit dem Namen RobotType dient dazu, bei der Erzeugung anzugeben, -ob man einen R2D2- oder einen C3PO-Roboter haben möchte. -Vergessen Sie nicht, dass jeder Roboter eine Seriennummer aus dem jeweiligen Bereich benötigt und -dass er bei der Erzeugung seinen unveränderlichen Namen bekommt. Verbergen Sie die Implementierung -der Roboter vor dem Verwender und erlauben Sie nur Zugriff auf die Factory, die Interfaces und -die Ausnahmen. Wählen Sie entsprechende Pakete gemäß ihrem Schema, um dies zu realisieren. -Zusätzlich zu den beiden produzierten Roboter-Modellen R2D2 und C3PO steht in der Firma noch ein -alter Nexus-6-Roboter mit dem Namen “Pris“ (Seriennummer 19281982)herum, der leider seit einer -Begegnung mit einem Blade-Runner irreparabel defekt ist und nicht eingeschaltet werden kann (man kann -den Schalter zwar drücken, dies hat aber keine Wirkung). Da es nur dieses eine Exemplar gibt, können -auch keine weiteren Nexus-6- Modelle hergestellt werden. Implementieren Sie daher den Nexus-6-Roboter -(Klassenname Nexus6) als Singleton. Beachten Sie, dass die speak- und think-Methoden nicht funktionieren -sollen, sondern grundsätzlich eine Ausnahme Robot"-Illegal"-State"-Exception werfen. -Schreiben Sie automatisierte JUnit-Tests mit denen Sie die korrekte Funktionsweise der Implementierungen -und der Factory-Klasse überprüfen. Denken Sie daran, auch die Ausnahmen zu testen. -Angenommen, Ihre Firma möchte eine weitere Produktlinie eröffnen und in Zukunft auch noch T1000-Roboter -herstellen, die natürlich auch das Robot-Interface implementieren: Welche Änderungen müssten Sie an Ihrem -Projekt durchführen? Sie brauchen keine Implementierung dafür zu erstellen, legen Sie dafür bitte eine -Textdatei in Ihr Projekt, in der Sie die notwendigen Erweiterungen und evtl. Änderungen kurz erläutern. -* Mit Ihrer Implementierung sollten folgende Begrifflichkeiten abgedeckt sein: - * Singleton-Pattern, - * Factory-Pattern, - * Exceptions, - * Interfaces, - * abstrakte Klassen, - * JUnit- Tests, - * Enumerationen, - * Sortieralgorithmen, - * Streams & Lambdas. -* Achten Sie bei Ihrer Implementierung auf die Konsistenz der Sprache (Englisch/Deutsch). -* Kommentieren Sie Ihre Methoden ausführlich mit Javadoc-Kommentaren, - * wie in den Interfaces gezeigt (googlen Sie ggf. nach weiteren Details dafür). -* Bei der Implementierung von Methoden aus den Interfaces, dürfen Sie mit @see... auf deren Javadocs verweisen und müssen die Dokumentation nicht duplizieren. -* Sie müssen kein UML-Diagramm anfertigen, können dies aber gerne tun. -* Testen Sie Ihre Implementierung möglichst umfangreich. Wir werden es auf jeden Fall tun. ! -* Nutzen Sie für die gemeinsame Arbeit an der Implementierung ein Git-Repository und nutzen Sie regelmäßig. -* Es müssen von allen Team-Mitgliedern jeweils mindestens fünf Commits mit substanziellem Inhalt auf den main-Branch gepusht werden. - - - -# Fragen an Hummel - -Was ist mit der Umwandlung von zahlen in arrays den inhalt mit Kommas getrennt gemeint? \ No newline at end of file diff --git a/out/production/Robot_Factory_PR/domain/C3PO.class b/out/production/Robot_Factory_PR/domain/C3PO.class new file mode 100644 index 0000000000000000000000000000000000000000..3914b92c231ce5fa19804e4ee2dac87b7af851fb GIT binary patch literal 1892 zcma)7ZBrXn6n<{9uq154O9`41YSG$ecVnQS_!6Lvm?D}GY|<$0IJkrzx&ph*vZ#D? zrhlU2H^&*i*3JkscBX!J#vkH8&>0n<8~Ks%Z2-g95hd7kH-bNAPOetrsI1}hPS z5LTgR=t8$Z|GKwrIqvvvZ_Nv;`#ZLPGC#Fk78oo(zm$uj2N4xf4ZY9=w9X9z-7}8s z1akuE^kVT#>nm$~%W^lyD}nF08@bco^jZ{g^r`6AFn~dU-lo5k_z`D!+56h|%dS8; zt>5jzkboeDIEFR6gqIo7+Y5H~0vYk%86ox4C{$b&xV9HKTTZY)?n~0E_BVBVCvZG> z_e6z4%Z?(6l!j4U66guM6Cwgb=`$Qha2aDNUe)j#t`N|$FsQO+`jPKNn7$L?!TiYlERp zWM$}afy{q|Zj@U4a89p9n9}PSCNU)twOi^_8uNVo?eopx4Kd!*FpanAq<-J7Z{~g9 z+85|zZRmGpe%{sao=i@(lwVk!ujPw(3bLAJG|Yl!8*|)U+n0q<@q89lw>)@nQDFG2 zde&>QQ@nLHOkdG)?WMi#HQTRRYg?QdEP8cot7iF*w40MkaNi-RSgR9cndbyT&N}Ow zVHB77lV?x$4oU3p*w&_mLQH3E2>Cp!pRd<*q6@^IEkuTJ+(s{jB;{BouCB^ z;RcdRw1EqJCOA8ceqKchT*MWOU;?QII)m~0dB1*4P9d(uQEH698gC(<#1hK%zD#c_ zLS+@nE_^~mijw4?HQ9v!C+E7jvTB%zc=I7Kht;+Ys~tK}v%e4( zepbSIAo&okLkB0EszvgYL82|tP literal 0 HcmV?d00001 diff --git a/out/production/Robot_Factory_PR/domain/C3POTest.class b/out/production/Robot_Factory_PR/domain/C3POTest.class deleted file mode 100644 index 5b148533445498fa5a25c0b6088b13b8485646b1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3582 zcmbVOT~iy^8GeqwR+1MZ1lUlpBPae4;zKnMY(wnE*kEG|L=45oNX7U62S9;f(-gMf!&)HoG@sUoZGtz3$Iq!Mi_kG^y zJx722&!4{oa1Ect5kOEuNJSVCfy9RPM9Y>mvzX1VZs-L^Ao7l38qPI=V7hN9hA3hR z;wp|o6=+?v%9>$jZ;Z_67xgNw1IC(wn2F-JfO1>6S9RNwn-VJ8kQ4}+T3HuJ=Jp&d zIJRLHClquD9BTrMqa7z?Tqgxiq-PHA@WSaHWtlE@D_9W>npkyy+(RP`Vpc@ixW;;$G;Bc8!#W(hntY3YS$}k*mkN)oG@s zM=>FA?&9!7il5Pm)Y}uOy}>1p$2dJQ!sU@Dt_nbg@Dmm9;yNj*R&;Gs7HMVX2m%z` zVCFT)C>hRn*0xqH=Og`TL9e(3XYa|0sropEDNHN4rQ$Yb_UUn9yXxp=CTZ2EvrdmT z!^+N6Jq|UbYh_mbE^-QHRm>qT(C&(CzYXhEkvmG{tMiC*NRHmaJp~IY7V*>lA-GB< z=LM@=(QJLuI)LFzS<0*(_f8a7-p*SY-fr<~M%;J>UtX{2ZMONz(*{(wv)s$1SO?@q8J$^hC#i~G0 zeXVFY5?(J?ob8lm+uHUJl_25Syg9?v=W1oP=%Th-a=X$hXr(31Hssi!3^9D_zOA{v zWUo^&;i~S`Dgxd2YNlh9^(CWfaN~8;v>eTEpEq+yx7eiq*s}F0t*}m@-tRH;{RC_V z*O&W&5+Yu-YL#ehvBqJ;tVqEGRw$>iO99V{1xG7v&T17mM+MA57+ij$m1L{5m$jl% zSdxQ=Fv*wxw89fnU-PTL+8d>kUeroNbDAyNT{lyb^rrps1*>Kk^l3v<-BLd?honZ? zl~EqVK#*UaW_&`Pu+mO&adF$9${a9Ol*sdM)?Bb1suw4wfy9u`S0PLm$z#DXR8olIwkC#(NI^-Gbb99rrNzRj=vjOiXyNi)MFCOb>q2L@j zI^TqzJQDq41O1+l-rIn^^gsM0Syv##W4NDw2GE1SCSScr`g*tSOYpvT+1T(sB*$}! zW8cP?g9$ai917=`!%BWR63s6waw5u!M1(U5B_W^D#AQBXZQ=!g;)#>_+2lKO5@}!u z*XEw1WjypJ-0TkR;7)L`e+Tn!u?6m60ZUYF(AB4m9lXL64D)RSw=hbJG1^?A)g>OC zm+=VWFfid}Hp++}uuDoPySZ=pImT&avO@$B-hzb+t96HU{g`t>*!0njz-vN=6hsxg zr=ZFw$iZZc;GSeXZ9QlZ^p#K0ZXzaWAps#~zQ+m&QAtfA!t^CCl98xnB3)VU@Vf@>lWbq`+8)MrmSK`sH)(f^mQ&cmG(P3M`-}vBfm!ali!YJG z*U00Kn8yqLzG8u7%iLz+wi@O5vhntNbiv_4Bjvg4muQ%XCJQ6zanUc4L980*yb_&5 z@R^0~UeAI{1*icxZy zm1FnX95PD5`{!^!h8v<7E zk{$H`El(S?{N1PJ)*)JwAN`+vbnpaCk%vKc>Xil`L%d_;ZPLb2I4s((EL0oJ%xcCPN57KQusntax z3m^P8PEE`{$H`fqS?sYp!G1oQq~Tgz`#uY)kvKZ3f=QmjmzZH)BV%ZxyKOrC87)4c z&1baw1y7@2lABLy{VUr4hC4pz3HNL6dqx%f*5xL{!gceOl{yJhNaVkRpZ^yrT&*(z diff --git a/src/out/production/Robot_Factory_PR/domain/Factory.class b/out/production/Robot_Factory_PR/domain/Factory.class similarity index 88% rename from src/out/production/Robot_Factory_PR/domain/Factory.class rename to out/production/Robot_Factory_PR/domain/Factory.class index 4767b0ad85b4cee5df51bde516e9c2b9b9590669..55fb31294d29f60acbf474d88f49f775034c9243 100644 GIT binary patch delta 79 zcmcaCcv*16WHv^T$y3roeenv diff --git a/out/production/Robot_Factory_PR/domain/Nexus6.class b/out/production/Robot_Factory_PR/domain/Nexus6.class new file mode 100644 index 0000000000000000000000000000000000000000..2b11119dc520a0cb0571ce9904ecfbdd4efd868b GIT binary patch literal 1447 zcmbtUZBNrs7(I6{bT4ItIS>RC<*ggY#1}+|AmT7f>SElogz&+X(ah>-$<`V8SBg;* zN%Xrv%6Qst3o>RfE?IA%d!Of=^PGEcfByRR9l$EK{9<-xEet;b5`r@NAPEfYS^Jt{ zW?oynmR&kJ&;|Mm`eC!NERayoFJ>bMBO)OxLq@-Vd^UlVtA=UVYXXXrSKnzLv`kGi ztC^x*H_U3b8!c51BaQ(HgEA7hBGBK$Ybyxl3&qk#VKXNXZWes+iSJm8$4V5xVRFPIMTS}|q zn2>QDHw2`rZWpwDnwwNo-Ofai#7)Q2TLSCK)CsUgBAQhV=>vPB) zw9sm$*1A!CB~@m6(Q4K!`j+8z9rbR)qI1!(ME}CP=7J}jSBY;yzSB-Vml$m#03XL_ zIw9td;X6U-6GI>F@)_}#ILf%kc(@hccY#=h2UsRh7!R@10vzY)`~t^_edH)yq&{~x z&gUaMCW=E{A+?|5#3_>7#~4n3#rO#(U#3qnwY_kHnJ-WlelWok6LXVC*v}}&*o`A- z(gQ$S&;+vlpz$amh9_8KZ;Oq*Z}q4igr-Hl0qSgNH^QwTIQKqWL|%Y!aqp<6;W6Bd<6 z$Nm$2?TfG48DYlG)HfgePy7>fM(cMsVWkDM<{^8}*?Z3UzVDoS_t(FEdJf<^YB59* zRiWtUL9f8zs<&yo&BCI$;`vKEEk{6Eyfl4DAX$0!)wqT}#8hZH`k@Qx2R8`xUU!?W zKPiySmMahKFYQ9ZZmt)qe%o!Xj~~uv)HEb8pkh$R8%PTD@8=8Z$K0(u-d9e0p(zl} z8u#VqlR8pJ3&gjahEw-luUYllK1*kp%f@n9#hU`>w|%$a`a6ZTr1ZJ-b=_&nom(A_ zrF}bw(->AUq9cP*f<87Z$PR^q2Cj@k$wFVhcg*973T$vV^N0Os=n8@*BuS#V93&@K<-~k2Qw1} zj~kq=1admwM_xd4_JyWm*75km_-^q)qYFANf-|VqA2{`mV!Lhc2=vG%-7pQFm&%JPSJN}5AV#G&v5QuZV%ZXVdZ{iR5YlZ=0yl*QhDIwIE4`oSQf(}iV>ok z#jOCJ8R9Wf#%*HwB*-J;B-f!kL?`d44lrR5m`uMW5fvU|Iy#xLol5SLpA@e6UJ#-vU<= zwqgQzxQa6FACcBVk=71~bOybDGC;flzdR}uDn1p0{XFppdVWVryd>Zvs@=|h+wE+w x)7gI0N{;Q~!~fOWB8l9jAk&nfMDjCXZ$}Tn&V{gZ2Vh4b23~@;L|r4e`#0=kppXCn literal 0 HcmV?d00001 diff --git a/out/production/Robot_Factory_PR/domain/R2D2Test.class b/out/production/Robot_Factory_PR/domain/R2D2Test.class deleted file mode 100644 index 4db2b49d4e68f332cfc69e87132b5feb6363dfa7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1329 zcmai!>rN9v6vzM53#H4zLaAJ&YC)yjs#Nf9LFF2oG+=-G%aC>#cenCfCLlx; zAHat)p4nYs164QKIXiRa{LW?0?62S7e*$=eRShx3Q%G=BfcIR3KM) zokNE4&5q^Cwx~;2lHsCd*`68JbgI_9?n~m6?TA&gu}`4fUp9q)v@N^iG{l-zLH3__ z;Ed`kO0t*w8i>0PB3=KRCiC2hoMJ! z*^u{+bSl0@lAuODXD@`Y>LGUQ8z#3VX3;JeA&s|_&{KHR%P7j!- X6D*J)0~07leC4|MVpt}N7*_rOf-LI3 diff --git a/out/production/Robot_Factory_PR/domain/Robot.class b/out/production/Robot_Factory_PR/domain/Robot.class new file mode 100644 index 0000000000000000000000000000000000000000..4a2269df9e7416ebedce8708cafd2cc59e7c89a9 GIT binary patch literal 4062 zcmcIn`*$0~8NDORUVF1iY$pbsKroIIWZ6M!T#^!{4UXb~S~+nnW3bbfuBElTv9znK zRtZj9`k+ss?-!vj=!*iOg|to}oCE!#KlSu)YI|pPEv+S+a(YgWk9T%w=6l`me&3A# z@vqzO0XTub=!l_BL)<_+It02enwQN~$#j-d=N2wn1z(`!gzeb=Cj{CO!?RuJM3)BL zz&02HM$s*swv(E67hG0zxR4zV@KYOt`Bc{Ni6nQVdzs3l zff0<#aIGpcv7fFe#FfNi%_&G2rOcFP743rQTj_0h04WWJ4SWPg1okxcH(LQ^f#FkQD>E)zfk1kzyw?SzlnW_TXJ`zM8JNZ6 z0(X|p6)WR9GD=gh)$;z^uUGC{iI1 z4TaH&f*zaJ!0r)gy;Mn;bu3|7gKglVwK`>MH6qVI{sCKhtd4wJ}iP#L#K ziJdvyvCh`Y3zjz%=;+P41+z43QZIFelW~99W)^pB(3K{gS+rRmHawHEJY9&_(vsy( z$x|eM#a4Z4d)_w-E0g4Jpufwms`Yb@5}PNY>s@^P{GcJ#De7knPlc^3zNt#-lTqkmT1v1mTY-;KBFvaTSJ5h2Wt&L|dXzk~m;lyq3$8qnN@jVXXbv@+ zz|di0onRN>scO@myj$}M))`x-OINNxAah9+PPwjM^*ysPY5B`;vAVMZ-`DX2{7}P> z4Ez{BVb@S;S4C($m)#XBl~eX8VUi*&HMW**<>=QxqcjYK0t1hlPO)TFhjOmFQmdp} z;fTy^5LBo3|FjsGjGAgy98E&FnlVeIJTs8)# z@s~P&gcNvg&63>b#_pB*d8Ac>4EHNHORE`g}2G9<5*s%WLB$I zRl}bJ4zvWm8HF^wC9v;JF;ydP zksP=2ENzF!XO&-1bAO!UzT_>4}m^SKB2@Sa-ZYBJD>%ecZXDI+}+>P`9-Q*Y9nHqJhU)zFs|N4cv#`B!My z`4WRP*`X!}mFhrEd#GB-d(S4q+uv*wPHrlERjHOJ%+Zvz+>@l~o)@9TUqM_#AOmkx zUdW#pz!ADX7E#s{dh&U$?M5u8q4VE-6&w-cLk9E(d~p*Wdzu409#Pu}@M#Q&!bdnt zA3Nz{-%Z@p9OJ2od}kdX-l*ufjPdWxN*l-Nk@v1)Y~*e1zl~ww9UO|`8V26Q*xU^~ zn7oPfEu5T8zKeZxqqlI16c~L!emz*8*nF8<1CS1q6TlStb)Ni~#sTDcC7&T=vv?3s z;53n*!o2cSvg82y^Cf(l9-gkh(Zf1(rtuYgl~GH0} z!#m8~SmuwMMI_h^k6{HFlf4Pt*gL2m_FF-%!+-p^)~84Uv2k-(oy6OVJwW zZ%*;0NQxU2;hicJJ}EU*NgpY)T^14l`)^|LHho32va1ngeSyQ>x;zm=W#hzFDl_(U zCtnIHLUJ~MCMe4D5gi7eQ+-DU*p8U~FfS)~o*yxM2jAs5$P|5#b3et;_%GjH#4qq0 X{FY{3RnOP)2KVXw{uAB3f&TvhGy45X literal 0 HcmV?d00001 diff --git a/out/production/Robot_Factory_PR/domain/RobotType.class b/out/production/Robot_Factory_PR/domain/RobotType.class new file mode 100644 index 0000000000000000000000000000000000000000..055cd6e4bf5d31a05aec255ec4ca53cf16b1951f GIT binary patch literal 1236 zcmZuxYfsZ)6n@^VUAIzTmYX0d;>30cQ*K^12?jBmEI=48A%5yc#geWyTSxR?=};jW z4WIo{#&fzVgRM*Y?wt2|o^wrq|M~t4Kmn@?Vgl)Xzh*gJZpW|q!S2WRb_xQL1{n!D z*B7_91oYx%P@Yjq4XF^dv+#U@9eo-!b|g0K56#93y9P82A}yd~%Fl|gH%bCSZ@Se~ z=onIv)-a3_0lDh>o-HtJn8icu$jZ5vcaYnv9NN_&uVM^W6^v_`z%>eR4%qOTHHvg( zxlMcPt-!L;!CrT*MkC+hCI!`D9CLyZ?oMF+s0!A;bZkAb2B9(;3)L9MpFvndCi)#ps7-o+?QpW!P z(z?G-=?oSf&)#g-Dt3L>s<`Bt=@H)S9tl_CS1q?})g2~AY{|1~Bq9ax9Lge9at=Hz zXx7O!(o45YTN3!~K3tw>)Ez<;s&3ThxM30{)6or{NufKv)x3aO@|*Rl{lek02L3Pb zJP%;)0kv(6_FP^Y=UoQqq-_mPT2i{vd2T>@f;W`x1l`YLj(9n;rs?EIZK3}guAD*t zM3%sPdMCoW7~v8Q)G|P&-J&J)v(q$r4*xIyTUwu#kkU^e*sB2 B?B)Of literal 0 HcmV?d00001 diff --git a/src/out/production/Robot_Factory_PR/facade/FactorySystem.class b/out/production/Robot_Factory_PR/facade/FactorySystem.class similarity index 88% rename from src/out/production/Robot_Factory_PR/facade/FactorySystem.class rename to out/production/Robot_Factory_PR/facade/FactorySystem.class index f510c1846caedbd7085a977af9ce376d4ad127d9..568a01a54d3e8bffb817c525bef26e13fab3a0ee 100644 GIT binary patch delta 49 zcmZ3%w}NlO4^~FS$v;`MBvl!>7}OZ}7&I6p8MGN>7&IB=7_@+-?&KP_Rz}mwOzdg^ D8yN|d delta 49 zcmZ3%w}NlO4^~F`$v;`MB$XMs7*rVe7}OXf88jJW7}Oc$7&L$^?a4K4t&IAUnb_3; D8D|N8 diff --git a/src/out/production/Robot_Factory_PR/infrastructure/Persistenz.class b/out/production/Robot_Factory_PR/infrastructure/Persistenz.class similarity index 100% rename from src/out/production/Robot_Factory_PR/infrastructure/Persistenz.class rename to out/production/Robot_Factory_PR/infrastructure/Persistenz.class diff --git a/out/production/Robot_Factory_PR/makefile b/out/production/Robot_Factory_PR/makefile deleted file mode 100644 index 9f1b581..0000000 --- a/out/production/Robot_Factory_PR/makefile +++ /dev/null @@ -1,31 +0,0 @@ - -update_readme: - git add README.md - git commit -m "updated README" - git push -u origin main -update_make: - git add makefile - git commit -m "updated makefile" - git push -u origin main -update_all: - git add --all - git commit -m "Updated everything. Further explanation in README" - git push -u origin main -update_domain: - git add domain/ - git commit -m "Updated domain. Further explanation in README" - git push -u origin main -update_exceptions: - git add robot/exceptions - git commit -m "Updated Exceptions" - git push -u origin main -update_interfaces: - git add robot/interfaces - git commit -m "updated interfaces" - git push -u origin main -update_ui: - git add ui/ - git commit -m "updated ui" - git push -u origin main -fetch_git: - git pull origin main diff --git a/out/production/Robot_Factory_PR/ui/UI$1.class b/out/production/Robot_Factory_PR/ui/UI$1.class new file mode 100644 index 0000000000000000000000000000000000000000..b858c80bc4089d76672f49a5f5ab04260078445d GIT binary patch literal 609 zcmZXRO>Yx15QbkTn>bmvbO|jDEzm-@CAkn$j#OMiD^}zKHElWcg0pKi4(__zk0O2% zXFx&-q5c4V6k@zo0)e#l%sbwBJTw0B^V=nWU36VkP~~tu)KF*eV{;}{(mOCylOMi6 zmkjj_p$nNYEO)vmgMZJTHqk(n!}V|t9s@5_?kmDA^>Reoio)*bzZ)7G#G}~8F z$9rjNQp<09xLxx5PhO2V)~Lfj3FGNpMma-cH_|Fm`LmLHOx5&FOr0+dR3b;k*;J;7 zVyY?98kk7vW05MWuYwDcTtsiF%`5FrOp!)%U)cO*I+Xd$#2niU zwQ^ik!boQM3zJbbUYH~@?Q4-`GV?cRysPw7%x~KPTaO}laF^^oQgc+v13F*9F2B2< z!9Uq=;R|j!;}39NmU4w;t&|^WC`~M31tKuahh=079kMPF8f4)&egP+ceFgvk literal 0 HcmV?d00001 diff --git a/src/out/production/Robot_Factory_PR/ui/UI.class b/out/production/Robot_Factory_PR/ui/UI.class similarity index 50% rename from src/out/production/Robot_Factory_PR/ui/UI.class rename to out/production/Robot_Factory_PR/ui/UI.class index 6c3769fd5cf29b6a1cb8762a2bb3609e2d60e5d5..de5df6ddb24e68d862935f2a68a75596565da2cd 100644 GIT binary patch delta 1268 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 diff --git a/src/out/production/Robot_Factory_PR/domain/R2D2.class b/src/out/production/Robot_Factory_PR/domain/R2D2.class deleted file mode 100644 index 31cb8c26669989b57af4616d9153e69c53c9fca0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1822 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 lZ*%Pj_#yw~>?e2wKf}*y<~Qp1cX*fQbbkK