diff --git a/Turtle.java b/Turtle.java index 5f46fddd48a7637e06984b4046ff01498859b89d..f48c852aa30746faa8f3457fbfc055a9b3974673 100644 --- a/Turtle.java +++ b/Turtle.java @@ -11,8 +11,7 @@ import java.awt.image.BufferedImage; import javax.swing.JFrame; import javax.swing.JPanel; -import java.util.HashMap; -import java.util.TreeMap; +import java.util.LinkedHashMap; /** * Diese Klasse definiert Turtles, die mit einfachen @@ -32,8 +31,8 @@ import java.util.TreeMap; * @author Axel Schmolitzky * @author Fredrik Winkler * @author Clara Marie Lueders - * @author Volodymyr Biryuk - * @version 29. November 2023 + * @author Lasse Huber-Saffer + * @version 25. Januar 2022 */ public class Turtle { @@ -54,25 +53,22 @@ public class Turtle private int _verzoegerung; // Moegliche Farbwerte - private static final HashMap<String, Color> FARBEN; + private static final LinkedHashMap<String, Color> FARBEN; private static final Color[] FARB_ARRAY; static { - FARBEN = new HashMap<String, Color>(); - FARBEN.put("hellgrau", Color.LIGHT_GRAY); - FARBEN.put("magenta", Color.MAGENTA); - FARBEN.put("pink", Color.PINK); - FARBEN.put("gelb", Color.YELLOW); + FARBEN = new LinkedHashMap<String, Color>(); FARBEN.put("schwarz", Color.BLACK); - FARBEN.put("weiss", Color.WHITE); + FARBEN.put("blau", Color.BLUE); FARBEN.put("cyan", Color.CYAN); + FARBEN.put("dunkelgrau", Color.DARK_GRAY); FARBEN.put("grau", Color.GRAY); - FARBEN.put("blau", Color.BLUE); - FARBEN.put("orange", Color.ORANGE); FARBEN.put("gruen", Color.GREEN); - FARBEN.put("rot", Color.RED); - FARBEN.put("dunkelgrau", Color.DARK_GRAY); + FARBEN.put("hellgrau", Color.LIGHT_GRAY); + FARBEN.put("magenta", Color.MAGENTA); + FARBEN.put("pink", Color.PINK); + FARBEN.put("gelb", Color.YELLOW); FARB_ARRAY = FARBEN.values().toArray(new Color[FARBEN.size()]); } @@ -271,6 +267,22 @@ public class Turtle } } } + + @Override + public String toString() + { + String farbreihenfolge = ""; + for(Color c : FARB_ARRAY) + { + farbreihenfolge += c + ", "; + } + return farbreihenfolge; + } + + public Color[] gibFarben() + { + return FARB_ARRAY; + } } /** @@ -300,8 +312,7 @@ class TurtleWelt BufferedImage image = new BufferedImage(WIDTH, HEIGHT, BufferedImage.TYPE_INT_RGB); _graphics = image.createGraphics(); - _graphics.setRenderingHint(RenderingHints.KEY_ANTIALIASING, - RenderingHints.VALUE_ANTIALIAS_ON); + _graphics.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); _graphics.setColor(Color.WHITE); _graphics.fillRect(0, 0, WIDTH, HEIGHT); diff --git a/TurtleTest.java b/TurtleTest.java new file mode 100644 index 0000000000000000000000000000000000000000..c2fecd229d3c01886d81306ea35420537015e3e6 --- /dev/null +++ b/TurtleTest.java @@ -0,0 +1,66 @@ + + +import static org.junit.jupiter.api.Assertions.*; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import java.util.*; +import java.awt.*; + +/** + * The test class TurtleTest. + * + * @author Volodymyr Biryuk + * @version 30. November 2023 + */ +public class TurtleTest +{ + private Turtle _turtle; + + /** + * Default constructor for test class TurtleTest + */ + public TurtleTest() + { + } + + /** + * Sets up the test fixture. + * + * Called before every test case method. + */ + @BeforeEach + public void setUp() + { + _turtle = new Turtle(); + } + + @Test + public void farbenTest() + { + Color[] expected = + { + Color.BLACK, Color.BLUE, Color.CYAN, Color.DARK_GRAY, Color.GRAY, Color.GREEN, + Color.LIGHT_GRAY, Color.MAGENTA, Color.PINK, Color.YELLOW + }; + + Color[] actual = _turtle.gibFarben(); + assertEquals(expected.length, actual.length); + for(int i = 0; i < actual.length; i++) + { + Color actual_ = actual[i]; + Color expected_ = expected[i]; + assertEquals(expected_, actual_); + } + } + + /** + * Tears down the test fixture. + * + * Called after every test case method. + */ + @AfterEach + public void tearDown() + { + } +} diff --git a/bluej.pkg b/bluej.pkg index 1cdb4c62f4f2ebfb18d6ee55be259a201d7ec807..2f989f0836b9349dd8e7369f66f14e0ff57bc191 100644 --- a/bluej.pkg +++ b/bluej.pkg @@ -2,22 +2,25 @@ dependency1.from=Dompteur dependency1.to=Turtle dependency1.type=UsesDependency -editor.fx.0.height=722 -editor.fx.0.width=800 -editor.fx.0.x=790 -editor.fx.0.y=102 -objectbench.height=102 -objectbench.width=461 +dependency2.from=TurtleTest +dependency2.to=Turtle +dependency2.type=UsesDependency +editor.fx.0.height=875 +editor.fx.0.width=1440 +editor.fx.0.x=0 +editor.fx.0.y=25 +objectbench.height=158 +objectbench.width=413 package.divider.horizontal=0.6 -package.divider.vertical=0.7966417910447762 -package.editor.height=420 -package.editor.width=661 -package.editor.x=704 -package.editor.y=449 -package.frame.height=600 -package.frame.width=800 -package.numDependencies=1 -package.numTargets=2 +package.divider.vertical=0.7965474722564735 +package.editor.height=639 +package.editor.width=604 +package.editor.x=0 +package.editor.y=25 +package.frame.height=875 +package.frame.width=720 +package.numDependencies=2 +package.numTargets=4 package.showExtends=true package.showUses=true project.charset=windows-1252 @@ -34,11 +37,24 @@ target1.type=ClassTarget target1.width=80 target1.x=170 target1.y=120 -target2.height=50 -target2.name=Dompteur -target2.naviview.expanded=true +target2.height=70 +target2.name=TurtleTest target2.showInterface=false -target2.type=ClassTarget -target2.width=90 -target2.x=70 -target2.y=40 +target2.type=UnitTestTargetJunit5 +target2.width=120 +target2.x=270 +target2.y=220 +target3.height=50 +target3.name=Dompteur +target3.naviview.expanded=true +target3.showInterface=false +target3.type=ClassTarget +target3.width=90 +target3.x=70 +target3.y=40 +target4.height=70 +target4.name=README.md +target4.type=TextTarget +target4.width=120 +target4.x=10 +target4.y=180 diff --git a/package.bluej b/package.bluej index 1cdb4c62f4f2ebfb18d6ee55be259a201d7ec807..2f989f0836b9349dd8e7369f66f14e0ff57bc191 100644 --- a/package.bluej +++ b/package.bluej @@ -2,22 +2,25 @@ dependency1.from=Dompteur dependency1.to=Turtle dependency1.type=UsesDependency -editor.fx.0.height=722 -editor.fx.0.width=800 -editor.fx.0.x=790 -editor.fx.0.y=102 -objectbench.height=102 -objectbench.width=461 +dependency2.from=TurtleTest +dependency2.to=Turtle +dependency2.type=UsesDependency +editor.fx.0.height=875 +editor.fx.0.width=1440 +editor.fx.0.x=0 +editor.fx.0.y=25 +objectbench.height=158 +objectbench.width=413 package.divider.horizontal=0.6 -package.divider.vertical=0.7966417910447762 -package.editor.height=420 -package.editor.width=661 -package.editor.x=704 -package.editor.y=449 -package.frame.height=600 -package.frame.width=800 -package.numDependencies=1 -package.numTargets=2 +package.divider.vertical=0.7965474722564735 +package.editor.height=639 +package.editor.width=604 +package.editor.x=0 +package.editor.y=25 +package.frame.height=875 +package.frame.width=720 +package.numDependencies=2 +package.numTargets=4 package.showExtends=true package.showUses=true project.charset=windows-1252 @@ -34,11 +37,24 @@ target1.type=ClassTarget target1.width=80 target1.x=170 target1.y=120 -target2.height=50 -target2.name=Dompteur -target2.naviview.expanded=true +target2.height=70 +target2.name=TurtleTest target2.showInterface=false -target2.type=ClassTarget -target2.width=90 -target2.x=70 -target2.y=40 +target2.type=UnitTestTargetJunit5 +target2.width=120 +target2.x=270 +target2.y=220 +target3.height=50 +target3.name=Dompteur +target3.naviview.expanded=true +target3.showInterface=false +target3.type=ClassTarget +target3.width=90 +target3.x=70 +target3.y=40 +target4.height=70 +target4.name=README.md +target4.type=TextTarget +target4.width=120 +target4.x=10 +target4.y=180