package com.ctriposs.baiji.io; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.Parameterized; import java.io.IOException; import java.util.Arrays; import java.util.Collection; @RunWith(Parameterized.class) public class BinaryCodecTestInt extends BinaryCodecTestBase { @Parameterized.Parameters public static Collection<Object[]> data() { return Arrays.asList(new Object[][]{new Object[]{0, 1}, new Object[]{1, 1}, new Object[]{63, 1}, new Object[]{64, 2}, new Object[]{8191, 2}, new Object[]{8192, 3}, new Object[]{1048575, 3}, new Object[]{1048576, 4}, new Object[]{134217727, 4}, new Object[]{134217728, 5}, new Object[]{17179869183L, 5}, new Object[]{17179869184L, 6}, new Object[]{2199023255551L, 6}, new Object[]{2199023255552L, 7}, new Object[]{281474976710655L, 7}, new Object[]{281474976710656L, 8}, new Object[]{36028797018963967L, 8}, new Object[]{36028797018963968L, 9}, new Object[]{4611686018427387903L, 9}, new Object[]{4611686018427387904L, 10}, new Object[]{9223372036854775807L, 10}, new Object[]{-1, 1}, new Object[]{-64, 1}, new Object[]{-65, 2}, new Object[]{-8192, 2}, new Object[]{-8193, 3}, new Object[]{-1048576, 3}, new Object[]{-1048577, 4}, new Object[]{-134217728, 4}, new Object[]{-134217729, 5}, new Object[]{-17179869184L, 5}, new Object[]{-17179869185L, 6}, new Object[]{-2199023255552L, 6}, new Object[]{-2199023255553L, 7}, new Object[]{-281474976710656L, 7}, new Object[]{-281474976710657L, 8}, new Object[]{-36028797018963968L, 8}, new Object[]{-36028797018963969L, 9}, new Object[]{-4611686018427387904L, 9}, new Object[]{-4611686018427387905L, 10}, new Object[]{-9223372036854775808L, 10}}); } private final long _value; private final int _size; public BinaryCodecTestInt(long value, int size) { _value = value; _size = size; } @Test public void testInt() throws IOException { ItemDecoder decoder = new ItemDecoder() { @Override public Object decode(Decoder decoder) throws IOException { return decoder.readLong(); } }; ItemEncoder encoder = new ItemEncoder() { @Override public void encode(Encoder encoder, Object obj) throws IOException { encoder.writeLong((Long) obj); } }; testRead(_value, decoder, encoder, _size); } }