MCPcopy Create free account
hub / github.com/TheAlgorithms/Java / AnagramsTest

Class AnagramsTest

src/test/java/com/thealgorithms/strings/AnagramsTest.java:9–49  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

7import org.junit.jupiter.params.provider.MethodSource;
8
9public class AnagramsTest {
10
11 record AnagramTestCase(String input1, String input2, boolean expected) {
12 }
13
14 private static Stream<AnagramTestCase> anagramTestData() {
15 return Stream.of(new AnagramTestCase("late", "tale", true), new AnagramTestCase("late", "teal", true), new AnagramTestCase("listen", "silent", true), new AnagramTestCase("hello", "olelh", true), new AnagramTestCase("hello", "world", false), new AnagramTestCase("deal", "lead", true),
16 new AnagramTestCase("binary", "brainy", true), new AnagramTestCase("adobe", "abode", true), new AnagramTestCase("cat", "act", true), new AnagramTestCase("cat", "cut", false), new AnagramTestCase("Listen", "Silent", true), new AnagramTestCase("Dormitory", "DirtyRoom", true),
17 new AnagramTestCase("Schoolmaster", "TheClassroom", true), new AnagramTestCase("Astronomer", "MoonStarer", true), new AnagramTestCase("Conversation", "VoicesRantOn", true));
18 }
19
20 @ParameterizedTest
21 @MethodSource("anagramTestData")
22 void testApproach1(AnagramTestCase testCase) {
23 assertEquals(testCase.expected(), Anagrams.areAnagramsBySorting(testCase.input1(), testCase.input2()));
24 }
25
26 @ParameterizedTest
27 @MethodSource("anagramTestData")
28 void testApproach2(AnagramTestCase testCase) {
29 assertEquals(testCase.expected(), Anagrams.areAnagramsByCountingChars(testCase.input1(), testCase.input2()));
30 }
31
32 @ParameterizedTest
33 @MethodSource("anagramTestData")
34 void testApproach3(AnagramTestCase testCase) {
35 assertEquals(testCase.expected(), Anagrams.areAnagramsByCountingCharsSingleArray(testCase.input1(), testCase.input2()));
36 }
37
38 @ParameterizedTest
39 @MethodSource("anagramTestData")
40 void testApproach4(AnagramTestCase testCase) {
41 assertEquals(testCase.expected(), Anagrams.areAnagramsUsingHashMap(testCase.input1(), testCase.input2()));
42 }
43
44 @ParameterizedTest
45 @MethodSource("anagramTestData")
46 void testApproach5(AnagramTestCase testCase) {
47 assertEquals(testCase.expected(), Anagrams.areAnagramsBySingleFreqArray(testCase.input1(), testCase.input2()));
48 }
49}

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected