Skip to content

Commit 1309ecb

Browse files
Added tests for optimised approach
1 parent e9550cf commit 1309ecb

File tree

1 file changed

+72
-0
lines changed

1 file changed

+72
-0
lines changed

src/test/java/com/thealgorithms/misc/PalindromeSinglyLinkedListTest.java

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77
import org.junit.jupiter.api.Test;
88

99
public class PalindromeSinglyLinkedListTest {
10+
11+
// Stack-based tests
1012
@Test
1113
public void testWithEmptyList() {
1214
assertTrue(PalindromeSinglyLinkedList.isPalindrome(new SinglyLinkedList()));
@@ -67,4 +69,74 @@ public void testWithListWithEvenLengthNegative() {
6769
exampleList.insert(20);
6870
assertFalse(PalindromeSinglyLinkedList.isPalindrome(exampleList));
6971
}
72+
73+
// Optimized approach tests
74+
@Test
75+
public void testOptimisedWithEmptyList() {
76+
assertTrue(PalindromeSinglyLinkedList.isPalindromeOptimised(null));
77+
}
78+
79+
@Test
80+
public void testOptimisedWithSingleElement() {
81+
PalindromeSinglyLinkedList.Node node = new PalindromeSinglyLinkedList.Node(100);
82+
assertTrue(PalindromeSinglyLinkedList.isPalindromeOptimised(node));
83+
}
84+
85+
@Test
86+
public void testOptimisedWithOddLengthPositive() {
87+
PalindromeSinglyLinkedList.Node node1 = new PalindromeSinglyLinkedList.Node(1);
88+
PalindromeSinglyLinkedList.Node node2 = new PalindromeSinglyLinkedList.Node(2);
89+
PalindromeSinglyLinkedList.Node node3 = new PalindromeSinglyLinkedList.Node(1);
90+
node1.next = node2;
91+
node2.next = node3;
92+
assertTrue(PalindromeSinglyLinkedList.isPalindromeOptimised(node1));
93+
}
94+
95+
@Test
96+
public void testOptimisedWithOddLengthPositive2() {
97+
PalindromeSinglyLinkedList.Node node1 = new PalindromeSinglyLinkedList.Node(3);
98+
PalindromeSinglyLinkedList.Node node2 = new PalindromeSinglyLinkedList.Node(2);
99+
PalindromeSinglyLinkedList.Node node3 = new PalindromeSinglyLinkedList.Node(1);
100+
PalindromeSinglyLinkedList.Node node4 = new PalindromeSinglyLinkedList.Node(2);
101+
PalindromeSinglyLinkedList.Node node5 = new PalindromeSinglyLinkedList.Node(3);
102+
node1.next = node2;
103+
node2.next = node3;
104+
node3.next = node4;
105+
node4.next = node5;
106+
assertTrue(PalindromeSinglyLinkedList.isPalindromeOptimised(node1));
107+
}
108+
109+
@Test
110+
public void testOptimisedWithEvenLengthPositive() {
111+
PalindromeSinglyLinkedList.Node node1 = new PalindromeSinglyLinkedList.Node(10);
112+
PalindromeSinglyLinkedList.Node node2 = new PalindromeSinglyLinkedList.Node(20);
113+
PalindromeSinglyLinkedList.Node node3 = new PalindromeSinglyLinkedList.Node(20);
114+
PalindromeSinglyLinkedList.Node node4 = new PalindromeSinglyLinkedList.Node(10);
115+
node1.next = node2;
116+
node2.next = node3;
117+
node3.next = node4;
118+
assertTrue(PalindromeSinglyLinkedList.isPalindromeOptimised(node1));
119+
}
120+
121+
@Test
122+
public void testOptimisedWithOddLengthNegative() {
123+
PalindromeSinglyLinkedList.Node node1 = new PalindromeSinglyLinkedList.Node(1);
124+
PalindromeSinglyLinkedList.Node node2 = new PalindromeSinglyLinkedList.Node(2);
125+
PalindromeSinglyLinkedList.Node node3 = new PalindromeSinglyLinkedList.Node(2);
126+
node1.next = node2;
127+
node2.next = node3;
128+
assertFalse(PalindromeSinglyLinkedList.isPalindromeOptimised(node1));
129+
}
130+
131+
@Test
132+
public void testOptimisedWithEvenLengthNegative() {
133+
PalindromeSinglyLinkedList.Node node1 = new PalindromeSinglyLinkedList.Node(10);
134+
PalindromeSinglyLinkedList.Node node2 = new PalindromeSinglyLinkedList.Node(20);
135+
PalindromeSinglyLinkedList.Node node3 = new PalindromeSinglyLinkedList.Node(20);
136+
PalindromeSinglyLinkedList.Node node4 = new PalindromeSinglyLinkedList.Node(20);
137+
node1.next = node2;
138+
node2.next = node3;
139+
node3.next = node4;
140+
assertFalse(PalindromeSinglyLinkedList.isPalindromeOptimised(node1));
141+
}
70142
}

0 commit comments

Comments
 (0)