33import static org .junit .jupiter .api .Assertions .assertEquals ;
44
55import java .util .stream .Stream ;
6+ import org .junit .jupiter .api .Test ;
67import org .junit .jupiter .params .ParameterizedTest ;
78import org .junit .jupiter .params .provider .MethodSource ;
8- import org .junit .jupiter .api .Test ;
99
1010public class IsogramTest {
1111
@@ -15,79 +15,55 @@ record IsogramTestCase(String input, boolean expected) {
1515 private static Stream <IsogramTestCase > isogramArrayTestData () {
1616 return Stream .of (
1717 // Valid isograms (only checks letters)
18- new IsogramTestCase ("uncopyrightable" , true ),
19- new IsogramTestCase ("dermatoglyphics" , true ),
20- new IsogramTestCase ("background" , true ),
21- new IsogramTestCase ("python" , true ),
22- new IsogramTestCase ("keyboard" , true ),
23- new IsogramTestCase ("clipboard" , true ),
18+ new IsogramTestCase ("uncopyrightable" , true ), new IsogramTestCase ("dermatoglyphics" , true ),
19+ new IsogramTestCase ("background" , true ), new IsogramTestCase ("python" , true ),
20+ new IsogramTestCase ("keyboard" , true ), new IsogramTestCase ("clipboard" , true ),
2421 new IsogramTestCase ("flowchart" , true ),
25- new IsogramTestCase ("bankruptcy" , true ),
26- new IsogramTestCase ("computer" , true ),
22+ new IsogramTestCase ("bankruptcy" , true ), new IsogramTestCase ("computer" , true ),
2723 new IsogramTestCase ("algorithms" , true ),
2824
2925 // Not isograms - letters repeat
30- new IsogramTestCase ("hello" , false ),
31- new IsogramTestCase ("programming" , false ),
32- new IsogramTestCase ("java" , false ),
33- new IsogramTestCase ("coffee" , false ),
34- new IsogramTestCase ("book" , false ),
35- new IsogramTestCase ("letter" , false ),
26+ new IsogramTestCase ("hello" , false ), new IsogramTestCase ("programming" , false ),
27+ new IsogramTestCase ("java" , false ), new IsogramTestCase ("coffee" , false ),
28+ new IsogramTestCase ("book" , false ), new IsogramTestCase ("letter" , false ),
3629 new IsogramTestCase ("mississippi" , false ),
3730 new IsogramTestCase ("google" , false ),
3831
3932 // Edge cases
40- new IsogramTestCase ("" , true ),
41- new IsogramTestCase ("a" , true ),
42- new IsogramTestCase ("ab" , true ),
43- new IsogramTestCase ("abc" , true ),
44- new IsogramTestCase ("aa" , false ),
33+ new IsogramTestCase ("" , true ), new IsogramTestCase ("a" , true ), new IsogramTestCase ("ab" , true ),
34+ new IsogramTestCase ("abc" , true ), new IsogramTestCase ("aa" , false ),
4535 new IsogramTestCase ("abcdefghijklmnopqrstuvwxyz" , true ), // All 26 letters
4636
4737 // Case insensitive
48- new IsogramTestCase ("Python" , true ),
49- new IsogramTestCase ("BACKGROUND" , true ),
50- new IsogramTestCase ("Hello" , false ),
51- new IsogramTestCase ("PROGRAMMING" , false ));
38+ new IsogramTestCase ("Python" , true ), new IsogramTestCase ("BACKGROUND" , true ),
39+ new IsogramTestCase ("Hello" , false ), new IsogramTestCase ("PROGRAMMING" , false ));
5240 }
5341
5442 private static Stream <IsogramTestCase > isogramLengthTestData () {
5543 return Stream .of (
5644 // Valid isograms (checks all characters)
57- new IsogramTestCase ("uncopyrightable" , true ),
58- new IsogramTestCase ("dermatoglyphics" , true ),
59- new IsogramTestCase ("background" , true ),
60- new IsogramTestCase ("python" , true ),
61- new IsogramTestCase ("keyboard" , true ),
62- new IsogramTestCase ("clipboard" , true ),
45+ new IsogramTestCase ("uncopyrightable" , true ), new IsogramTestCase ("dermatoglyphics" , true ),
46+ new IsogramTestCase ("background" , true ), new IsogramTestCase ("python" , true ),
47+ new IsogramTestCase ("keyboard" , true ), new IsogramTestCase ("clipboard" , true ),
6348 new IsogramTestCase ("flowchart" , true ),
64- new IsogramTestCase ("bankruptcy" , true ),
65- new IsogramTestCase ("computer" , true ),
49+ new IsogramTestCase ("bankruptcy" , true ), new IsogramTestCase ("computer" , true ),
6650 new IsogramTestCase ("algorithms" , true ),
6751
6852 // Not isograms - characters repeat
69- new IsogramTestCase ("hello" , false ),
70- new IsogramTestCase ("programming" , false ),
71- new IsogramTestCase ("java" , false ),
72- new IsogramTestCase ("coffee" , false ),
73- new IsogramTestCase ("book" , false ),
74- new IsogramTestCase ("letter" , false ),
53+ new IsogramTestCase ("hello" , false ), new IsogramTestCase ("programming" , false ),
54+ new IsogramTestCase ("java" , false ), new IsogramTestCase ("coffee" , false ),
55+ new IsogramTestCase ("book" , false ), new IsogramTestCase ("letter" , false ),
7556 new IsogramTestCase ("mississippi" , false ),
7657 new IsogramTestCase ("google" , false ),
7758
7859 // Edge cases
79- new IsogramTestCase ("" , true ),
80- new IsogramTestCase ("a" , true ),
81- new IsogramTestCase ("ab" , true ),
82- new IsogramTestCase ("abc" , true ),
83- new IsogramTestCase ("aa" , false ),
60+ new IsogramTestCase ("" , true ), new IsogramTestCase ("a" , true ), new IsogramTestCase ("ab" , true ),
61+ new IsogramTestCase ("abc" , true ), new IsogramTestCase ("aa" , false ),
8462 new IsogramTestCase ("abcdefghijklmnopqrstuvwxyz" , true ), // All 26 letters
8563
8664 // Case insensitive
87- new IsogramTestCase ("Python" , true ),
88- new IsogramTestCase ("BACKGROUND" , true ),
89- new IsogramTestCase ("Hello" , false ),
90- new IsogramTestCase ("PROGRAMMING" , false ),
65+ new IsogramTestCase ("Python" , true ), new IsogramTestCase ("BACKGROUND" , true ),
66+ new IsogramTestCase ("Hello" , false ), new IsogramTestCase ("PROGRAMMING" , false ),
9167
9268 // Strings with symbols and numbers
9369 new IsogramTestCase ("abc@def" , true ), // all characters unique
@@ -132,5 +108,4 @@ void testEmptyStringByArray() {
132108 @ Test
133109 void testEmptyStringByLength () {
134110 assertEquals (true , Isogram .isIsogramByLength ("" ));
135- }
136- }
111+ }
0 commit comments