mirror of
https://gitee.com/willfree/min-dev-java.git
synced 2026-10-04 19:42:01 +08:00
fixed some test error: Encoder
This commit is contained in:
1 parent
5785f29ec3
commit
3daf0156e0
5 files changed
+97
-48
No files matched your search
@@ -5,6 +5,7 @@ import util.ByteHelper;
|
||||
|
||||
|
||||
import java.math.BigInteger;
|
||||
import java.util.Arrays;
|
||||
|
||||
import static org.junit.Assert.*;
|
||||
|
||||
@@ -227,9 +228,17 @@ public class EncoderTest {
|
||||
assertEquals(buffer1[0], (byte) 243);
|
||||
assertEquals(num3,4294967296L);
|
||||
|
||||
// TODO 测试添加64位整型所能表示的最大值
|
||||
// 测试添加64位整型所能表示的最大值
|
||||
// uint64最大值在java中无法表示=>用Long.MaxValue
|
||||
|
||||
encoder.encoderReset(new SizeT(MaxPacketSize),new SizeT(0));
|
||||
encoder.prependVarNumber(new VlInt(Long.MAX_VALUE));
|
||||
buffer1 = encoder.getBuffer();
|
||||
byte[] buf_tmp4 = ByteHelper.getLenBytes(buffer1, new VlInt(1), 8);
|
||||
long num4 = ByteHelper.uint64ToLong(buf_tmp4);
|
||||
System.out.println("num4:"+num4);
|
||||
assertEquals(buffer1.length,9);
|
||||
assertEquals(buffer1[0], (byte) 243);
|
||||
assertEquals(num4,Long.MAX_VALUE);
|
||||
}
|
||||
|
||||
|
||||
@@ -250,7 +259,7 @@ public class EncoderTest {
|
||||
assertEquals(addLen, 1);
|
||||
|
||||
// 测试添加16位整型所能表示的最大值
|
||||
encoder.encoderReset(new SizeT(MaxPacketSize),new SizeT(0));
|
||||
encoder.encoderReset(new SizeT(MaxPacketSize),new SizeT(MaxPacketSize));
|
||||
encoder.appendVarNumber(new VlInt(65535));
|
||||
buffer1 = encoder.getBuffer();
|
||||
byte[] buf_tmp = ByteHelper.getLenBytes(buffer1, new VlInt(1), 2);
|
||||
@@ -260,7 +269,7 @@ public class EncoderTest {
|
||||
assertEquals(num1,65535);
|
||||
|
||||
// 测试添加16位整型所能表示的最大值 + 1
|
||||
encoder.encoderReset(new SizeT(MaxPacketSize),new SizeT(0));
|
||||
encoder.encoderReset(new SizeT(MaxPacketSize),new SizeT(MaxPacketSize));
|
||||
encoder.appendVarNumber(new VlInt(65536));
|
||||
buffer1 = encoder.getBuffer();
|
||||
byte[] buf_tmp2 = ByteHelper.getLenBytes(buffer1, new VlInt(1), 4);
|
||||
@@ -270,7 +279,7 @@ public class EncoderTest {
|
||||
assertEquals(num2,65536);
|
||||
|
||||
// 测试添加32位整型所能表示的最大值 + 1
|
||||
encoder.encoderReset(new SizeT(MaxPacketSize),new SizeT(0));
|
||||
encoder.encoderReset(new SizeT(MaxPacketSize),new SizeT(MaxPacketSize));
|
||||
encoder.appendVarNumber(new VlInt(4294967296L));
|
||||
buffer1 = encoder.getBuffer();
|
||||
byte[] buf_tmp3 = ByteHelper.getLenBytes(buffer1, new VlInt(1), 8);
|
||||
@@ -280,8 +289,16 @@ public class EncoderTest {
|
||||
assertEquals(buffer1[0], (byte) 243);
|
||||
assertEquals(num3,4294967296L);
|
||||
|
||||
// TODO 测试添加64位整型所能表示的最大值
|
||||
// uint64最大值在java中无法表示
|
||||
// 测试添加64位整型所能表示的最大值
|
||||
encoder.encoderReset(new SizeT(MaxPacketSize),new SizeT(MaxPacketSize));
|
||||
encoder.appendVarNumber(new VlInt(Long.MAX_VALUE));
|
||||
buffer1 = encoder.getBuffer();
|
||||
byte[] buf_tmp4 = ByteHelper.getLenBytes(buffer1, new VlInt(1), 8);
|
||||
long num4 = ByteHelper.uint64ToLong(buf_tmp4);
|
||||
System.out.println("num4:"+num4);
|
||||
assertEquals(buffer1.length,9);
|
||||
assertEquals(buffer1[0], (byte) 243);
|
||||
assertEquals(num4,Long.MAX_VALUE);
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -317,12 +334,20 @@ public class EncoderTest {
|
||||
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);
|
||||
long num2 = ByteHelper.new_byteArrayToAllInt(buf_tmp2);
|
||||
assertEquals(buffer1.length,4);
|
||||
assertEquals(num2,4294967295L);
|
||||
|
||||
// 添加 MaxUint64
|
||||
// TODO 测试添加64位整型所能表示的最大值
|
||||
encoder.encoderReset(new SizeT(MaxPacketSize),new SizeT(0));
|
||||
int addLen4 = encoder.prependNonNegativeInteger(Long.MAX_VALUE);
|
||||
assertEquals(addLen4, 8);
|
||||
buffer1 = encoder.getBuffer();
|
||||
byte[] buf_tmp3 = ByteHelper.getLenBytes(buffer1, new VlInt(0), 8);
|
||||
System.out.println(Arrays.toString(buf_tmp3));
|
||||
long num3 = ByteHelper.new_byteArrayToLong(buf_tmp3);
|
||||
assertEquals(buffer1.length,8);
|
||||
assertEquals(num3,Long.MAX_VALUE);
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -333,7 +358,7 @@ public class EncoderTest {
|
||||
estimator.estimatorReset();
|
||||
|
||||
// 测试添加255
|
||||
encoder.encoderReset(new SizeT(MaxPacketSize), new SizeT(0));
|
||||
encoder.encoderReset(new SizeT(MaxPacketSize), new SizeT(MaxPacketSize));
|
||||
int addLen1 = encoder.appendNonNegativeInteger(255);
|
||||
assertEquals(addLen1, 1);
|
||||
byte[] buffer1 = encoder.getBuffer();
|
||||
@@ -341,7 +366,7 @@ public class EncoderTest {
|
||||
assertEquals(buffer1.length,1);
|
||||
|
||||
// 添加 MaxUint16
|
||||
encoder.encoderReset(new SizeT(MaxPacketSize),new SizeT(0));
|
||||
encoder.encoderReset(new SizeT(MaxPacketSize),new SizeT(MaxPacketSize));
|
||||
int addLen2 = encoder.appendNonNegativeInteger(65535);
|
||||
assertEquals(addLen2, 2);
|
||||
buffer1 = encoder.getBuffer();
|
||||
@@ -351,25 +376,24 @@ public class EncoderTest {
|
||||
assertEquals(num1,65535);
|
||||
|
||||
// 添加 MaxUint32
|
||||
encoder.encoderReset(new SizeT(MaxPacketSize),new SizeT(0));
|
||||
encoder.encoderReset(new SizeT(MaxPacketSize),new SizeT(MaxPacketSize));
|
||||
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);
|
||||
long num2 = ByteHelper.new_byteArrayToAllInt(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);
|
||||
encoder.encoderReset(new SizeT(MaxPacketSize),new SizeT(MaxPacketSize));
|
||||
int addLen4 = encoder.appendNonNegativeInteger(Long.MAX_VALUE);
|
||||
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(num3,Long.MAX_VALUE);
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -403,7 +427,7 @@ public class EncoderTest {
|
||||
//测试字节数组插入数据是否正确
|
||||
int std = 0; //uint:std
|
||||
for (int i = 0; i < 8000; i++) {
|
||||
assertEquals(buf1[6+i],std);
|
||||
assertEquals(ByteHelper.uint8ToInt(buf1[6+i]),std);
|
||||
std = (std+1)%256;
|
||||
}
|
||||
|
||||
@@ -420,27 +444,29 @@ public class EncoderTest {
|
||||
for (int i = 1; i < 8000; i++) {
|
||||
buf[i] = (byte)(buf[i-1] +1);
|
||||
}
|
||||
System.out.println(Arrays.toString(buf));
|
||||
//测试插入数据正确性
|
||||
int addLen = encoder.appendByteArrayBlock(new VlInt(241), buf, new SizeT(buf.length));
|
||||
assertEquals(addLen,3+8000+3);
|
||||
byte[] buf1 = encoder.getBuffer();
|
||||
System.out.println(Arrays.toString(buf1));
|
||||
assertEquals(addLen,8006);
|
||||
assertEquals(buf1.length,8006);
|
||||
assertEquals(buf1[0],(byte)241);
|
||||
assertEquals(buf1[3],(byte)241);
|
||||
assertEquals(ByteHelper.uint8ToInt(buf1[0]),241);
|
||||
assertEquals(ByteHelper.uint8ToInt(buf1[3]),241);
|
||||
//buf1[1:3] == 241
|
||||
byte[] buf_tmp = ByteHelper.getLenBytes(buf1, new VlInt(1), 2);
|
||||
int num1 = ByteHelper.new_byteArrayToInt(buf_tmp);
|
||||
int num1 = ByteHelper.uint16ToInt(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);
|
||||
int num2 = ByteHelper.uint16ToInt(buf_tmp2);
|
||||
assertEquals(num2,8000);
|
||||
|
||||
//测试字节数组插入数据是否正确
|
||||
int std = 0; //uint:std
|
||||
for (int i = 0; i < 8000; i++) {
|
||||
assertEquals(buf1[6+i],std);
|
||||
assertEquals(ByteHelper.uint8ToInt(buf1[6+i]),std);
|
||||
std = (std+1)%256;
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user