Commit 0a2505e0 authored by Dr. Martin Goik's avatar Dr. Martin Goik

Splitting tests, adding hints

parent 7a98122d
package de.hdm_stuttgart.mi.sd1.aufgabe1;
import java.util.Arrays;
/**
* Hilfsmethoden.
*
......@@ -40,17 +38,17 @@ public class _1_Helper {
/**
* <p>Zerlegung eines Wertes in ein Array aus Einer, Zehner, Hunderter usw. Anteilen. Beispiele:</p>
* <dl>
* <dt><code>0</code>:</dt>
* <dd><code>int[] result = {0}</code></dd>
* <dt><code><span style="color:red;">9</span></code>:</dt>
* <dd><code>int[] result = {<span style="color:red;">9</span>}</code></dd>
*
* <dt><code>123</code>:</dt>
* <dd><code>int[] result = {3, 20, 100}</code></dd>
* <dt><code><span style="color:red;">1</span><span style="color:green;">2</span><span style="color:cyan;">3</span></code>:</dt>
* <dd><code>int[] result = {<span style="color:cyan;">3</span>, <span style="color:green;">20</span>, <span style="color:red;">100</span>}</code></dd>
*
* <dt><code>43090</code>:</dt>
* <dd><code>int[] result = {0, 90, 0, 3000, 40000}</code></dd>
* <dt><code><span style="color:red;">4</span><span style="color:green;">3</span><span style="color:cyan;">0</span><span style="color:orange;">9</span><span style="color:blue;">0</span></code>:</dt>
* <dd><code>int[] result = {<span style="color:blue;">0</span>, <span style="color:orange;">90</span>, <span style="color:cyan;">0</span>, <span style="color:green;">3000</span>, <span style="color:red;">40000</span>}</code></dd>
*
* </dl>
* @param wert Der zu zerlegende Wert
* @param wert Der zu zerlegende Wert.
* @return Das Array der Zerlegung in Einer, Zehner, Hunderter usw. Anteile. Der Index 0 startet mit der Einer-Position.
*/
static public long[] dezimalZerlegung(long wert) {
......@@ -59,39 +57,52 @@ public class _1_Helper {
/**
* <p>Vertausche zwei Werte eines Arrays an den Indexpositionen <code>position</code> und
* <code>position + 1</code>. Beispiel:</p>
* <code>position + 1</code>.</p>
*
* <p><code>values = {1, 2, 3, 4, 5}</code> und <code>position = 2</code>. Dann werden die Werte 3 und 4 an den
* Indexpositionen 2 und 3 vertauscht, das Ergebnis lautet <code>{1, 2, 4, 3, 5}</code>.</p>.
* <p>Beispiel: Für <code>values = {1, 2, <span style="color:green;">3</span>, <span style="color:red;">4</span>, 5}</code> und
* <code style="color:green;">position = 2</code> werden die Werte
* <span style="color:green;">3</span> und <span style="color:red;">4</span> an den Indexpositionen
* <span style="color:green;">2</span> und <span style="color:red;">3</span> vertauscht:</p>
*
* Falls das Array und der Wert von <code>position</code> eine Vertauschung zulassen, ist der Rückgabewert
* <code>true</code>, ansonsten <code>false</code>.
* <pre>
* <span style="color:red;">⤺</span>
* {1, 2, <span style="color:green;">3</span>, <span style="color:red;">4</span>, 5} ⟹ {1, 2, <span style="color:red;">4</span>, <span style="color:green;">3</span>, 5}
* <span style="color:green;">⤻</span>
* </pre>
*
* @param werte Ein Array aus Werten oder <code>null</code>.
* @param position <p>Der Index des Werts, welcher mit dem Wert an der nächsthöheren Indexposition vertauscht werden
* soll.</p>
* <p>Bei negativem oder sonst für eine Vertauschung unpassendem Wert erfolgt keine Veränderung, der
* Rückgabewert ist in diesem Fall <code>false</code>.</p>
* <p>Bei negativer <code>position</code> oder sonst für eine Vertauschung unpassenden Werten
* erfolgt keine Veränderung. Der Rückgabewert ist in diesem Fall <code>false</code>.</p>
*
* @return <code>true</code>, falls das Array nicht null ist, mindestens zwei Werte enthält und eine Vertauschung
* der Werte an den Indexpositionen <code>position</code> und <code>position + 1</code> erlaubt. Ansonsten
* <code>false</code>.
* @return <code>true</code>, falls das Array nicht <code>null</code> ist und, unabhängig von eventuell identischen
* Werten, eine Vertauschung an den Indexpositionen <code style="color:green;">position</code> und
* <code style="color:red;">position + 1</code> erlaubt. Ansonsten <code>false</code>.
*/
static public boolean swap(final int[] werte, final int position) {
return true; // TODO: Implementiere mich richtig!
}
/**
* <p>Umwandlung jedes Wortanfangs in einen Großbuchstaben. Beispiel:</p>
*
* <p> <code>"Ein schöner warmer Sommer steht an."</code> wird zu
* <code>"Ein Schöner Warmer Sommer Steht An."</code></p>
* <pre>
*"Ein <span style="color:red;">s</span>chöner <span style="color:red;">w</span>armer Sommer <span style="color:red;">s</span>teht <span style="color:red;">a</span>n."
* <span style="color:red;">↓</span> <span style="color:red;">↓</span> <span style="color:red;">↓</span> <span style="color:red;">↓</span>
*"Ein <span style="color:red;">S</span>chöner <span style="color:red;">W</span>armer Sommer <span style="color:red;">S</span>teht <span style="color:red;">A</span>n."</pre>
*
* @param input Eine Satz aus Worten mit gemischter Groß- und Kleinschreibung.
* @return Der Satz mit Großschreibung aller Wortanfänge oder <code>null</code>,
* falls die Eingabe <code>null</code> ist.
*
* <section class="implementationHints">
* <h3>Tip:</h3>
*
* <p>Beachten Sie die Methoden {@link Character#isWhitespace(char)} und {@link Character#toUpperCase(char)}.</p>
*
* </section>
*/
static public String getWortanfangGross(final String input) {
return "noch nix Rechtes"; // TODO: Implementiere mich richtig!
}
static public String getWortanfangGross(final String input) {
return "noch nix Rechtes"; // TODO: Implementiere mich richtig!
}
}
package de.hdm_stuttgart.mi.sd1.test.aufgabe1;
import de.hdm_stuttgart.mi.exam.unitmarking.ExaminationTestDefaults;
import de.hdm_stuttgart.mi.exam.unitmarking.Marking;
import de.hdm_stuttgart.mi.sd1.aufgabe1._1_Helper;
import org.junit.Assert;
import org.junit.FixMethodOrder;
import org.junit.Test;
import org.junit.runners.MethodSorters;
import de.hdm_stuttgart.mi.exam.unitmarking.ExaminationTestDefaults;
import de.hdm_stuttgart.mi.exam.unitmarking.Marking;
import de.hdm_stuttgart.mi.sd1.aufgabe1._1_Helper;
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
@SuppressWarnings({"UnusedDeclaration"})
public class Test_1_Helper extends ExaminationTestDefaults {
......@@ -67,7 +66,7 @@ public class Test_1_Helper extends ExaminationTestDefaults {
Assert.assertEquals("sehr gut", _1_Helper.berechneNote(200));
}
/******************************************************************
/* *****************************************************************
* Abschnitt Umwandlung jedes Wortanfangs in einen Großbuchstaben *
******************************************************************/
......@@ -75,7 +74,7 @@ public class Test_1_Helper extends ExaminationTestDefaults {
* Sonderfall null.
*/
@Test @Marking(points = 2) public void test_500() {
Assert.assertEquals(null, _1_Helper.getWortanfangGross(null));
Assert.assertNull(_1_Helper.getWortanfangGross(null));
}
/**
* Sonderfall leer.
......@@ -105,9 +104,19 @@ public class Test_1_Helper extends ExaminationTestDefaults {
/**
* Regulärer Satz, mehrere Leerzeichen in Folge
*/
@Test @Marking(points = 2) public void test_580() {
@Test public void test_570() {
Assert.assertEquals( "Hier Ist Mehr Platz",
_1_Helper.getWortanfangGross("Hier ist mehr Platz"));
_1_Helper.getWortanfangGross("Hier ist mehr Platz"));
}
/**
* Regulärer Satz mit Leerzeichen am Ende.
*/
@Test public void test_580() {
Assert.assertEquals("Ein Leerzeichen Am Satzende: ",
_1_Helper.getWortanfangGross("Ein Leerzeichen am Satzende: "));
Assert.assertEquals("Mehrere Leerzeichen Am Satzende: ",
_1_Helper.getWortanfangGross("Mehrere Leerzeichen am Satzende: "));
}
/******************************************
......@@ -140,13 +149,20 @@ public class Test_1_Helper extends ExaminationTestDefaults {
}
@Test public void test_660() {
final int[] input = {-1};
Assert.assertFalse(_1_Helper.swap(input, 0));
Assert.assertArrayEquals(new int[]{-1}, input);
{
final int[] input = {-1};
Assert.assertFalse(_1_Helper.swap(input, 0));
Assert.assertArrayEquals(new int[]{-1}, input);
Assert.assertFalse(_1_Helper.swap(input, -2));
Assert.assertArrayEquals(new int[]{-1}, input);
}
{
final int[] input = {19, -30};
Assert.assertTrue(_1_Helper.swap(input, 0));
Assert.assertArrayEquals(new int[]{-30, 19}, input);
}
Assert.assertFalse(_1_Helper.swap(input, -2));
Assert.assertArrayEquals(new int[]{-1
}, input);
}
@Test public void test_680() {
......
......@@ -49,14 +49,14 @@ public class _1_Helper {
/**
* <p>Zerlegung eines Wertes in ein Array aus Einer, Zehner, Hunderter usw. Anteilen. Beispiele:</p>
* <dl>
* <dt><code>0</code>:</dt>
* <dd><code>int[] result = {0}</code></dd>
* <dt><code><span style="color:red;">9</span></code>:</dt>
* <dd><code>int[] result = {<span style="color:red;">9</span>}</code></dd>
*
* <dt><code>123</code>:</dt>
* <dd><code>int[] result = {3, 20, 100}</code></dd>
* <dt><code><span style="color:red;">1</span><span style="color:green;">2</span><span style="color:cyan;">3</span></code>:</dt>
* <dd><code>int[] result = {<span style="color:cyan;">3</span>, <span style="color:green;">20</span>, <span style="color:red;">100</span>}</code></dd>
*
* <dt><code>43090</code>:</dt>
* <dd><code>int[] result = {0, 90, 0, 3000, 40000}</code></dd>
* <dt><code><span style="color:red;">4</span><span style="color:green;">3</span><span style="color:cyan;">0</span><span style="color:orange;">9</span><span style="color:blue;">0</span></code>:</dt>
* <dd><code>int[] result = {<span style="color:blue;">0</span>, <span style="color:orange;">90</span>, <span style="color:cyan;">0</span>, <span style="color:green;">3000</span>, <span style="color:red;">40000</span>}</code></dd>
*
* </dl>
* @param wert Der zu zerlegende Wert.
......@@ -79,23 +79,28 @@ public class _1_Helper {
/**
* <p>Vertausche zwei Werte eines Arrays an den Indexpositionen <code>position</code> und
* <code>position + 1</code>. Beispiel:</p>
* <code>position + 1</code>.</p>
*
* <p><code>values = {1, 2, 3, 4, 5}</code> und <code>position = 2</code>. Dann werden die Werte 3 und 4 an den
* Indexpositionen 2 und 3 vertauscht, das Ergebnis lautet <code>{1, 2, 4, 3, 5}</code>.</p>.
* <p>Beispiel: Für <code>values = {1, 2, <span style="color:green;">3</span>, <span style="color:red;">4</span>, 5}</code> und
* <code style="color:green;">position = 2</code> werden die Werte
* <span style="color:green;">3</span> und <span style="color:red;">4</span> an den Indexpositionen
* <span style="color:green;">2</span> und <span style="color:red;">3</span> vertauscht:</p>
*
* Falls das Array und der Wert von <code>position</code> eine Vertauschung zulassen, ist der Rückgabewert
* <code>true</code>, ansonsten <code>false</code>.
* <pre>
* <span style="color:red;">⤺</span>
* {1, 2, <span style="color:green;">3</span>, <span style="color:red;">4</span>, 5} ⟹ {1, 2, <span style="color:red;">4</span>, <span style="color:green;">3</span>, 5}
* <span style="color:green;">⤻</span>
* </pre>
*
* @param werte Ein Array aus Werten oder <code>null</code>.
* @param position <p>Der Index des Werts, welcher mit dem Wert an der nächsthöheren Indexposition vertauscht werden
* soll.</p>
* <p>Bei negativem oder sonst für eine Vertauschung unpassendem Wert erfolgt keine Veränderung, der
* Rückgabewert ist in diesem Fall <code>false</code>.</p>
* <p>Bei negativer <code>position</code> oder sonst für eine Vertauschung unpassenden Werten
* erfolgt keine Veränderung. Der Rückgabewert ist in diesem Fall <code>false</code>.</p>
*
* @return <code>true</code>, falls das Array nicht null ist, mindestens zwei Werte enthält und eine Vertauschung
* der Werte an den Indexpositionen <code>position</code> und <code>position + 1</code> erlaubt. Ansonsten
* <code>false</code>.
* @return <code>true</code>, falls das Array nicht <code>null</code> ist und, unabhängig von eventuell identischen
* Werten, eine Vertauschung an den Indexpositionen <code style="color:green;">position</code> und
* <code style="color:red;">position + 1</code> erlaubt. Ansonsten <code>false</code>.
*/
static public boolean swap(final int[] werte, final int position) {
if (null == werte || position < 0 || werte.length - 1 <= position) {
......@@ -107,16 +112,24 @@ public class _1_Helper {
return true;
}
}
/**
* <p>Umwandlung jedes Wortanfangs in einen Großbuchstaben. Beispiel:</p>
*
* <p> <code>"Ein schöner warmer Sommer steht an."</code> wird zu
* <code>"Ein Schöner Warmer Sommer Steht An."</code></p>
* <pre>
*"Ein <span style="color:red;">s</span>chöner <span style="color:red;">w</span>armer Sommer <span style="color:red;">s</span>teht <span style="color:red;">a</span>n."
* <span style="color:red;">↓</span> <span style="color:red;">↓</span> <span style="color:red;">↓</span> <span style="color:red;">↓</span>
*"Ein <span style="color:red;">S</span>chöner <span style="color:red;">W</span>armer Sommer <span style="color:red;">S</span>teht <span style="color:red;">A</span>n."</pre>
*
* @param input Eine Satz aus Worten mit gemischter Groß- und Kleinschreibung.
* @return Der Satz mit Großschreibung aller Wortanfänge oder <code>null</code>,
* falls die Eingabe <code>null</code> ist.
*
* <section class="implementationHints">
* <h3>Tip:</h3>
*
* <p>Beachten Sie die Methoden {@link Character#isWhitespace(char)} und {@link Character#toUpperCase(char)}.</p>
*
* </section>
*/
static public String getWortanfangGross(final String input) {
if (null == input|| 0 == input.length()) {
......
......@@ -67,7 +67,7 @@ public class Test_1_Helper extends ExaminationTestDefaults {
Assert.assertEquals("sehr gut", _1_Helper.berechneNote(200));
}
/******************************************************************
/* *****************************************************************
* Abschnitt Umwandlung jedes Wortanfangs in einen Großbuchstaben *
******************************************************************/
......@@ -75,7 +75,7 @@ public class Test_1_Helper extends ExaminationTestDefaults {
* Sonderfall null.
*/
@Test @Marking(points = 2) public void test_500() {
Assert.assertEquals(null, _1_Helper.getWortanfangGross(null));
Assert.assertNull(_1_Helper.getWortanfangGross(null));
}
/**
* Sonderfall leer.
......@@ -105,9 +105,19 @@ public class Test_1_Helper extends ExaminationTestDefaults {
/**
* Regulärer Satz, mehrere Leerzeichen in Folge
*/
@Test @Marking(points = 2) public void test_580() {
@Test public void test_570() {
Assert.assertEquals( "Hier Ist Mehr Platz",
_1_Helper.getWortanfangGross("Hier ist mehr Platz"));
_1_Helper.getWortanfangGross("Hier ist mehr Platz"));
}
/**
* Regulärer Satz mit Leerzeichen am Ende.
*/
@Test public void test_580() {
Assert.assertEquals("Ein Leerzeichen Am Satzende: ",
_1_Helper.getWortanfangGross("Ein Leerzeichen am Satzende: "));
Assert.assertEquals("Mehrere Leerzeichen Am Satzende: ",
_1_Helper.getWortanfangGross("Mehrere Leerzeichen am Satzende: "));
}
/******************************************
......@@ -140,13 +150,20 @@ public class Test_1_Helper extends ExaminationTestDefaults {
}
@Test public void test_660() {
final int[] input = {-1};
Assert.assertFalse(_1_Helper.swap(input, 0));
Assert.assertArrayEquals(new int[]{-1}, input);
{
final int[] input = {-1};
Assert.assertFalse(_1_Helper.swap(input, 0));
Assert.assertArrayEquals(new int[]{-1}, input);
Assert.assertFalse(_1_Helper.swap(input, -2));
Assert.assertArrayEquals(new int[]{-1}, input);
}
{
final int[] input = {19, -30};
Assert.assertTrue(_1_Helper.swap(input, 0));
Assert.assertArrayEquals(new int[]{-30, 19}, input);
}
Assert.assertFalse(_1_Helper.swap(input, -2));
Assert.assertArrayEquals(new int[]{-1
}, input);
}
@Test public void test_680() {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment