From 60c0291e6a18ccdd8f0d1b1b54aa3f55d768f90b Mon Sep 17 00:00:00 2001 From: mmessmer Date: Sat, 10 Oct 2020 18:07:03 +0200 Subject: [PATCH] added tests --- .../LongestPalindromicSubsequence.java | 8 ++--- .../LongestPalindromicSubsequenceTests.java | 33 +++++++++++++++++++ 2 files changed, 36 insertions(+), 5 deletions(-) create mode 100644 DynamicProgramming/LongestPalindromicSubsequenceTests.java diff --git a/DynamicProgramming/LongestPalindromicSubsequence.java b/DynamicProgramming/LongestPalindromicSubsequence.java index 28b43a5fe..53ea6a794 100644 --- a/DynamicProgramming/LongestPalindromicSubsequence.java +++ b/DynamicProgramming/LongestPalindromicSubsequence.java @@ -1,10 +1,9 @@ -package DynamicProgramming; +package test; import java.lang.*; import java.io.*; import java.util.*; /** - * @author Matteo Messmer https://github.com/matteomessmer * Algorithm explanation https://www.educative.io/edpresso/longest-palindromic-subsequence-algorithm */ public class LongestPalindromicSubsequence { @@ -19,9 +18,8 @@ public class LongestPalindromicSubsequence { System.out.println(b + " => " + bLPS); } - private static String LPS(String original) { - StringBuilder reverse = new StringBuilder(); - reverse.append(original); + public static String LPS(String original) throws IllegalArgumentException { + StringBuilder reverse = new StringBuilder(original); reverse = reverse.reverse(); return recursiveLPS(original, reverse.toString()); } diff --git a/DynamicProgramming/LongestPalindromicSubsequenceTests.java b/DynamicProgramming/LongestPalindromicSubsequenceTests.java new file mode 100644 index 000000000..7171f4849 --- /dev/null +++ b/DynamicProgramming/LongestPalindromicSubsequenceTests.java @@ -0,0 +1,33 @@ +package test; + +import static org.junit.jupiter.api.Assertions.*; + +import org.junit.jupiter.api.Test; + +class LongestPalindromicSubsequenceTests { + + @Test + void test1() { + assertEquals(LongestPalindromicSubsequence.LPS(""), ""); + } + + @Test + void test2() { + assertEquals(LongestPalindromicSubsequence.LPS("A"), "A"); + } + + @Test + void test3() { + assertEquals(LongestPalindromicSubsequence.LPS("BABCBAB"), "BABCBAB"); + } + + @Test + void test4() { + assertEquals(LongestPalindromicSubsequence.LPS("BBABCBCAB"), "BABCBAB"); + } + + @Test + void test5() { + assertEquals(LongestPalindromicSubsequence.LPS("AAAAAAAAAAAAAAAAAAAAAAAA"), "AAAAAAAAAAAAAAAAAAAAAAAA"); + } +}