mirror of
https://gitee.com/willfree/min-dev-java.git
synced 2026-10-04 19:42:01 +08:00
Encoder测试代码
This commit is contained in:
1 parent
30dd00ffb4
commit
fc3671ea00
1 file changed
+525
@@ -0,0 +1,525 @@
|
||||
package encoding;
|
||||
|
||||
import org.junit.Test;
|
||||
import util.ByteHelper;
|
||||
|
||||
|
||||
import java.math.BigInteger;
|
||||
|
||||
import static org.junit.Assert.*;
|
||||
|
||||
/*
|
||||
* @Author: feng Zhao
|
||||
* @Description:
|
||||
* @Version: 1.0.0
|
||||
* @Date: 22:40 2021/3/14
|
||||
* @Copyright: MIN-Group;国家重大科技基础设施——未来网络北大实验室;深圳市信息论与未来网络重点实验室
|
||||
*/
|
||||
|
||||
public class EncoderTest {
|
||||
int MaxPacketSize = 8800;
|
||||
@Test
|
||||
public void TestEmpty() {
|
||||
Encoder encoder = new Encoder();
|
||||
Encoder estimator = new Encoder();
|
||||
encoder.encoderReset(new SizeT(MaxPacketSize),new SizeT(0));
|
||||
estimator.estimatorReset();
|
||||
|
||||
assertTrue(encoder.empty());
|
||||
assertTrue(estimator.empty());
|
||||
|
||||
encoder.prependByte((byte)20);
|
||||
estimator.prependByte((byte)20);
|
||||
|
||||
assertFalse(encoder.empty());
|
||||
assertFalse(estimator.empty());
|
||||
|
||||
|
||||
}
|
||||
|
||||
@Test
|
||||
public void TestEncoder_PrependByte(){
|
||||
Encoder encoder = new Encoder();
|
||||
Encoder estimator = new Encoder();
|
||||
encoder.encoderReset(new SizeT(MaxPacketSize),new SizeT(0));
|
||||
estimator.estimatorReset();
|
||||
// 测试前向添加 MaxPacketSize 次是否正常
|
||||
for (int i = 0; i < MaxPacketSize; i++) {
|
||||
int num = encoder.prependByte((byte) 97);
|
||||
estimator.prependByte((byte) 97);
|
||||
assertEquals(encoder.left,MaxPacketSize-i-2);
|
||||
assertEquals(encoder.buffer[MaxPacketSize-i-1],(byte)97);
|
||||
//todo 这里要用encoder.size().getVlIntValue2Int(),还是encoder.size().size()
|
||||
// assertEquals(encoder.size().size(),i+1);
|
||||
// assertEquals(estimator.size().size(),i+1);
|
||||
assertEquals(encoder.size().getVlIntValue2Int(),i+1);
|
||||
assertEquals(estimator.size().getVlIntValue2Int(),i+1);
|
||||
assertFalse(encoder.empty());
|
||||
assertFalse(estimator.empty());
|
||||
assertEquals(num,1);
|
||||
}
|
||||
// for (int i = 0; i < MaxPacketSize; i++) {
|
||||
// int num = encoder.prependByte((byte) 97);
|
||||
// estimator.prependByte((byte) 97);
|
||||
// if ((encoder.left == MaxPacketSize-i-2) ||
|
||||
// (encoder.buffer[MaxPacketSize-i-1] != (byte)97) ||
|
||||
// (encoder.size() != new SizeT(i+1)) ||
|
||||
// (estimator.size() != new SizeT(i+1)) ||
|
||||
// encoder.empty() || estimator.empty()|| (num != 1))
|
||||
// {
|
||||
// System.out.println("PrependByte Failed"+ i);
|
||||
// return;
|
||||
// }
|
||||
// }
|
||||
|
||||
// 测试超出最大包大小的情况
|
||||
int a = encoder.prependByte((byte)1);
|
||||
assertEquals(a,0);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void TestEncoder_AppendByte(){
|
||||
Encoder encoder = new Encoder();
|
||||
Encoder estimator = new Encoder();
|
||||
encoder.encoderReset(new SizeT(MaxPacketSize), new SizeT(MaxPacketSize));
|
||||
estimator.estimatorReset();
|
||||
|
||||
// 测试后向添加 MaxPacketSize 次是否正常
|
||||
for (int i = 0; i < MaxPacketSize; i++) {
|
||||
int num = encoder.appendByte((byte) 97);
|
||||
estimator.appendByte((byte) 97);
|
||||
assertEquals(encoder.right, i + 1);
|
||||
assertEquals(encoder.buffer[i],(byte)97);
|
||||
//todo 这里要用encoder.size().getVlIntValue2Int(),还是encoder.size().size()
|
||||
// assertEquals(encoder.size().size(),i+1);
|
||||
// assertEquals(estimator.size().size(),i+1);
|
||||
assertEquals(encoder.size().getVlIntValue2Int(),i+1);
|
||||
assertEquals(estimator.size().getVlIntValue2Int(),i+1);
|
||||
assertFalse(encoder.empty());
|
||||
assertFalse(estimator.empty());
|
||||
assertEquals(num,1);
|
||||
}
|
||||
|
||||
// 测试超出最大包大小的情况
|
||||
int a = encoder.appendByte((byte) 1);
|
||||
assertEquals(a,0);
|
||||
int b = encoder.prependByte((byte) 1);
|
||||
assertEquals(b,0);
|
||||
|
||||
}
|
||||
|
||||
@Test
|
||||
public void TestEncoder_PrependByteArray(){
|
||||
Encoder encoder = new Encoder();
|
||||
Encoder estimator = new Encoder();
|
||||
encoder.encoderReset(new SizeT(MaxPacketSize),new SizeT(0));
|
||||
estimator.estimatorReset();
|
||||
|
||||
byte[] arr = new byte[]{1,2,3,4,5};
|
||||
int length = arr.length;
|
||||
// 测试prepend,没有超过MaxPacketSize
|
||||
int num1 = encoder.prependByteArray(arr, new SizeT(length));
|
||||
estimator.prependByteArray(arr, new SizeT(length));
|
||||
assertEquals(encoder.size().getVlIntValue2Int(), length);
|
||||
assertEquals(estimator.size().getVlIntValue2Int(), length);
|
||||
assertEquals(num1,length);
|
||||
|
||||
// 检查插入的数据是否正确
|
||||
byte[] newSlice = ByteHelper.getLenBytes(encoder.buffer, new VlInt(MaxPacketSize - length), length);
|
||||
for (int i = 0; i < length; i++) {
|
||||
assertEquals(arr[i],newSlice[i]);
|
||||
}
|
||||
|
||||
encoder.encoderReset(new SizeT(MaxPacketSize), new SizeT(0));
|
||||
// 测试prepend,超过MaxPacketSize的情况
|
||||
int times = MaxPacketSize / arr.length + 1;
|
||||
for (int i = 0; i < times - 1; i++) {
|
||||
int num2 = encoder.prependByteArray(arr, new SizeT(length));
|
||||
assertEquals(num2,length);
|
||||
}
|
||||
int num3 = encoder.prependByteArray(arr, new SizeT(length));
|
||||
assertEquals(num3,0);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void TestEncoder_AppendByteArray(){
|
||||
Encoder encoder = new Encoder();
|
||||
Encoder estimator = new Encoder();
|
||||
encoder.encoderReset(new SizeT(MaxPacketSize), new SizeT(MaxPacketSize));
|
||||
estimator.estimatorReset();
|
||||
|
||||
byte[] arr = new byte[]{1, 2, 3, 4, 5};
|
||||
int length = arr.length;
|
||||
|
||||
// 测试append,没有超过MaxPacketSize
|
||||
int num1 = encoder.appendByteArray(arr, new SizeT(length));
|
||||
estimator.appendByteArray(arr, new SizeT(length));
|
||||
assertEquals(encoder.size().getVlIntValue2Int(), length);
|
||||
assertEquals(estimator.size().getVlIntValue2Int(), length);
|
||||
assertEquals(num1, length);
|
||||
|
||||
// 检查插入的数据是否正确
|
||||
byte[] newSlice = ByteHelper.getLenBytes(encoder.buffer, new VlInt(0), length);
|
||||
for (int i = 0; i < length; i++) {
|
||||
assertEquals(arr[i],newSlice[i]);
|
||||
}
|
||||
encoder.encoderReset(new SizeT(MaxPacketSize), new SizeT(MaxPacketSize));
|
||||
|
||||
// 测试prepend,超过MaxPacketSize的情况
|
||||
int times = MaxPacketSize / arr.length + 1;
|
||||
for (int i = 0; i < times - 1; i++) {
|
||||
int num2 = encoder.appendByteArray(arr, new SizeT(length));
|
||||
assertEquals(num2,length);
|
||||
}
|
||||
int num3 = encoder.appendByteArray(arr, new SizeT(length));
|
||||
assertEquals(num3,0);
|
||||
|
||||
|
||||
}
|
||||
|
||||
//error
|
||||
@Test
|
||||
public void TestPrependVarNumber(){
|
||||
Encoder encoder = new Encoder();
|
||||
Encoder estimator = new Encoder();
|
||||
encoder.encoderReset(new SizeT(MaxPacketSize),new SizeT(0));
|
||||
estimator.estimatorReset();
|
||||
|
||||
// 测试添加240
|
||||
int addLen = encoder.prependVarNumber(new VlInt(240));
|
||||
byte[] buffer1 = encoder.getBuffer();
|
||||
assertEquals(buffer1[0], (byte) 240);
|
||||
assertEquals(buffer1.length,1);
|
||||
assertEquals(addLen, 1);
|
||||
|
||||
// 测试添加16位整型所能表示的最大值
|
||||
encoder.encoderReset(new SizeT(MaxPacketSize),new SizeT(0));
|
||||
encoder.prependVarNumber(new VlInt(65535));
|
||||
buffer1 = encoder.getBuffer();
|
||||
byte[] buf_tmp = ByteHelper.getLenBytes(buffer1, new VlInt(1), 2);
|
||||
int num1 = ByteHelper.new_byteArrayToInt(buf_tmp);
|
||||
assertEquals(buffer1.length,3);
|
||||
assertEquals(buffer1[0], (byte) 241);
|
||||
assertEquals(num1,65535);
|
||||
|
||||
// 测试添加16位整型所能表示的最大值 + 1
|
||||
encoder.encoderReset(new SizeT(MaxPacketSize),new SizeT(0));
|
||||
encoder.prependVarNumber(new VlInt(65536));
|
||||
buffer1 = encoder.getBuffer();
|
||||
byte[] buf_tmp2 = ByteHelper.getLenBytes(buffer1, new VlInt(1), 4);
|
||||
int num2 = ByteHelper.new_byteArrayToInt(buf_tmp2);
|
||||
assertEquals(buffer1.length,5);
|
||||
assertEquals(buffer1[0], (byte) 242);
|
||||
assertEquals(num2,65536);
|
||||
|
||||
// 测试添加32位整型所能表示的最大值 + 1
|
||||
encoder.encoderReset(new SizeT(MaxPacketSize),new SizeT(0));
|
||||
encoder.prependVarNumber(new VlInt(4294967296L));
|
||||
buffer1 = encoder.getBuffer();
|
||||
byte[] buf_tmp3 = ByteHelper.getLenBytes(buffer1, new VlInt(1), 8);
|
||||
// for (int i = 0; i < buf_tmp3.length; i++) {
|
||||
// System.out.println(buf_tmp3[i]);
|
||||
// }
|
||||
// System.out.println("buf_tmp3.length:"+buf_tmp3.length);
|
||||
long num3 = ByteHelper.uint64ToLong(buf_tmp3);
|
||||
System.out.println("num3:"+num3);
|
||||
assertEquals(buffer1.length,9);
|
||||
assertEquals(buffer1[0], (byte) 243);
|
||||
assertEquals(num3,4294967296L);
|
||||
|
||||
// TODO 测试添加64位整型所能表示的最大值
|
||||
// uint64最大值在java中无法表示
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
@Test
|
||||
public void TestAppendVarNumber(){
|
||||
Encoder encoder = new Encoder();
|
||||
Encoder estimator = new Encoder();
|
||||
encoder.encoderReset(new SizeT(MaxPacketSize), new SizeT(MaxPacketSize));
|
||||
estimator.estimatorReset();
|
||||
|
||||
// 测试添加240
|
||||
int addLen = encoder.appendVarNumber(new VlInt(240));
|
||||
byte[] buffer1 = encoder.getBuffer();
|
||||
assertEquals(buffer1[0], (byte) 240);
|
||||
assertEquals(buffer1.length,1);
|
||||
assertEquals(addLen, 1);
|
||||
|
||||
// 测试添加16位整型所能表示的最大值
|
||||
encoder.encoderReset(new SizeT(MaxPacketSize),new SizeT(0));
|
||||
encoder.appendVarNumber(new VlInt(65535));
|
||||
buffer1 = encoder.getBuffer();
|
||||
byte[] buf_tmp = ByteHelper.getLenBytes(buffer1, new VlInt(1), 2);
|
||||
int num1 = ByteHelper.new_byteArrayToInt(buf_tmp);
|
||||
assertEquals(buffer1.length,3);
|
||||
assertEquals(buffer1[0], (byte) 241);
|
||||
assertEquals(num1,65535);
|
||||
|
||||
// 测试添加16位整型所能表示的最大值 + 1
|
||||
encoder.encoderReset(new SizeT(MaxPacketSize),new SizeT(0));
|
||||
encoder.appendVarNumber(new VlInt(65536));
|
||||
buffer1 = encoder.getBuffer();
|
||||
byte[] buf_tmp2 = ByteHelper.getLenBytes(buffer1, new VlInt(1), 4);
|
||||
int num2 = ByteHelper.new_byteArrayToInt(buf_tmp2);
|
||||
assertEquals(buffer1.length,5);
|
||||
assertEquals(buffer1[0], (byte) 242);
|
||||
assertEquals(num2,65536);
|
||||
|
||||
// 测试添加32位整型所能表示的最大值 + 1
|
||||
encoder.encoderReset(new SizeT(MaxPacketSize),new SizeT(0));
|
||||
encoder.appendVarNumber(new VlInt(4294967296L));
|
||||
buffer1 = encoder.getBuffer();
|
||||
byte[] buf_tmp3 = ByteHelper.getLenBytes(buffer1, new VlInt(1), 8);
|
||||
long num3 = ByteHelper.uint64ToLong(buf_tmp3);
|
||||
System.out.println("num3:"+num3);
|
||||
assertEquals(buffer1.length,9);
|
||||
assertEquals(buffer1[0], (byte) 243);
|
||||
assertEquals(num3,4294967296L);
|
||||
|
||||
// TODO 测试添加64位整型所能表示的最大值
|
||||
// uint64最大值在java中无法表示
|
||||
}
|
||||
|
||||
@Test
|
||||
public void TestPrependNonNegativeInteger(){
|
||||
Encoder encoder = new Encoder();
|
||||
Encoder estimator = new Encoder();
|
||||
encoder.encoderReset(new SizeT(MaxPacketSize), new SizeT(0));
|
||||
estimator.estimatorReset();
|
||||
|
||||
// 测试添加255
|
||||
encoder.encoderReset(new SizeT(MaxPacketSize), new SizeT(0));
|
||||
int addLen1 = encoder.prependNonNegativeInteger(255);
|
||||
assertEquals(addLen1, 1);
|
||||
byte[] buffer1 = encoder.getBuffer();
|
||||
assertEquals(buffer1[0], (byte) 255);
|
||||
assertEquals(buffer1.length,1);
|
||||
|
||||
|
||||
// 添加 MaxUint16
|
||||
encoder.encoderReset(new SizeT(MaxPacketSize),new SizeT(0));
|
||||
int addLen2 = encoder.prependNonNegativeInteger(65535);
|
||||
assertEquals(addLen2, 2);
|
||||
buffer1 = encoder.getBuffer();
|
||||
byte[] buf_tmp = ByteHelper.getLenBytes(buffer1, new VlInt(0), 2);
|
||||
int num1 = ByteHelper.new_byteArrayToInt(buf_tmp);
|
||||
assertEquals(buffer1.length,2);
|
||||
assertEquals(num1,65535);
|
||||
|
||||
// 添加 MaxUint32
|
||||
encoder.encoderReset(new SizeT(MaxPacketSize),new SizeT(0));
|
||||
int addLen3 = encoder.prependNonNegativeInteger(4294967295L);
|
||||
assertEquals(addLen3, 4);
|
||||
buffer1 = encoder.getBuffer();
|
||||
byte[] buf_tmp2 = ByteHelper.getLenBytes(buffer1, new VlInt(0), 4);
|
||||
// long num2 = ByteHelper.new_byteArrayToLong(buf_tmp2);
|
||||
int num2 = ByteHelper.new_byteArrayToInt(buf_tmp2);
|
||||
assertEquals(buffer1.length,4);
|
||||
assertEquals(num2,4294967295L);
|
||||
|
||||
// 添加 MaxUint64
|
||||
// TODO 测试添加64位整型所能表示的最大值
|
||||
}
|
||||
|
||||
@Test
|
||||
public void TestAppendNonNegativeInteger(){
|
||||
Encoder encoder = new Encoder();
|
||||
Encoder estimator = new Encoder();
|
||||
encoder.encoderReset(new SizeT(MaxPacketSize), new SizeT(MaxPacketSize));
|
||||
estimator.estimatorReset();
|
||||
|
||||
// 测试添加255
|
||||
encoder.encoderReset(new SizeT(MaxPacketSize), new SizeT(0));
|
||||
int addLen1 = encoder.appendNonNegativeInteger(255);
|
||||
assertEquals(addLen1, 1);
|
||||
byte[] buffer1 = encoder.getBuffer();
|
||||
assertEquals(buffer1[0], (byte) 255);
|
||||
assertEquals(buffer1.length,1);
|
||||
|
||||
// 添加 MaxUint16
|
||||
encoder.encoderReset(new SizeT(MaxPacketSize),new SizeT(0));
|
||||
int addLen2 = encoder.appendNonNegativeInteger(65535);
|
||||
assertEquals(addLen2, 2);
|
||||
buffer1 = encoder.getBuffer();
|
||||
byte[] buf_tmp = ByteHelper.getLenBytes(buffer1, new VlInt(0), 2);
|
||||
int num1 = ByteHelper.new_byteArrayToInt(buf_tmp);
|
||||
assertEquals(buffer1.length,2);
|
||||
assertEquals(num1,65535);
|
||||
|
||||
// 添加 MaxUint32
|
||||
encoder.encoderReset(new SizeT(MaxPacketSize),new SizeT(0));
|
||||
int addLen3 = encoder.appendNonNegativeInteger(4294967295L);
|
||||
assertEquals(addLen3, 4);
|
||||
buffer1 = encoder.getBuffer();
|
||||
byte[] buf_tmp2 = ByteHelper.getLenBytes(buffer1, new VlInt(0), 4);
|
||||
int num2 = ByteHelper.new_byteArrayToInt(buf_tmp2);
|
||||
assertEquals(buffer1.length,4);
|
||||
assertEquals(num2,4294967295L);
|
||||
|
||||
// 添加 MaxUint64
|
||||
// TODO 测试添加64位整型所能表示的最大值
|
||||
// encoder.encoderReset(new SizeT(MaxPacketSize),new SizeT(0));
|
||||
// int addLen4 = encoder.appendNonNegativeInteger(18446744073709551615L);
|
||||
// assertEquals(addLen4, 8);
|
||||
// buffer1 = encoder.getBuffer();
|
||||
// byte[] buf_tmp3 = ByteHelper.getLenBytes(buffer1, new VlInt(0), 8);
|
||||
// long num3 = ByteHelper.new_byteArrayToLong(buf_tmp3);
|
||||
// assertEquals(buffer1.length,8);
|
||||
// assertEquals(num2,18446744073709551615L);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void TestPrependByteArrayBlock(){
|
||||
Encoder encoder = new Encoder();
|
||||
Encoder estimator = new Encoder();
|
||||
encoder.encoderReset(new SizeT(MaxPacketSize), new SizeT(0));
|
||||
estimator.estimatorReset();
|
||||
|
||||
byte[] buf = new byte[8000];
|
||||
for (int i = 1; i < 8000; i++) {
|
||||
buf[i] = (byte)(buf[i-1] +1);
|
||||
}
|
||||
//测试插入数据正确性
|
||||
int addLen = encoder.prependByteArrayBlock(new VlInt(241), buf, new SizeT(buf.length));
|
||||
assertEquals(addLen,3+8000+3);
|
||||
byte[] buf1 = encoder.getBuffer();
|
||||
assertEquals(addLen,8006);
|
||||
assertEquals(buf1.length,8006);
|
||||
assertEquals(buf1[0],(byte)241);
|
||||
assertEquals(buf1[3],(byte)241);
|
||||
//buf1[1:3] == 241
|
||||
byte[] buf_tmp = ByteHelper.getLenBytes(buf1, new VlInt(1), 2);
|
||||
int num1 = ByteHelper.new_byteArrayToInt(buf_tmp);
|
||||
assertEquals(num1,241);
|
||||
//buf1[4:6]==8000
|
||||
byte[] buf_tmp2 = ByteHelper.getLenBytes(buf1, new VlInt(4), 2);
|
||||
int num2 = ByteHelper.new_byteArrayToInt(buf_tmp2);
|
||||
assertEquals(num2,8000);
|
||||
|
||||
//测试字节数组插入数据是否正确
|
||||
int std = 0; //uint:std
|
||||
for (int i = 0; i < 8000; i++) {
|
||||
assertEquals(buf1[6+i],std);
|
||||
std = (std+1)%256;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Test
|
||||
public void TestAppendByteArrayBlock(){
|
||||
Encoder encoder = new Encoder();
|
||||
Encoder estimator = new Encoder();
|
||||
encoder.encoderReset(new SizeT(MaxPacketSize), new SizeT(MaxPacketSize));
|
||||
estimator.estimatorReset();
|
||||
|
||||
byte[] buf = new byte[8000];
|
||||
for (int i = 1; i < 8000; i++) {
|
||||
buf[i] = (byte)(buf[i-1] +1);
|
||||
}
|
||||
//测试插入数据正确性
|
||||
int addLen = encoder.appendByteArrayBlock(new VlInt(241), buf, new SizeT(buf.length));
|
||||
assertEquals(addLen,3+8000+3);
|
||||
byte[] buf1 = encoder.getBuffer();
|
||||
assertEquals(addLen,8006);
|
||||
assertEquals(buf1.length,8006);
|
||||
assertEquals(buf1[0],(byte)241);
|
||||
assertEquals(buf1[3],(byte)241);
|
||||
//buf1[1:3] == 241
|
||||
byte[] buf_tmp = ByteHelper.getLenBytes(buf1, new VlInt(1), 2);
|
||||
int num1 = ByteHelper.new_byteArrayToInt(buf_tmp);
|
||||
assertEquals(num1,241);
|
||||
//buf1[4:6]==8000
|
||||
byte[] buf_tmp2 = ByteHelper.getLenBytes(buf1, new VlInt(4), 2);
|
||||
int num2 = ByteHelper.new_byteArrayToInt(buf_tmp2);
|
||||
assertEquals(num2,8000);
|
||||
|
||||
//测试字节数组插入数据是否正确
|
||||
int std = 0; //uint:std
|
||||
for (int i = 0; i < 8000; i++) {
|
||||
assertEquals(buf1[6+i],std);
|
||||
std = (std+1)%256;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Test
|
||||
public void TestPrependBlock(){
|
||||
Encoder encoder = new Encoder();
|
||||
Encoder estimator = new Encoder();
|
||||
encoder.encoderReset(new SizeT(MaxPacketSize), new SizeT(0));
|
||||
estimator.estimatorReset();
|
||||
|
||||
byte[] buf = new byte[8000];
|
||||
Block block = new Block();
|
||||
block.setType(new VlInt(241));
|
||||
block.setLength(new VlInt(8000));
|
||||
block.setValue(buf);
|
||||
|
||||
int addLen = encoder.prependBlock(block);
|
||||
assertEquals(addLen,8006);
|
||||
|
||||
byte[] buf1 = encoder.getBuffer();
|
||||
assertEquals(addLen,8006);
|
||||
assertEquals(buf1.length,8006);
|
||||
assertEquals(buf1[0],(byte)241);
|
||||
assertEquals(buf1[3],(byte)241);
|
||||
//buf1[1:3] == 241
|
||||
byte[] buf_tmp = ByteHelper.getLenBytes(buf1, new VlInt(1), 2);
|
||||
int num1 = ByteHelper.new_byteArrayToInt(buf_tmp);
|
||||
assertEquals(num1,241);
|
||||
//buf1[4:6]==8000
|
||||
byte[] buf_tmp2 = ByteHelper.getLenBytes(buf1, new VlInt(4), 2);
|
||||
int num2 = ByteHelper.new_byteArrayToInt(buf_tmp2);
|
||||
assertEquals(num2,8000);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void TestAppendBlock(){
|
||||
Encoder encoder = new Encoder();
|
||||
Encoder estimator = new Encoder();
|
||||
encoder.encoderReset(new SizeT(MaxPacketSize), new SizeT(MaxPacketSize));
|
||||
estimator.estimatorReset();
|
||||
|
||||
byte[] buf = new byte[8000];
|
||||
Block block = new Block();
|
||||
block.setType(new VlInt(241));
|
||||
block.setLength(new VlInt(8000));
|
||||
block.setValue(buf);
|
||||
|
||||
int addLen = encoder.appendBlock(block);
|
||||
assertEquals(addLen,8006);
|
||||
|
||||
byte[] buf1 = encoder.getBuffer();
|
||||
assertEquals(addLen,8006);
|
||||
assertEquals(buf1.length,8006);
|
||||
assertEquals(buf1[0],(byte)241);
|
||||
assertEquals(buf1[3],(byte)241);
|
||||
//buf1[1:3] == 241
|
||||
byte[] buf_tmp = ByteHelper.getLenBytes(buf1, new VlInt(1), 2);
|
||||
int num1 = ByteHelper.new_byteArrayToInt(buf_tmp);
|
||||
assertEquals(num1,241);
|
||||
//buf1[4:6]==8000
|
||||
byte[] buf_tmp2 = ByteHelper.getLenBytes(buf1, new VlInt(4), 2);
|
||||
int num2 = ByteHelper.new_byteArrayToInt(buf_tmp2);
|
||||
assertEquals(num2,8000);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
Reference in new issue
Block a user