diff --git a/SerialTable.h b/SerialTable.h index 2893d52a15421c762198f8397749b885bd60b98c..4722f13e6817f715c1782e8b08887b9489450d65 100644 --- a/SerialTable.h +++ b/SerialTable.h @@ -248,6 +248,11 @@ public: // private: //public für UnitTests! currentLength++; + if (curr == '\n') + { + currentLength = 0; + } + // Wenn die maximale Länge erreicht ist und das nächste Zeichen kein newline ist if (currentLength == L && i + 1 < len && input[i + 1] != '\n') { diff --git a/UnitTests.h b/UnitTests.h index b96973b6ef9f7ecc191d1b3a7fbadf3a2a9d1b10..e0e718efa660ba61994b140a21a0d4e7bc21b39d 100644 --- a/UnitTests.h +++ b/UnitTests.h @@ -2,7 +2,7 @@ #include "SerialTable.h" using namespace aunit; -test(SplitStringNoNewlines) +test(splitString, SplitStringNoNewlines) { char input[] = "This is a test string"; int length = 5; @@ -27,7 +27,7 @@ test(SplitStringNoNewlines) } // Einzelner Testfall 2: Eingabe mit existierenden Zeilenumbrüchen -test(SplitStringWithNewlines) +test(splitString, SplitStringWithNewlines) { char input[] = "This\nis\na\ntest"; int length = 4; @@ -39,7 +39,7 @@ test(SplitStringWithNewlines) } // Einzelner Testfall 3: Länge größer als Eingabetext -test(SplitStringLengthGreaterThanText) +test(splitString, plitStringLengthGreaterThanText) { char input[] = "Short"; int length = 10; @@ -51,7 +51,7 @@ test(SplitStringLengthGreaterThanText) } // Einzelner Testfall 4: Genau passende Länge -test(SplitStringExactLength) +test(splitString, SplitStringExactLength) { char input[] = "Lengthy"; int length = 7; @@ -62,7 +62,7 @@ test(SplitStringExactLength) } // Einzelner Testfall 5: Länge von 1 -test(SplitStringLengthOfOne) +test(splitString, SplitStringLengthOfOne) { char input[] = "One"; int length = 1; @@ -73,7 +73,7 @@ test(SplitStringLengthOfOne) } // Einzelner Testfall 6: Leerer Eingabestring -test(SplitStringEmptyInput) +test(splitString, SplitStringEmptyInput) { char input[] = ""; int length = 5; @@ -83,6 +83,18 @@ test(SplitStringEmptyInput) assertEqual(String(expectedOutput), String(actualOutput)); } +// Einzelner Testfall 7: Umbrüche in der Mitte der Zeichen +test(splitString, SplitStringWithNewlinesInMiddle) +{ + char input[] = "This\nis\na\ntest"; + int length = 3; + char expectedOutput[] = "Thi\ns\nis\na\ntes\nt"; + char actualOutput[256] = {0}; + SerialTable::splitStringByLength(input, length, actualOutput); + assertEqual(String(expectedOutput), String(actualOutput)); +} + + // Erstelle eine Hilfsfunktion für replaceUmlauts-Tests test(replaceUmlautsTest) {