From 2cff7468ce3e036c57ba7fb732aecbdf47e22782 Mon Sep 17 00:00:00 2001 From: Frank Schiebel Date: Wed, 9 Oct 2024 20:24:23 +0200 Subject: [PATCH] Erster Commit, Aufgaben und Tests --- .gitignore | 2 + Birdwatching.java | 48 ++++++++++++++++++++ BirdwatchingTest.java | 100 ++++++++++++++++++++++++++++++++++++++++++ README.TXT | 11 +++++ package.bluej | 43 ++++++++++++++++++ 5 files changed, 204 insertions(+) create mode 100644 .gitignore create mode 100644 Birdwatching.java create mode 100644 BirdwatchingTest.java create mode 100644 README.TXT create mode 100644 package.bluej diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..b4416b7 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +*.class +*.ctxt diff --git a/Birdwatching.java b/Birdwatching.java new file mode 100644 index 0000000..4507691 --- /dev/null +++ b/Birdwatching.java @@ -0,0 +1,48 @@ +/** + * Die Übungen dieser Klasse sind stark an die Vorlage "bird-watcher" + * des Java-Tracks bei exercism.org angelehnt. + * + * https://github.com/exercism/java/tree/main/exercises/concept/bird-watcher + * + * Dieser Track steht unter einer MIT License: + * https://github.com/exercism/java/blob/main/LICENSE + * + * Anpassungen fürs Wiki + * @author Frank Schiebel + * @version Oktober 2024 + */ +public class Birdwatching +{ + private int[] birdsPerDay; + + public Birdwatching() + { + this.birdsPerDay = getNumbersOfLast7Days(); + } + + public int[] getNumbersOfLast7Days() { + throw new UnsupportedOperationException("Lösche diese Zeile und implementiere die Lösung zur Aufgabe!"); + + } + + public int getToday() { + throw new UnsupportedOperationException("Lösche diese Zeile und implementiere die Lösung zur Aufgabe!"); + } + + public void incrementTodaysCount() { + throw new UnsupportedOperationException("Lösche diese Zeile und implementiere die Lösung zur Aufgabe!"); + } + + public boolean hasDayWithoutBirds() { + throw new UnsupportedOperationException("Lösche diese Zeile und implementiere die Lösung zur Aufgabe!"); + } + + public int getCountForFirstDays(int numberOfDays) { + throw new UnsupportedOperationException("Lösche diese Zeile und implementiere die Lösung zur Aufgabe!"); + } + + public int getBusyDays() { + throw new UnsupportedOperationException("Lösche diese Zeile und implementiere die Lösung zur Aufgabe!"); + } + +} diff --git a/BirdwatchingTest.java b/BirdwatchingTest.java new file mode 100644 index 0000000..36af338 --- /dev/null +++ b/BirdwatchingTest.java @@ -0,0 +1,100 @@ + +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.*; + + +/** + * Die Test-Klasse BirdwatchingTest. + * + * @author (Ihr Name) + * @version (eine Versionsnummer oder ein Datum) + */ +public class BirdwatchingTest +{ + + /** + * Konstruktor fuer die Test-Klasse BirdwatchingTest + */ + public BirdwatchingTest() + { + } + + /** + * Setzt das Testgerüst fuer den Test. + * + * Wird vor jeder Testfall-Methode aufgerufen. + */ + @BeforeEach + public void setUp() + { + } + + /** + * Gibt das Testgerüst wieder frei. + * + * Wird nach jeder Testfall-Methode aufgerufen. + */ + @AfterEach + public void tearDown() + { + } + + + + @Test + public void testNumbersOfLast7Days() + { + Birdwatching bw = new Birdwatching(); + int[] numbers = bw.getNumbersOfLast7Days(); + assertEquals(numbers[0], 12); + assertEquals(numbers[1], 7); + assertEquals(numbers[2], 0); + assertEquals(numbers[3], 6); + assertEquals(numbers[4], 15); + assertEquals(numbers[5], 8); + assertEquals(numbers[6], 7); + } + + @Test + public void testToday() + { + Birdwatching bw = new Birdwatching(); + assertEquals(bw.getToday(), 7); + } + + @Test + public void testIncrementTodaysCount() + { + Birdwatching bw = new Birdwatching(); + bw.incrementTodaysCount(); + assertEquals(bw.getToday(),8); + } + + @Test + public void testCountForFirstDays() + { + Birdwatching bw = new Birdwatching(); + int[] sums = {0, 12, 19, 19, 25, 40, 48, 55}; + for(int i=0; i<7; i++ ) { + assertEquals(bw.getCountForFirstDays(i),sums[i]); + } + } + + @Test + public void testGetCountForMoreDaysThanTheArraySize() { + Birdwatching bw = new Birdwatching(); + assertEquals(bw.getCountForFirstDays(10),55); + } + + @Test + public void testGetBusyDays() { + Birdwatching bw = new Birdwatching(); + assertEquals(bw.getBusyDays(),3); + } + + +} + + diff --git a/README.TXT b/README.TXT new file mode 100644 index 0000000..69ef480 --- /dev/null +++ b/README.TXT @@ -0,0 +1,11 @@ +PROJEKTBEZEICHNUNG: Birdwatching +PROJEKTZWECK: Einführung in Arrays, Wiki: https://info-bw.de/faecher:informatik:oberstufe:java:algorithmen:arrays:definition:start +VERSION oder DATUM: 09.10.2024 + +Die Übungen dieses Projekts sind stark an die Vorlage "bird-watcher" +des Java-Tracks bei exercism.org angelehnt. + +https://github.com/exercism/java/tree/main/exercises/concept/bird-watcher + +Dieser Track steht unter einer MIT License: +https://github.com/exercism/java/blob/main/LICENSE diff --git a/package.bluej b/package.bluej new file mode 100644 index 0000000..9c2459d --- /dev/null +++ b/package.bluej @@ -0,0 +1,43 @@ +#BlueJ package file +dependency1.from=BirdwatchingTest +dependency1.to=Birdwatching +dependency1.type=UsesDependency +editor.fx.0.height=1036 +editor.fx.0.width=1920 +editor.fx.0.x=1914 +editor.fx.0.y=0 +objectbench.height=94 +objectbench.width=776 +package.divider.horizontal=0.6 +package.divider.vertical=0.8007889546351085 +package.editor.height=399 +package.editor.width=654 +package.editor.x=2428 +package.editor.y=219 +package.frame.height=600 +package.frame.width=800 +package.numDependencies=1 +package.numTargets=2 +package.showExtends=true +package.showUses=true +project.charset=UTF-8 +readme.height=60 +readme.name=@README +readme.width=49 +readme.x=10 +readme.y=10 +target1.association=BirdwatchingTest +target1.height=70 +target1.name=Birdwatching +target1.showInterface=false +target1.type=ClassTarget +target1.width=120 +target1.x=60 +target1.y=100 +target2.height=70 +target2.name=BirdwatchingTest +target2.showInterface=false +target2.type=UnitTestTargetJunit5 +target2.width=120 +target2.x=90 +target2.y=70