// Path: lcs-algorithms/src/main/java/com/fillumina/lcs/algorithm/myers/BidirectionalVector.java
// public class BidirectionalVector {
// 
//     private final int[] array;
//     private final int zero;
// 
//     /**
//      * @param size specify the positive size (the total size will be
//      *             {@code size * 2 + 1}.
//      */
//     public BidirectionalVector(int size) {
//         this(size, 0);
//     }
// 
//     /**
//      * @param size specify the positive size (the total size will be
//      *             {@code size * 2 + 1}.
//      * @param offset is always subtracted to the given index
//      */
//     public BidirectionalVector(int size, int offset) {
//         int length = size + Math.abs(offset);
//         this.array = new int[(length << 1) + 1];
//         this.zero = length - offset;
//     }
// 
//     /** Clone  constructor. */
//     private BidirectionalVector(int zero, int[] array) {
//         this.zero = zero;
//         this.array = array;
//     }
// 
//     public int get(int x) {
//         return array[zero + x];
//     }
// 
//     public void set(int x, int value) {
//         array[zero + x] = value;
//     }
// 
//     @Override
//     public String toString() {
//         return "" + zero + ":" + Arrays.toString(array);
//     }
// 
//     /** Same as {@link Object#clone()} but without throwing anything. */
//     public BidirectionalVector copy() {
//         int [] cloned = new int[array.length];
//         System.arraycopy(array, 0, cloned, 0, array.length);
//         return new BidirectionalVector(zero, cloned);
//     }
// 
// }


import com.fillumina.lcs.algorithm.myers.BidirectionalVector;
import static org.junit.Assert.assertEquals;
import org.junit.Test;
package com.fillumina.lcs.algorithm.myers;


/**
 *
 * @author Francesco Illuminati 
 */
public class BidirectionalVectorTest {

    @Test
    public void shouldCreateAnEmptyVector() {
// Path: lcs-algorithms/src/main/java/com/fillumina/lcs/algorithm/myers/BidirectionalVector.java
// public class BidirectionalVector {
// 
//     private final int[] array;
//     private final int zero;
// 
//     /**
//      * @param size specify the positive size (the total size will be
//      *             {@code size * 2 + 1}.
//      */
//     public BidirectionalVector(int size) {
//         this(size, 0);
//     }
// 
//     /**
//      * @param size specify the positive size (the total size will be
//      *             {@code size * 2 + 1}.
//      * @param offset is always subtracted to the given index
//      */
//     public BidirectionalVector(int size, int offset) {
//         int length = size + Math.abs(offset);
//         this.array = new int[(length << 1) + 1];
//         this.zero = length - offset;
//     }
// 
//     /** Clone  constructor. */
//     private BidirectionalVector(int zero, int[] array) {
//         this.zero = zero;
//         this.array = array;
//     }
// 
//     public int get(int x) {
//         return array[zero + x];
//     }
// 
//     public void set(int x, int value) {
//         array[zero + x] = value;
//     }
// 
//     @Override
//     public String toString() {
//         return "" + zero + ":" + Arrays.toString(array);
//     }
// 
//     /** Same as {@link Object#clone()} but without throwing anything. */
//     public BidirectionalVector copy() {
//         int [] cloned = new int[array.length];
//         System.arraycopy(array, 0, cloned, 0, array.length);
//         return new BidirectionalVector(zero, cloned);
//     }
// 
// }


// Path: lcs-algorithms/src/test/java/com/fillumina/lcs/algorithm/myers/BidirectionalVectorTest.java
import com.fillumina.lcs.algorithm.myers.BidirectionalVector;
import static org.junit.Assert.assertEquals;
import org.junit.Test;

package com.fillumina.lcs.algorithm.myers;


/**
 *
 * @author Francesco Illuminati 
 */
public class BidirectionalVectorTest {

    @Test
    public void shouldCreateAnEmptyVector() {
        BidirectionalVector v = new BidirectionalVector(0);