mirror of
https://github.com/TheAlgorithms/Java.git
synced 2025-07-27 22:43:30 +08:00
Enhance comments & improve readability in LongestCommonSubsequence.java
(#5523)
This commit is contained in:
@ -0,0 +1,89 @@
|
||||
package com.thealgorithms.dynamicprogramming;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
public class LongestCommonSubsequenceTest {
|
||||
|
||||
@Test
|
||||
public void testLCSBasic() {
|
||||
String str1 = "ABCBDAB";
|
||||
String str2 = "BDCAB";
|
||||
String expected = "BDAB"; // The longest common subsequence
|
||||
String result = LongestCommonSubsequence.getLCS(str1, str2);
|
||||
assertEquals(expected, result);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testLCSIdenticalStrings() {
|
||||
String str1 = "AGGTAB";
|
||||
String str2 = "AGGTAB";
|
||||
String expected = "AGGTAB"; // LCS is the same as the strings
|
||||
String result = LongestCommonSubsequence.getLCS(str1, str2);
|
||||
assertEquals(expected, result);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testLCSNoCommonCharacters() {
|
||||
String str1 = "ABC";
|
||||
String str2 = "XYZ";
|
||||
String expected = ""; // No common subsequence
|
||||
String result = LongestCommonSubsequence.getLCS(str1, str2);
|
||||
assertEquals(expected, result);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testLCSWithEmptyString() {
|
||||
String str1 = "";
|
||||
String str2 = "XYZ";
|
||||
String expected = ""; // LCS with an empty string should be empty
|
||||
String result = LongestCommonSubsequence.getLCS(str1, str2);
|
||||
assertEquals(expected, result);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testLCSWithBothEmptyStrings() {
|
||||
String str1 = "";
|
||||
String str2 = "";
|
||||
String expected = ""; // LCS with both strings empty should be empty
|
||||
String result = LongestCommonSubsequence.getLCS(str1, str2);
|
||||
assertEquals(expected, result);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testLCSWithNullFirstString() {
|
||||
String str1 = null;
|
||||
String str2 = "XYZ";
|
||||
String expected = null; // Should return null if first string is null
|
||||
String result = LongestCommonSubsequence.getLCS(str1, str2);
|
||||
assertEquals(expected, result);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testLCSWithNullSecondString() {
|
||||
String str1 = "ABC";
|
||||
String str2 = null;
|
||||
String expected = null; // Should return null if second string is null
|
||||
String result = LongestCommonSubsequence.getLCS(str1, str2);
|
||||
assertEquals(expected, result);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testLCSWithNullBothStrings() {
|
||||
String str1 = null;
|
||||
String str2 = null;
|
||||
String expected = null; // Should return null if both strings are null
|
||||
String result = LongestCommonSubsequence.getLCS(str1, str2);
|
||||
assertEquals(expected, result);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testLCSWithLongerStringContainingCommonSubsequence() {
|
||||
String str1 = "ABCDEF";
|
||||
String str2 = "AEBDF";
|
||||
String expected = "ABDF"; // Common subsequence is "ABDF"
|
||||
String result = LongestCommonSubsequence.getLCS(str1, str2);
|
||||
assertEquals(expected, result);
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user