// Path: jnetrobust-core/src/main/java/com/github/mucaho/jnetrobust/util/SystemClock.java
// public interface SystemClock {
//     long getTimeNow();
// }
// 
// Path: jnetrobust-core/src/test/java/com/github/mucaho/jarrayliterals/ArrayShortcuts.java
// public static <T> Object $(T param) {
//     return createArray(getClass(param), param);
// }
// 
// Path: jnetrobust-core/src/test/java/com/github/mucaho/jarrayliterals/ArrayShortcuts.java
// public static Object $S(int... params) {
//     Short[] out = new Short[params.length];
//     for (int i = 0; i < out.length; ++i) {
//         out[i] = (short) params[i];
//     }
//     return out;
// }


import com.github.mucaho.jnetrobust.util.SystemClock;
import junitparams.JUnitParamsRunner;
import junitparams.Parameters;
import mockit.Deencapsulation;
import mockit.Mock;
import mockit.MockUp;
import org.junit.BeforeClass;
import org.junit.Test;
import org.junit.runner.RunWith;
import java.util.LinkedHashSet;
import static com.github.mucaho.jarrayliterals.ArrayShortcuts.$;
import static com.github.mucaho.jarrayliterals.ArrayShortcuts.$S;
import static org.junit.Assert.*;
            private void notifyOrdered(Short dataId, Segment orderedPackage) {
                if (orderedPackage != null)
                    orderedSegments.add(orderedPackage);
            }
        };

        Segment segment = new Segment(input, serializeShort(input));
        dataMap.put(segment);
        Deencapsulation.invoke(handler, "removeFromTail");


        Short actualNextRemoteSeq = Deencapsulation.getField(handler, "nextDataId");
        assertEquals("Next remote sequence must match", nextRemoteSeq, actualNextRemoteSeq);

        if (outputs.length != 0)
            assertEquals("Ordered segment count must match", outputs.length, orderedSegments.size());
        else
            assertEquals("No ordered segment must have occured", 0, orderedSegments.size());

        int i = 0;
        for (Segment orderedSegment : orderedSegments) {
            assertEquals("Order and contents of datas must match", (short) outputs[i], deserializeShort(orderedSegment.getData()));
            i++;
        }
    }

    public Object[][] parametersForTestPut() {
        Object[][] out = (Object[][])
                $($(
                        (short) -3, false
// Path: jnetrobust-core/src/main/java/com/github/mucaho/jnetrobust/util/SystemClock.java
// public interface SystemClock {
//     long getTimeNow();
// }
// 
// Path: jnetrobust-core/src/test/java/com/github/mucaho/jarrayliterals/ArrayShortcuts.java
// public static <T> Object $(T param) {
//     return createArray(getClass(param), param);
// }
// 
// Path: jnetrobust-core/src/test/java/com/github/mucaho/jarrayliterals/ArrayShortcuts.java
// public static Object $S(int... params) {
//     Short[] out = new Short[params.length];
//     for (int i = 0; i < out.length; ++i) {
//         out[i] = (short) params[i];
//     }
//     return out;
// }


// Path: jnetrobust-core/src/test/java/com/github/mucaho/jnetrobust/control/ReceivedMapControlTest.java
import com.github.mucaho.jnetrobust.util.SystemClock;
import junitparams.JUnitParamsRunner;
import junitparams.Parameters;
import mockit.Deencapsulation;
import mockit.Mock;
import mockit.MockUp;
import org.junit.BeforeClass;
import org.junit.Test;
import org.junit.runner.RunWith;
import java.util.LinkedHashSet;
import static com.github.mucaho.jarrayliterals.ArrayShortcuts.$;
import static com.github.mucaho.jarrayliterals.ArrayShortcuts.$S;
import static org.junit.Assert.*;

            private void notifyOrdered(Short dataId, Segment orderedPackage) {
                if (orderedPackage != null)
                    orderedSegments.add(orderedPackage);
            }
        };

        Segment segment = new Segment(input, serializeShort(input));
        dataMap.put(segment);
        Deencapsulation.invoke(handler, "removeFromTail");


        Short actualNextRemoteSeq = Deencapsulation.getField(handler, "nextDataId");
        assertEquals("Next remote sequence must match", nextRemoteSeq, actualNextRemoteSeq);

        if (outputs.length != 0)
            assertEquals("Ordered segment count must match", outputs.length, orderedSegments.size());
        else
            assertEquals("No ordered segment must have occured", 0, orderedSegments.size());

        int i = 0;
        for (Segment orderedSegment : orderedSegments) {
            assertEquals("Order and contents of datas must match", (short) outputs[i], deserializeShort(orderedSegment.getData()));
            i++;
        }
    }

    public Object[][] parametersForTestPut() {
        Object[][] out = (Object[][])
                $($(
                        (short) -3, false
                ), $(