From cf9544c5f667fdbf8136ee104794b6fd4698b823 Mon Sep 17 00:00:00 2001 From: Jada R Date: Thu, 14 Apr 2022 15:33:34 -0700 Subject: [PATCH 1/2] improved tests --- src/edu/mills/cs180a/StringUtilitiesTester.java | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/edu/mills/cs180a/StringUtilitiesTester.java b/src/edu/mills/cs180a/StringUtilitiesTester.java index dfeabf9..75133fb 100644 --- a/src/edu/mills/cs180a/StringUtilitiesTester.java +++ b/src/edu/mills/cs180a/StringUtilitiesTester.java @@ -1,10 +1,15 @@ package edu.mills.cs180a; +import static org.junit.Assert.assertFalse; import static org.junit.jupiter.api.Assertions.assertThrows; import static org.junit.jupiter.api.Assertions.assertTrue; import org.junit.jupiter.api.Test; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.CsvSource; class StringUtilitiesTester { + + @Test void isSubstringThrowsExceptionForNullArg() { assertThrows(NullPointerException.class, () -> StringUtilities.isSubstring(null, "foo")); @@ -14,11 +19,12 @@ void isSubstringThrowsExceptionForNullArg() { @Test void isSubstringReturnsTrueForEmptySubstring() { - assertTrue(StringUtilities.isSubstring("", "foo")); + assertFalse(StringUtilities.isSubstring(" ", "foo")); } - @Test - void isSubstringReturnsTrueForLengthOneSubstring() { + @ParameterizedTest + @CsvSource(value = {"A:ABC", "a:ABC ","b:ABC ","B:ABC","c:ABC","C:ABC"}, delimiter = ':') + void isSubstringReturnsTrueForLengthOneSubstring(String substring, String text) { assertTrue(StringUtilities.isSubstring("A", "ABC")); // TODO: write rest } From 152a8f7797a9fdc3711abd39c7405320a8853709 Mon Sep 17 00:00:00 2001 From: Jada R Date: Mon, 18 Apr 2022 14:47:49 -0700 Subject: [PATCH 2/2] Add test --- .gitignore | 1 + .../mills/cs180a/StringUtilitiesTester.java | 25 ++++++++++++++++--- 2 files changed, 22 insertions(+), 4 deletions(-) diff --git a/.gitignore b/.gitignore index acec74a..c132588 100644 --- a/.gitignore +++ b/.gitignore @@ -58,3 +58,4 @@ local.properties # Uncomment this line if you wish to ignore the project description file. # Typically, this file would be tracked if it contains build/dependency configurations: #.project +.DS_Store diff --git a/src/edu/mills/cs180a/StringUtilitiesTester.java b/src/edu/mills/cs180a/StringUtilitiesTester.java index 75133fb..c52dfe3 100644 --- a/src/edu/mills/cs180a/StringUtilitiesTester.java +++ b/src/edu/mills/cs180a/StringUtilitiesTester.java @@ -19,13 +19,30 @@ void isSubstringThrowsExceptionForNullArg() { @Test void isSubstringReturnsTrueForEmptySubstring() { - assertFalse(StringUtilities.isSubstring(" ", "foo")); + assertTrue(StringUtilities.isSubstring("", "foo")); } @ParameterizedTest - @CsvSource(value = {"A:ABC", "a:ABC ","b:ABC ","B:ABC","c:ABC","C:ABC"}, delimiter = ':') + @CsvSource(value = {"A:ABC","B:ABC","C:ABC"}, delimiter = ':') void isSubstringReturnsTrueForLengthOneSubstring(String substring, String text) { - assertTrue(StringUtilities.isSubstring("A", "ABC")); - // TODO: write rest + assertTrue(StringUtilities.isSubstring(substring, text)); + } + + @ParameterizedTest + @CsvSource(value = {"D:ABC","B:ABC","A:ABC", "E:ABC"}, delimiter = ':') + void isSubstringReturnsFalseForLengthOneSubstring(String substring, String text) { + assertFalse(StringUtilities.isSubstring(substring, text)); + } + + @ParameterizedTest + @CsvSource(value = {"AB:ABC","BC:ABC","CD:ABCD"}, delimiter = ':') + void isSubstringReturnsTrueForLengthTwoSubstring(String substring, String text) { + assertTrue(StringUtilities.isSubstring(substring, text)); + } + + @ParameterizedTest + @CsvSource(value = {"DE:ABC", "EF:ABCDE"}, delimiter = ':') + void isSubstringReturnsFalseForLengthTwoSubstring(String substring, String text) { + assertFalse(StringUtilities.isSubstring(substring, text)); } }