// 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.List;
import java.util.Objects;
import static org.junit.Assert.assertEquals;
import org.junit.Test;
package com.fillumina.lcs.testutil;


/**
 * A suite of tests for LCS sequences.
 *
 * @author Francesco Illuminati
 */
public abstract class AbstractLcsTest extends AbstractLcsTestExecutor {

    public void randomLcs(int len, int lcs, int iterations) {
// 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/main/java/com/fillumina/lcs/testutil/AbstractLcsTest.java
import com.fillumina.lcs.helper.LcsList;
import java.util.List;
import java.util.Objects;
import static org.junit.Assert.assertEquals;
import org.junit.Test;

package com.fillumina.lcs.testutil;


/**
 * A suite of tests for LCS sequences.
 *
 * @author Francesco Illuminati
 */
public abstract class AbstractLcsTest extends AbstractLcsTestExecutor {

    public void randomLcs(int len, int lcs, int iterations) {
        final LcsList algorithm = getLcsAlgorithm();