Skip to content

Commit 3e76d2c

Browse files
committed
17-12-2025 [added other test cases for classes]
1 parent ceb0adf commit 3e76d2c

20 files changed

+1447
-0
lines changed
Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
package com.dsa.algorithms.Traversal;
2+
3+
import org.junit.jupiter.api.Test;
4+
import org.junit.jupiter.api.BeforeEach;
5+
import static org.junit.jupiter.api.Assertions.*;
6+
import java.util.*;
7+
8+
class InOrderTraversalTest {
9+
10+
private In_Order_Traversal traversal;
11+
12+
@BeforeEach
13+
void setUp() {
14+
traversal = new In_Order_Traversal();
15+
}
16+
17+
private In_Order_Traversal.TreeNode createSampleTree() {
18+
/*
19+
1
20+
/ \
21+
2 3
22+
/ \
23+
4 5
24+
*/
25+
In_Order_Traversal.TreeNode root = new In_Order_Traversal.TreeNode(1);
26+
root.left = new In_Order_Traversal.TreeNode(2);
27+
root.right = new In_Order_Traversal.TreeNode(3);
28+
root.left.left = new In_Order_Traversal.TreeNode(4);
29+
root.left.right = new In_Order_Traversal.TreeNode(5);
30+
return root;
31+
}
32+
33+
@Test
34+
void testInorderRecursive() {
35+
In_Order_Traversal.TreeNode root = createSampleTree();
36+
// TODO: Uncomment when implementation is complete
37+
// List<Integer> result = traversal.inorderRecursive(root);
38+
// assertEquals(Arrays.asList(4, 2, 5, 1, 3), result);
39+
}
40+
41+
@Test
42+
void testInorderIterative() {
43+
In_Order_Traversal.TreeNode root = createSampleTree();
44+
// TODO: Uncomment when implementation is complete
45+
// List<Integer> result = traversal.inorderIterative(root);
46+
// assertEquals(Arrays.asList(4, 2, 5, 1, 3), result);
47+
}
48+
49+
@Test
50+
void testInorderEmptyTree() {
51+
// TODO: Uncomment when implementation is complete
52+
// List<Integer> result = traversal.inorderRecursive(null);
53+
// assertTrue(result.isEmpty());
54+
}
55+
56+
@Test
57+
void testInorderSingleNode() {
58+
In_Order_Traversal.TreeNode root = new In_Order_Traversal.TreeNode(1);
59+
// TODO: Uncomment when implementation is complete
60+
// List<Integer> result = traversal.inorderRecursive(root);
61+
// assertEquals(Arrays.asList(1), result);
62+
}
63+
}
Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
package com.dsa.algorithms.Traversal;
2+
3+
import org.junit.jupiter.api.Test;
4+
import org.junit.jupiter.api.BeforeEach;
5+
import static org.junit.jupiter.api.Assertions.*;
6+
import java.util.*;
7+
8+
class PostOrderTraversalTest {
9+
10+
private Post_Order_Traversal traversal;
11+
12+
@BeforeEach
13+
void setUp() {
14+
traversal = new Post_Order_Traversal();
15+
}
16+
17+
private Post_Order_Traversal.TreeNode createSampleTree() {
18+
/*
19+
1
20+
/ \
21+
2 3
22+
/ \
23+
4 5
24+
*/
25+
Post_Order_Traversal.TreeNode root = new Post_Order_Traversal.TreeNode(1);
26+
root.left = new Post_Order_Traversal.TreeNode(2);
27+
root.right = new Post_Order_Traversal.TreeNode(3);
28+
root.left.left = new Post_Order_Traversal.TreeNode(4);
29+
root.left.right = new Post_Order_Traversal.TreeNode(5);
30+
return root;
31+
}
32+
33+
@Test
34+
void testPostorderRecursive() {
35+
Post_Order_Traversal.TreeNode root = createSampleTree();
36+
// TODO: Uncomment when implementation is complete
37+
// List<Integer> result = traversal.postorderRecursive(root);
38+
// assertEquals(Arrays.asList(4, 5, 2, 3, 1), result);
39+
}
40+
41+
@Test
42+
void testPostorderIterative() {
43+
Post_Order_Traversal.TreeNode root = createSampleTree();
44+
// TODO: Uncomment when implementation is complete
45+
// List<Integer> result = traversal.postorderIterative(root);
46+
// assertEquals(Arrays.asList(4, 5, 2, 3, 1), result);
47+
}
48+
49+
@Test
50+
void testPostorderEmptyTree() {
51+
// TODO: Uncomment when implementation is complete
52+
// List<Integer> result = traversal.postorderRecursive(null);
53+
// assertTrue(result.isEmpty());
54+
}
55+
56+
@Test
57+
void testPostorderSingleNode() {
58+
Post_Order_Traversal.TreeNode root = new Post_Order_Traversal.TreeNode(1);
59+
// TODO: Uncomment when implementation is complete
60+
// List<Integer> result = traversal.postorderRecursive(root);
61+
// assertEquals(Arrays.asList(1), result);
62+
}
63+
}
Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
package com.dsa.algorithms.Traversal;
2+
3+
import org.junit.jupiter.api.Test;
4+
import org.junit.jupiter.api.BeforeEach;
5+
import static org.junit.jupiter.api.Assertions.*;
6+
import java.util.*;
7+
8+
class PreOrderTraversalTest {
9+
10+
private Pre_Order_Traversal traversal;
11+
12+
@BeforeEach
13+
void setUp() {
14+
traversal = new Pre_Order_Traversal();
15+
}
16+
17+
private Pre_Order_Traversal.TreeNode createSampleTree() {
18+
/*
19+
1
20+
/ \
21+
2 3
22+
/ \
23+
4 5
24+
*/
25+
Pre_Order_Traversal.TreeNode root = new Pre_Order_Traversal.TreeNode(1);
26+
root.left = new Pre_Order_Traversal.TreeNode(2);
27+
root.right = new Pre_Order_Traversal.TreeNode(3);
28+
root.left.left = new Pre_Order_Traversal.TreeNode(4);
29+
root.left.right = new Pre_Order_Traversal.TreeNode(5);
30+
return root;
31+
}
32+
33+
@Test
34+
void testPreorderRecursive() {
35+
Pre_Order_Traversal.TreeNode root = createSampleTree();
36+
// TODO: Uncomment when implementation is complete
37+
// List<Integer> result = traversal.preorderRecursive(root);
38+
// assertEquals(Arrays.asList(1, 2, 4, 5, 3), result);
39+
}
40+
41+
@Test
42+
void testPreorderIterative() {
43+
Pre_Order_Traversal.TreeNode root = createSampleTree();
44+
// TODO: Uncomment when implementation is complete
45+
// List<Integer> result = traversal.preorderIterative(root);
46+
// assertEquals(Arrays.asList(1, 2, 4, 5, 3), result);
47+
}
48+
49+
@Test
50+
void testPreorderEmptyTree() {
51+
// TODO: Uncomment when implementation is complete
52+
// List<Integer> result = traversal.preorderRecursive(null);
53+
// assertTrue(result.isEmpty());
54+
}
55+
56+
@Test
57+
void testPreorderSingleNode() {
58+
Pre_Order_Traversal.TreeNode root = new Pre_Order_Traversal.TreeNode(1);
59+
// TODO: Uncomment when implementation is complete
60+
// List<Integer> result = traversal.preorderRecursive(root);
61+
// assertEquals(Arrays.asList(1), result);
62+
}
63+
}
Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
package com.dsa.algorithms.dynamic_programming;
2+
3+
import org.junit.jupiter.api.Test;
4+
import org.junit.jupiter.api.BeforeEach;
5+
import static org.junit.jupiter.api.Assertions.*;
6+
7+
class FibonacciTest {
8+
9+
private Fibonacci fibonacci;
10+
11+
@BeforeEach
12+
void setUp() {
13+
fibonacci = new Fibonacci();
14+
}
15+
16+
@Test
17+
void testFibonacciMemoization() {
18+
// TODO: Uncomment when implementation is complete
19+
// assertEquals(0, fibonacci.fibonacciMemoization(0));
20+
// assertEquals(1, fibonacci.fibonacciMemoization(1));
21+
// assertEquals(1, fibonacci.fibonacciMemoization(2));
22+
// assertEquals(2, fibonacci.fibonacciMemoization(3));
23+
// assertEquals(5, fibonacci.fibonacciMemoization(5));
24+
// assertEquals(55, fibonacci.fibonacciMemoization(10));
25+
}
26+
27+
@Test
28+
void testFibonacciTabulation() {
29+
// TODO: Uncomment when implementation is complete
30+
// assertEquals(0, fibonacci.fibonacciTabulation(0));
31+
// assertEquals(1, fibonacci.fibonacciTabulation(1));
32+
// assertEquals(1, fibonacci.fibonacciTabulation(2));
33+
// assertEquals(2, fibonacci.fibonacciTabulation(3));
34+
// assertEquals(5, fibonacci.fibonacciTabulation(5));
35+
// assertEquals(55, fibonacci.fibonacciTabulation(10));
36+
}
37+
38+
@Test
39+
void testFibonacciOptimized() {
40+
// TODO: Uncomment when implementation is complete
41+
// assertEquals(0, fibonacci.fibonacciOptimized(0));
42+
// assertEquals(1, fibonacci.fibonacciOptimized(1));
43+
// assertEquals(1, fibonacci.fibonacciOptimized(2));
44+
// assertEquals(2, fibonacci.fibonacciOptimized(3));
45+
// assertEquals(5, fibonacci.fibonacciOptimized(5));
46+
// assertEquals(55, fibonacci.fibonacciOptimized(10));
47+
}
48+
49+
@Test
50+
void testLargeFibonacci() {
51+
// TODO: Uncomment when implementation is complete
52+
// Test that optimized version can handle larger inputs efficiently
53+
// assertDoesNotThrow(() -> fibonacci.fibonacciOptimized(50));
54+
}
55+
}
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
package com.dsa.algorithms.dynamic_programming;
2+
3+
import org.junit.jupiter.api.Test;
4+
import org.junit.jupiter.api.BeforeEach;
5+
import static org.junit.jupiter.api.Assertions.*;
6+
7+
class KnapsackTest {
8+
9+
private Knapsack knapsack;
10+
11+
@BeforeEach
12+
void setUp() {
13+
knapsack = new Knapsack();
14+
}
15+
16+
@Test
17+
void testBasicKnapsack() {
18+
// TODO: Uncomment when implementation is complete
19+
// int[] weights = {2, 3, 4, 5};
20+
// int[] values = {3, 4, 5, 6};
21+
// int capacity = 5;
22+
// assertEquals(7, knapsack.knapsack(weights, values, capacity));
23+
}
24+
25+
@Test
26+
void testKnapsackAllItems() {
27+
// TODO: Uncomment when implementation is complete
28+
// int[] weights = {1, 2, 3};
29+
// int[] values = {10, 15, 40};
30+
// int capacity = 6;
31+
// assertEquals(65, knapsack.knapsack(weights, values, capacity));
32+
}
33+
34+
@Test
35+
void testKnapsackZeroCapacity() {
36+
// TODO: Uncomment when implementation is complete
37+
// int[] weights = {1, 2, 3};
38+
// int[] values = {10, 15, 40};
39+
// int capacity = 0;
40+
// assertEquals(0, knapsack.knapsack(weights, values, capacity));
41+
}
42+
43+
@Test
44+
void testKnapsackWithItems() {
45+
// TODO: Uncomment when implementation is complete
46+
// int[] weights = {2, 3, 4, 5};
47+
// int[] values = {3, 4, 5, 6};
48+
// int capacity = 5;
49+
// int[] items = knapsack.knapsackWithItems(weights, values, capacity);
50+
// assertNotNull(items);
51+
// // Verify selected items give maximum value
52+
}
53+
}
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
package com.dsa.algorithms.dynamic_programming;
2+
3+
import org.junit.jupiter.api.Test;
4+
import org.junit.jupiter.api.BeforeEach;
5+
import static org.junit.jupiter.api.Assertions.*;
6+
7+
class LongestCommonSubsequenceTest {
8+
9+
private LongestCommonSubsequence lcs;
10+
11+
@BeforeEach
12+
void setUp() {
13+
lcs = new LongestCommonSubsequence();
14+
}
15+
16+
@Test
17+
void testLCSBasic() {
18+
// TODO: Uncomment when implementation is complete
19+
// assertEquals(3, lcs.lcs("ABCDGH", "AEDFHR"));
20+
}
21+
22+
@Test
23+
void testLCSIdenticalStrings() {
24+
// TODO: Uncomment when implementation is complete
25+
// assertEquals(3, lcs.lcs("ABC", "ABC"));
26+
}
27+
28+
@Test
29+
void testLCSNoCommon() {
30+
// TODO: Uncomment when implementation is complete
31+
// assertEquals(0, lcs.lcs("ABC", "DEF"));
32+
}
33+
34+
@Test
35+
void testLCSEmptyString() {
36+
// TODO: Uncomment when implementation is complete
37+
// assertEquals(0, lcs.lcs("", "ABC"));
38+
// assertEquals(0, lcs.lcs("ABC", ""));
39+
}
40+
41+
@Test
42+
void testLCSString() {
43+
// TODO: Uncomment when implementation is complete
44+
// String result = lcs.lcsString("ABCDGH", "AEDFHR");
45+
// assertEquals(3, result.length());
46+
// // Verify result is a valid subsequence
47+
}
48+
49+
@Test
50+
void testLCSStringIdentical() {
51+
// TODO: Uncomment when implementation is complete
52+
// assertEquals("ABC", lcs.lcsString("ABC", "ABC"));
53+
}
54+
}

0 commit comments

Comments
 (0)