Skip to content

Commit ac5a289

Browse files
committed
Add test case for isAllCharactersUniqueAndLowercaseAndInAlphabet()
1 parent 4356d80 commit ac5a289

File tree

1 file changed

+113
-1
lines changed

1 file changed

+113
-1
lines changed

src/main/test/com/ctci/arraysandstrings/IsUniqueTest.java

+113-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ public class IsUniqueTest {
66

77
@Nested
88
@DisplayName("Test cases for isAllCharactersUniqueAndInASCII()")
9-
class TestCasesForIsAllCharactersUniqueAndInASCII{
9+
class TestCasesForIsAllCharactersUniqueAndInASCII {
1010

1111
@Test
1212
public void isAllCharactersUniqueAndInASCII_StringIsNull_ReturnFalse() {
@@ -109,4 +109,116 @@ public void isAllCharactersUniqueAndInASCII_ValidString_ReturnTrue() {
109109
"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"));
110110
}
111111
}
112+
113+
@Nested
114+
@DisplayName("Test cases for isAllCharactersUniqueAndLowercaseAndInAlphabet()")
115+
class TestCasesForIsAllCharactersUniqueAndLowercaseAndInAlphabet {
116+
117+
@Test
118+
public void isAllCharactersUniqueAndLowercaseAndInAlphabet_StringIsNull_ReturnFalse() {
119+
Assertions.assertFalse(IsUnique.isAllCharactersUniqueAndLowercaseAndInAlphabet(null));
120+
}
121+
122+
@Test
123+
public void isAllCharactersUniqueAndLowercaseAndInAlphabet_StringIsEmpty_ReturnFalse() {
124+
Assertions.assertFalse(IsUnique.isAllCharactersUniqueAndLowercaseAndInAlphabet(""));
125+
}
126+
127+
@Test
128+
public void isAllCharactersUniqueAndLowercaseAndInAlphabet_StringLengthSmallerOrEqual26_ReturnFalse() {
129+
StringBuilder stringBuilder = new StringBuilder();
130+
131+
for (int i = 97; i <= 122; i++) { // 'a' -> 'z'
132+
stringBuilder.append((char) i);
133+
}
134+
Assertions.assertTrue(IsUnique.isAllCharactersUniqueAndLowercaseAndInAlphabet(stringBuilder.toString()));
135+
136+
stringBuilder.setLength(0);
137+
for (int i = 100; i <= 120; i++) { // 'a' -> 'z'
138+
stringBuilder.append((char) i);
139+
}
140+
Assertions.assertTrue(IsUnique.isAllCharactersUniqueAndLowercaseAndInAlphabet(stringBuilder.toString()));
141+
}
142+
143+
@Test
144+
public void isAllCharactersUniqueAndLowercaseAndInAlphabet_StringLengthLargerThan26_ReturnFalse() {
145+
String a2z = "abcdefghijklmnopqrstuvwxyz";
146+
Assertions.assertFalse(IsUnique.isAllCharactersUniqueAndLowercaseAndInAlphabet(a2z + (char) 96)); // 96 => `
147+
Assertions.assertFalse(IsUnique.isAllCharactersUniqueAndLowercaseAndInAlphabet(a2z + (char) 123)); // 123 => {
148+
}
149+
150+
@Test
151+
public void isAllCharactersUniqueAndLowercaseAndInAlphabet_Beyond_a2z_ReturnFalse() {
152+
Assertions.assertFalse(IsUnique.isAllCharactersUniqueAndLowercaseAndInAlphabet("GH@"));
153+
Assertions.assertFalse(IsUnique.isAllCharactersUniqueAndLowercaseAndInAlphabet("{} "));
154+
155+
Assertions.assertFalse(IsUnique.isAllCharactersUniqueAndLowercaseAndInAlphabet("ááb"));
156+
Assertions.assertFalse(IsUnique.isAllCharactersUniqueAndLowercaseAndInAlphabet("ÁÁb"));
157+
158+
Assertions.assertFalse(IsUnique.isAllCharactersUniqueAndLowercaseAndInAlphabet("1123456"));
159+
}
160+
161+
@Test
162+
public void isAllCharactersUniqueAndLowercaseAndInAlphabet_DuplicateAtHead_ReturnFalse() {
163+
Assertions.assertFalse(IsUnique.isAllCharactersUniqueAndLowercaseAndInAlphabet("aab"));
164+
Assertions.assertFalse(IsUnique.isAllCharactersUniqueAndLowercaseAndInAlphabet("AAb"));
165+
166+
Assertions.assertFalse(IsUnique.isAllCharactersUniqueAndLowercaseAndInAlphabet("ááb"));
167+
Assertions.assertFalse(IsUnique.isAllCharactersUniqueAndLowercaseAndInAlphabet("ÁÁb"));
168+
169+
Assertions.assertFalse(IsUnique.isAllCharactersUniqueAndLowercaseAndInAlphabet("1123456"));
170+
}
171+
172+
@Test
173+
public void isAllCharactersUniqueAndLowercaseAndInAlphabet_DuplicateAtMiddle_ReturnFalse() {
174+
Assertions.assertFalse(IsUnique.isAllCharactersUniqueAndLowercaseAndInAlphabet("abcbd"));
175+
Assertions.assertFalse(IsUnique.isAllCharactersUniqueAndLowercaseAndInAlphabet("aBcBd"));
176+
177+
Assertions.assertFalse(IsUnique.isAllCharactersUniqueAndLowercaseAndInAlphabet("aưcưd"));
178+
Assertions.assertFalse(IsUnique.isAllCharactersUniqueAndLowercaseAndInAlphabet("aƯcƯd"));
179+
180+
Assertions.assertFalse(IsUnique.isAllCharactersUniqueAndLowercaseAndInAlphabet("123436"));
181+
}
182+
183+
@Test
184+
public void isAllCharactersUniqueAndLowercaseAndInAlphabet_DuplicateAtTail_ReturnFalse() {
185+
Assertions.assertFalse(IsUnique.isAllCharactersUniqueAndLowercaseAndInAlphabet("aba"));
186+
Assertions.assertFalse(IsUnique.isAllCharactersUniqueAndLowercaseAndInAlphabet("AbA"));
187+
188+
Assertions.assertFalse(IsUnique.isAllCharactersUniqueAndLowercaseAndInAlphabet("ăbă"));
189+
Assertions.assertFalse(IsUnique.isAllCharactersUniqueAndLowercaseAndInAlphabet("ĂbĂ"));
190+
191+
Assertions.assertFalse(IsUnique.isAllCharactersUniqueAndLowercaseAndInAlphabet("1234566"));
192+
}
193+
194+
@Test
195+
public void isAllCharactersUniqueAndLowercaseAndInAlphabet_OnlyOneCharacter_ReturnTrue() {
196+
for (int i = 97; i <= 122; i++) {
197+
Assertions.assertTrue(IsUnique.isAllCharactersUniqueAndLowercaseAndInAlphabet(String.valueOf((char) i)));
198+
}
199+
}
200+
201+
@Test
202+
public void isAllCharactersUniqueAndLowercaseAndInAlphabet_OnlyOneCharacter_ReturnFalse() {
203+
Assertions.assertFalse(IsUnique.isAllCharactersUniqueAndLowercaseAndInAlphabet("A"));
204+
Assertions.assertFalse(IsUnique.isAllCharactersUniqueAndLowercaseAndInAlphabet("á"));
205+
Assertions.assertFalse(IsUnique.isAllCharactersUniqueAndLowercaseAndInAlphabet("Ô"));
206+
Assertions.assertFalse(IsUnique.isAllCharactersUniqueAndLowercaseAndInAlphabet("€"));
207+
}
208+
209+
@Test
210+
public void isAllCharactersUniqueAndLowercaseAndInAlphabet_InvalidString_ReturnFalse() {
211+
Assertions.assertFalse(IsUnique.isAllCharactersUniqueAndLowercaseAndInAlphabet("ۇ"));
212+
Assertions.assertFalse(IsUnique.isAllCharactersUniqueAndLowercaseAndInAlphabet("áÂ"));
213+
Assertions.assertFalse(IsUnique.isAllCharactersUniqueAndLowercaseAndInAlphabet("aB"));
214+
}
215+
216+
@Test
217+
public void isAllCharactersUniqueAndLowercaseAndInAlphabet_ValidString_ReturnTrue() {
218+
Assertions.assertTrue(IsUnique.isAllCharactersUniqueAndLowercaseAndInAlphabet("mwq"));
219+
Assertions.assertTrue(IsUnique.isAllCharactersUniqueAndLowercaseAndInAlphabet("fwoklt"));
220+
Assertions.assertTrue(IsUnique.isAllCharactersUniqueAndLowercaseAndInAlphabet("abcdefghijklmnopqrstuvwxyz"));
221+
}
222+
}
223+
112224
}

0 commit comments

Comments
 (0)