// Path: lcs-helper/src/main/java/com/fillumina/lcs/helper/LcsList.java
// public interface LcsList {
// 
//     <T> List<T> lcs(T[] xs, T[] ys);
// }


import com.fillumina.lcs.helper.LcsList;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import org.junit.Test;
package com.fillumina.lcs.testutil;


/**
 *
 * @author Francesco Illuminati
 */
public class AbstractLcsTestExecutorTest extends AbstractLcsTestExecutor {

    @Test
    public void shouldReturnResult() {
        lcs("ab", "cd").assertResult("abcd");
    }

    @Test(expected = AssertionError.class)
    public void shouldCheckErrorResult() {
        lcs("ab", "cd").assertResult("ERROR");
    }

    @Test(expected = AssertionError.class)
    public void shouldGetEmptyStrings() {
        lcs(null, "").assertResult((String)null);
    }

    @Override
// Path: lcs-helper/src/main/java/com/fillumina/lcs/helper/LcsList.java
// public interface LcsList {
// 
//     <T> List<T> lcs(T[] xs, T[] ys);
// }


// Path: lcs-test-util/src/test/java/com/fillumina/lcs/testutil/AbstractLcsTestExecutorTest.java
import com.fillumina.lcs.helper.LcsList;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import org.junit.Test;

package com.fillumina.lcs.testutil;


/**
 *
 * @author Francesco Illuminati
 */
public class AbstractLcsTestExecutorTest extends AbstractLcsTestExecutor {

    @Test
    public void shouldReturnResult() {
        lcs("ab", "cd").assertResult("abcd");
    }

    @Test(expected = AssertionError.class)
    public void shouldCheckErrorResult() {
        lcs("ab", "cd").assertResult("ERROR");
    }

    @Test(expected = AssertionError.class)
    public void shouldGetEmptyStrings() {
        lcs(null, "").assertResult((String)null);
    }

    @Override
    public LcsList getLcsAlgorithm() {