Skip to content

Add unit test for hasAllUniqueCharacters() method #2

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
Jul 26, 2024
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Update test case and rename method to hasDifferentIndividualCharacters
  • Loading branch information
DatMV01 committed Jul 26, 2024
commit 3afb0a3112ccab77c396e5d68677c1782e5aa2c0
3 changes: 2 additions & 1 deletion src/main/java/com/ctci/arraysandstrings/IsUnique.java
Original file line number Diff line number Diff line change
@@ -16,7 +16,8 @@ public class IsUnique {
* @return true if all characters are different from each other, otherwise false.
*/
public static boolean hasDifferentIndividualCharacters(String inputString) {
int maxCharacterDecimal = 128;
int maxCharacterDecimal = 128;

if (inputString == null
|| inputString.isEmpty()
|| inputString.length() > maxCharacterDecimal) {
53 changes: 41 additions & 12 deletions src/main/java/com/ctci/arraysandstrings/IsUniqueTest.java
Original file line number Diff line number Diff line change
@@ -5,21 +5,49 @@
public class IsUniqueTest {

@Nested
@DisplayName("Test cases for hasAllUniqueCharacters() method")
class TestCases_For_HasAllUniqueCharacters {
@DisplayName("Test cases for hasDifferentIndividualCharacters() method")
class TestCasesForHasDifferentIndividualCharacters {

@Test
public void testHasAllUniqueCharacters_StringIsNull_ReturnFalse() {
public void testHasDifferentIndividualCharacters_StringIsNull_ReturnFalse() {
Assertions.assertFalse(IsUnique.hasDifferentIndividualCharacters(null));
}

@Test
public void testHasAllUniqueCharacters_StringIsEmpty_ReturnFalse() {
public void testHasDifferentIndividualCharacters_StringIsEmpty_ReturnFalse() {
Assertions.assertFalse(IsUnique.hasDifferentIndividualCharacters(""));
}

@Test
public void testHasAllUniqueCharacters_DuplicateAtHead_ReturnFalse() {
public void testHasDifferentIndividualCharacters_StringLengthSmallerOrEqual128_ReturnFalse() {
StringBuilder stringBuilder = new StringBuilder();

for (int i = 0; i < 128; i++) {
stringBuilder.append((char) i);
}
Assertions.assertTrue(IsUnique.hasDifferentIndividualCharacters(stringBuilder.toString()));

stringBuilder.setLength(0);
for (int i = 1; i < 127; i++) {
stringBuilder.append((char) i);
}
Assertions.assertTrue(IsUnique.hasDifferentIndividualCharacters(stringBuilder.toString()));
}

@Test
public void testHasDifferentIndividualCharacters_StringLengthLargerThan128_ReturnFalse() {
StringBuilder stringBuilder = new StringBuilder();

for (int i = 0; i < 128; i++) {
stringBuilder.append((char) i);
}
stringBuilder.append("a");

Assertions.assertFalse(IsUnique.hasDifferentIndividualCharacters(stringBuilder.toString()));
}

@Test
public void testHasDifferentIndividualCharacters_DuplicateAtHead_ReturnFalse() {
Assertions.assertFalse(IsUnique.hasDifferentIndividualCharacters("aab"));
Assertions.assertFalse(IsUnique.hasDifferentIndividualCharacters("AAb"));

@@ -30,7 +58,7 @@ public void testHasAllUniqueCharacters_DuplicateAtHead_ReturnFalse() {
}

@Test
public void testHasAllUniqueCharacters_DuplicateAtMiddle_ReturnFalse() {
public void testHasDifferentIndividualCharacters_DuplicateAtMiddle_ReturnFalse() {
Assertions.assertFalse(IsUnique.hasDifferentIndividualCharacters("abcbd"));
Assertions.assertFalse(IsUnique.hasDifferentIndividualCharacters("aBcBd"));

@@ -41,7 +69,7 @@ public void testHasAllUniqueCharacters_DuplicateAtMiddle_ReturnFalse() {
}

@Test
public void testHasAllUniqueCharacters_DuplicateAtTail_ReturnFalse() {
public void testHasDifferentIndividualCharacters_DuplicateAtTail_ReturnFalse() {
Assertions.assertFalse(IsUnique.hasDifferentIndividualCharacters("aba"));
Assertions.assertFalse(IsUnique.hasDifferentIndividualCharacters("AbA"));

@@ -52,32 +80,33 @@ public void testHasAllUniqueCharacters_DuplicateAtTail_ReturnFalse() {
}

@Test
public void testHasAllUniqueCharacters_OnlyOneCharacter_ReturnTrue() {
public void testHasDifferentIndividualCharacters_OnlyOneCharacter_ReturnTrue() {
Assertions.assertTrue(IsUnique.hasDifferentIndividualCharacters("a"));
Assertions.assertTrue(IsUnique.hasDifferentIndividualCharacters("1"));
Assertions.assertTrue(IsUnique.hasDifferentIndividualCharacters("A"));
Assertions.assertTrue(IsUnique.hasDifferentIndividualCharacters("#"));
}

@Test
public void testHasAllUniqueCharacters_OnlyOneCharacter_ReturnFalse() {
public void testHasDifferentIndividualCharacters_OnlyOneCharacter_ReturnFalse() {
Assertions.assertFalse(IsUnique.hasDifferentIndividualCharacters("á"));
Assertions.assertFalse(IsUnique.hasDifferentIndividualCharacters("Ô"));
Assertions.assertFalse(IsUnique.hasDifferentIndividualCharacters("€"));
}

@Test
public void testHasAllUniqueCharacters_InvalidString_ReturnFalse() {
public void testHasDifferentIndividualCharacters_InvalidString_ReturnFalse() {
Assertions.assertFalse(IsUnique.hasDifferentIndividualCharacters("ۇ"));
Assertions.assertFalse(IsUnique.hasDifferentIndividualCharacters("áÂ"));
}

@Test
public void testHasAllUniqueCharacters_ValidString_ReturnTrue() {
public void testHasDifferentIndividualCharacters_ValidString_ReturnTrue() {
Assertions.assertTrue(IsUnique.hasDifferentIndividualCharacters("aAb"));
Assertions.assertTrue(IsUnique.hasDifferentIndividualCharacters("abcBd"));
Assertions.assertTrue(IsUnique.hasDifferentIndividualCharacters("abA"));
Assertions.assertTrue(IsUnique.hasDifferentIndividualCharacters("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"));
Assertions.assertTrue(IsUnique.hasDifferentIndividualCharacters(
"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"));
}
}
}