-
Notifications
You must be signed in to change notification settings - Fork 17
/
Copy pathPalindromeTest.java
73 lines (62 loc) · 2.95 KB
/
PalindromeTest.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
package by.andd3dfx.string;
import org.assertj.core.api.Assertions;
import org.junit.Test;
import static by.andd3dfx.string.Palindrome.canFormPalindrome;
import static by.andd3dfx.string.Palindrome.isPalindrome;
import static by.andd3dfx.string.Palindrome.isPalindromeIgnoreCase;
import static by.andd3dfx.string.Palindrome.longestPalindromeSubstring;
import static by.andd3dfx.string.Palindrome.removeNthPalindrome;
import static by.andd3dfx.string.Palindrome.removePalindromes;
import static org.assertj.core.api.Assertions.assertThat;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
public class PalindromeTest {
@Test
public void testIsPalindrome() {
assertThat(isPalindrome("ertglgtre")).isEqualTo(true);
assertThat(isPalindrome("Anna")).isEqualTo(false);
assertThat(isPalindrome("anna")).isEqualTo(true);
assertThat(isPalindrome("Dumb")).isEqualTo(false);
}
@Test
public void testIsPalindromeIgnoreCase() {
assertThat(isPalindromeIgnoreCase("ertglgtre")).isEqualTo(true);
assertThat(isPalindromeIgnoreCase("Anna")).isEqualTo(true);
assertThat(isPalindromeIgnoreCase("Dumb")).isEqualTo(false);
}
@Test
public void testRemovePalindromes() {
assertThat(removePalindromes("assa Rome Anna all liquid small mom")).isEqualTo("Rome all liquid small");
assertThat(removePalindromes("assa Rome, Anna, all liquid small mom")).isEqualTo("Rome, all liquid small");
}
@Test
public void testRemoveNthPalindrome() {
assertThat(removeNthPalindrome("All assa Rome Anna small mom", 2))
.as("Second palindrome should be removed")
.isEqualTo("All assa Rome small mom");
assertThat(removeNthPalindrome("All assa Rome Anna small mom", 5))
.as("String should should not be changed")
.isEqualTo("All assa Rome Anna small mom");
assertThat(removeNthPalindrome("All assa Rome, Anna, small mom", 2))
.as("Second palindrome should be removed")
.isEqualTo("All assa Rome, small mom");
assertThat(removeNthPalindrome("All assa Rome, Anna, small mom", 5))
.as("String should should not be changed")
.isEqualTo("All assa Rome, Anna, small mom");
}
@Test
public void testLongestPalindromeSubstring() {
assertThat(longestPalindromeSubstring("forgeeksskeegfor")).isEqualTo("geeksskeeg");
assertThat(longestPalindromeSubstring("Geeks")).isEqualTo("ee");
assertThat(longestPalindromeSubstring("Composition")).isEqualTo("iti");
assertThat(longestPalindromeSubstring("abbaerrtrre1ll1")).isEqualTo("errtrre");
}
@Test
public void testCanFormPalindrome() {
assertTrue(canFormPalindrome("aall"));
assertTrue(canFormPalindrome("derpdepr"));
assertTrue(canFormPalindrome(" 78 7hjk 8jk h"));
assertFalse(canFormPalindrome("T-Rex - Ballrooms of Mars"));
assertFalse(canFormPalindrome("123456"));
}
}