package util; import encoding.VlInt; import org.junit.Test; import static org.junit.Assert.*; /* * @Author: feng Zhao * @Description: * @Version: 1.0.0 * @Date: 16:20 2021/3/9 * @Copyright: MIN-Group;国家重大科技基础设施——未来网络北大实验室;深圳市信息论与未来网络重点实验室 */public class ByteHelperTest { @Test public void getTailBytes() throws ByteHelperException { //偶数字节 byte[] buffer = new byte[]{0x00,0x01,(byte) 0x80,0x7f}; //1 byte[] test1 = new byte[]{0x01,(byte) 0x80,0x7f}; //奇数字节 byte[] buffer2 = new byte[]{0x00,0x00,0x00,0x00,0x00,0x00,0x00,(byte) 0xff, (byte) 0xff}; //65535 byte[] test2 = new byte[]{0x00,0x00,0x00,0x00,0x00,0x00,(byte) 0xff, (byte) 0xff}; //65535 int startIndex = 1; byte[] b = ByteHelper.getTailBytes(buffer,startIndex); byte[] b2 = ByteHelper.getTailBytes(buffer2,startIndex); assertArrayEquals(b,test1); assertArrayEquals(b2,test2); } @Test public void getFirstByte() throws ByteHelperException { byte[] b0 = new byte[]{0x00,0x00,1}; byte[] test = new byte[]{0x7f,0x7f,0x7f,0x7f}; VlInt start0 = new VlInt(b0); byte firstbyte = ByteHelper.getFirstByte(test,start0); assertEquals(firstbyte,test[0]); } @Test public void getLenBytes() throws ByteHelperException { byte[] buffer = new byte[]{0x00,0x00,0x01, (byte) 0xff}; //255 byte[] test = new byte[]{0x00,0x00,0x01}; VlInt start = new VlInt(0); VlInt len = new VlInt(3); byte[]b1 = ByteHelper.getLenBytes(buffer,start,len); byte[] b2= ByteHelper.getLenBytes(buffer,start,3); assertArrayEquals(test,b1); assertArrayEquals(test,b2); } // @Test // //private方法,测试前将原代码中的private删除 // public void byteArrayToInt(){ // byte[] b1 = new byte[]{0x00,0x00,0x00,0x00}; //0 // byte[] b2 = new byte[]{0x00,0x00,0x00,0x01}; //1 // byte[] b3 = new byte[]{0x00,0x00,0x00,0x7f}; //127 // byte[] b4 = new byte[]{0x00,0x00,0x00, (byte) 0x80}; //128 // byte[] b5 = new byte[]{0x00,0x00,0x00, (byte) 0xff}; //255 // byte[] b6 = new byte[]{0x00,0x00,0x01, 0x00}; //256 // byte[] b7 = new byte[]{0x00,0x00,0x7f, (byte) 0xff}; //32767 // byte[] b8 = new byte[]{0x00,0x00,(byte) 0x80, 0x00}; //32768 // byte[] b9 = new byte[]{0x00,0x00,(byte) 0xff, (byte) 0xff}; //65535 // byte[] b10 = new byte[]{0x00,0x01,0x00,0x00}; //65536 // byte[] b11 = new byte[]{0x7f,(byte) 0xff,(byte) 0xff,(byte) 0xff};//2147483647 // //数值类型为long //// byte[] b12 = new byte[]{(byte) 0x80,0x00,0x00,0x00}; //2147483648 //// byte[] b13 = new byte[]{(byte) 0xff,(byte) 0xff,(byte) 0xff,(byte) 0xff};//4294967295 // ByteHelper byteHelper = new ByteHelper(); // long a1 = byteHelper.byteArrayToInt(b1); // long a2 = byteHelper.byteArrayToInt(b2); // long a3 = byteHelper.byteArrayToInt(b3); // long a4 = byteHelper.byteArrayToInt(b4); // long a5 = byteHelper.byteArrayToInt(b5); // long a6 = byteHelper.byteArrayToInt(b6); // long a7 = byteHelper.byteArrayToInt(b7); // long a8 = byteHelper.byteArrayToInt(b8); // long a9 = byteHelper.byteArrayToInt(b9); // long a10 = byteHelper.byteArrayToInt(b10); // long a11 = byteHelper.byteArrayToInt(b11); //// long a12 = byteHelper.byteArrayToInt(b12); //// long a13 = byteHelper.byteArrayToInt(b13); // // assertEquals(a1,0); // assertEquals(a2,1); // assertEquals(a3,127); // assertEquals(a4,128); // assertEquals(a5,255); // assertEquals(a6,256); // assertEquals(a7,32767); // assertEquals(a8,32768); // assertEquals(a9,65535); // assertEquals(a10,65536); // assertEquals(a11,2147483647); //// assertEquals(a12,2147483648L); //// assertEquals(a13,4294967295L); // // } // // // @Test // //private方法,测试前将原代码中的private删除 // public void intToByteArray(){ // byte[] b1 = new byte[]{0x00,0x00,0x00,0x00}; //0 // byte[] b2 = new byte[]{0x00,0x00,0x00,0x01}; //1 // byte[] b3 = new byte[]{0x00,0x00,0x00,0x7f}; //127 // byte[] b4 = new byte[]{0x00,0x00,0x00, (byte) 0x80}; //128 // byte[] b5 = new byte[]{0x00,0x00,0x00, (byte) 0xff}; //255 // byte[] b6 = new byte[]{0x00,0x00,0x01, 0x00}; //256 // byte[] b7 = new byte[]{0x00,0x00,0x7f, (byte) 0xff}; //32767 // byte[] b8 = new byte[]{0x00,0x00,(byte) 0x80, 0x00}; //32768 // byte[] b9 = new byte[]{0x00,0x00,(byte) 0xff, (byte) 0xff}; //65535 // byte[] b10 = new byte[]{0x00,0x01,0x00,0x00}; //65536 // byte[] b11 = new byte[]{0x7f,(byte) 0xff,(byte) 0xff,(byte) 0xff};//2147483647 // byte[] b12 = new byte[]{(byte) 0x80,0x00,0x00,0x00}; //2147483648 // byte[] b13 = new byte[]{(byte) 0xff,(byte) 0xff,(byte) 0xff,(byte) 0xff};//4294967295 // ByteHelper byteHelper = new ByteHelper(); // byte [] a1 = byteHelper.intToByteArray(0); // byte [] a2 = byteHelper.intToByteArray(1); // byte [] a3 = byteHelper.intToByteArray(127); // byte [] a4 = byteHelper.intToByteArray(128); // byte [] a5 = byteHelper.intToByteArray(255); // byte [] a6 = byteHelper.intToByteArray(256); // byte [] a7 = byteHelper.intToByteArray(32767); // byte [] a8 = byteHelper.intToByteArray(32768); // byte [] a9 = byteHelper.intToByteArray(65535); // byte [] a10 = byteHelper.intToByteArray(65536); // byte [] a11 = byteHelper.intToByteArray(2147483647); // // assertArrayEquals(a1,b1); // assertArrayEquals(a2,b2); // assertArrayEquals(a3,b3); // assertArrayEquals(a4,b4); // assertArrayEquals(a5,b5); // assertArrayEquals(a6,b6); // assertArrayEquals(a7,b7); // assertArrayEquals(a8,b8); // assertArrayEquals(a9,b9); // assertArrayEquals(a6,b6); // assertArrayEquals(a7,b7); // assertArrayEquals(a8,b8); // assertArrayEquals(a9,b9); // assertArrayEquals(a10,b10); // assertArrayEquals(a11,b11); // // } // // @Test // //private方法,测试前将原代码中的private删除 // public void longToByteArray(){ // byte[] b1 = new byte[]{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}; //0 // byte[] b2 = new byte[]{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01}; //1 // byte[] b3 = new byte[]{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7f}; //127 // byte[] b4 = new byte[]{0x00,0x00,0x00,0x00,0x00,0x00,0x00, (byte) 0x80}; //128 // byte[] b5 = new byte[]{0x00,0x00,0x00,0x00,0x00,0x00,0x00, (byte) 0xff}; //255 // byte[] b6 = new byte[]{0x00,0x00,0x00,0x00,0x00,0x00,0x01, 0x00}; //256 // byte[] b7 = new byte[]{0x00,0x00,0x00,0x00,0x00,0x00,0x7f, (byte) 0xff}; //32767 // byte[] b8 = new byte[]{0x00,0x00,0x00,0x00,0x00,0x00,(byte) 0x80, 0x00}; //32768 // byte[] b9 = new byte[]{0x00,0x00,0x00,0x00,0x00,0x00,(byte) 0xff, (byte) 0xff}; //65535 // byte[] b10 = new byte[]{0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00}; //65536 // byte[] b11 = new byte[]{0x00,0x00,0x00,0x00,0x7f,(byte) 0xff,(byte) 0xff,(byte) 0xff};//2147483647 // byte[] b12 = new byte[]{0x00,0x00,0x00,0x00,(byte) 0x80,0x00,0x00,0x00}; //2147483648 // byte[] b13 = new byte[]{0x00,0x00,0x00,0x00,(byte) 0xff,(byte) 0xff,(byte) 0xff,(byte) 0xff};//4294967295 // byte[] b14 = new byte[]{0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00};//4294967296 // byte[] b15 = new byte[]{0x7f,(byte) 0xff,(byte) 0xff,(byte) 0xff,(byte) 0xff,(byte) 0xff,(byte) 0xff,(byte) 0xff};//9223372036854775807 // byte[] b16 = new byte[]{(byte) 0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00};//9223372036854775808 // byte[] b17 = new byte[]{(byte) 0xff,(byte) 0xff,(byte) 0xff,(byte) 0xff,(byte) 0xff,(byte) 0xff,(byte) 0xff,(byte) 0xff};//18446744073709551615 // ByteHelper byteHelper = new ByteHelper(); // byte [] a1 = byteHelper.longToByteArray(0); // byte [] a2 = byteHelper.longToByteArray(1); // byte [] a3 = byteHelper.longToByteArray(127); // byte [] a4 = byteHelper.longToByteArray(128); // byte [] a5 = byteHelper.longToByteArray(255); // byte [] a6 = byteHelper.longToByteArray(256); // byte [] a7 = byteHelper.longToByteArray(32767); // byte [] a8 = byteHelper.longToByteArray(32768); // byte [] a9 = byteHelper.longToByteArray(65535); // byte [] a10 = byteHelper.longToByteArray(65536); // byte [] a11 = byteHelper.longToByteArray(2147483647); // byte [] a12 = byteHelper.longToByteArray(2147483648l); // byte [] a13 = byteHelper.longToByteArray(4294967295l); // byte [] a14 = byteHelper.longToByteArray(4294967296L); // byte [] a15 = byteHelper.longToByteArray(9223372036854775807L); //// byte [] a16 = byteHelper.uint64ToByteArray(9223372036854775808L); //// byte [] a17 = byteHelper.uint64ToByteArray(18446744073709551615L); // assertArrayEquals(a1,b1); // assertArrayEquals(a2,b2); // assertArrayEquals(a3,b3); // assertArrayEquals(a4,b4); // assertArrayEquals(a5,b5); // assertArrayEquals(a6,b6); // assertArrayEquals(a7,b7); // assertArrayEquals(a8,b8); // assertArrayEquals(a9,b9); // assertArrayEquals(a6,b6); // assertArrayEquals(a7,b7); // assertArrayEquals(a8,b8); // assertArrayEquals(a9,b9); // assertArrayEquals(a10,b10); // assertArrayEquals(a11,b11); // assertArrayEquals(a12,b12); // assertArrayEquals(a13,b13); // assertArrayEquals(a14,b14); // assertArrayEquals(a15,b15); // // } // 0 1 127 128 255 @Test public void uint8ToInt() { byte b1 = 0x00; byte b2 = 0x01; byte b3 = 0x7f; byte b4 = (byte) 0x80; byte b5 = (byte) 0xff; ByteHelper byteHelper = new ByteHelper(); int a1 = byteHelper.uint8ToInt(b1); int a2 = byteHelper.uint8ToInt(b2); int a3 = byteHelper.uint8ToInt(b3); int a4 = byteHelper.uint8ToInt(b4); int a5 = byteHelper.uint8ToInt(b5); assertEquals(a1,0); assertEquals(a2,1); assertEquals(a3,127); assertEquals(a4,128); assertEquals(a5,255); } @Test public void uint8ToByte() { byte b1 = 0x00; byte b2 = 0x01; byte b3 = 0x7f; byte b4 = (byte) 0x80; byte b5 = (byte) 0xff; ByteHelper byteHelper = new ByteHelper(); byte a1 = byteHelper.uint8ToByte(0); byte a2 = byteHelper.uint8ToByte(1); byte a3 = byteHelper.uint8ToByte(127); byte a4 = byteHelper.uint8ToByte(128); byte a5 = byteHelper.uint8ToByte(255); assertEquals(a1,b1); assertEquals(a2,b2); assertEquals(a3,b3); assertEquals(a4,b4); assertEquals(a5,b5); } @Test public void uint8ToLong() { byte b1 = 0x00; byte b2 = 0x01; byte b3 = 0x7f; byte b4 = (byte) 0x80; byte b5 = (byte) 0xff; ByteHelper byteHelper = new ByteHelper(); long a1 = byteHelper.uint8ToLong(b1); long a2 = byteHelper.uint8ToLong(b2); long a3 = byteHelper.uint8ToLong(b3); long a4 = byteHelper.uint8ToLong(b4); long a5 = byteHelper.uint8ToLong(b5); assertEquals(a1,0); assertEquals(a2,1); assertEquals(a3,127); assertEquals(a4,128); assertEquals(a5,255); } @Test public void uint16ToInt() { byte[] b1 = new byte[]{0x00,0x00}; //0 byte[] b2 = new byte[]{0x00,0x01}; //1 byte[] b3 = new byte[]{0x00,0x7f}; //127 byte[] b4 = new byte[]{0x00, (byte) 0x80}; //128 byte[] b5 = new byte[]{0x00, (byte) 0xff}; //255 byte[] b6 = new byte[]{0x01, 0x00}; //256 byte[] b7 = new byte[]{0x7f, (byte) 0xff}; //32767 byte[] b8 = new byte[]{(byte) 0x80, 0x00}; //32768 byte[] b9 = new byte[]{(byte) 0xff, (byte) 0xff};//65535 ByteHelper byteHelper = new ByteHelper(); int a1 = byteHelper.uint16ToInt(b1); int a2 = byteHelper.uint16ToInt(b2); int a3 = byteHelper.uint16ToInt(b3); int a4 = byteHelper.uint16ToInt(b4); int a5 = byteHelper.uint16ToInt(b5); int a6 = byteHelper.uint16ToInt(b6); int a7 = byteHelper.uint16ToInt(b7); int a8 = byteHelper.uint16ToInt(b8); int a9 = byteHelper.uint16ToInt(b9); assertEquals(a1,0); assertEquals(a2,1); assertEquals(a3,127); assertEquals(a4,128); assertEquals(a5,255); assertEquals(a6,256); assertEquals(a7,32767); assertEquals(a8,32768); assertEquals(a9,65535); } @Test public void uint16ToByteArray() { ByteHelper byteHelper = new ByteHelper(); byte[] b1 = new byte[]{0x00,0x00}; //0 byte[] b2 = new byte[]{0x00,0x01}; //1 byte[] b3 = new byte[]{0x00,0x7f}; //127 byte[] b4 = new byte[]{0x00, (byte) 0x80}; //128 byte[] b5 = new byte[]{0x00, (byte) 0xff}; //255 byte[] b6 = new byte[]{0x01, 0x00}; //256 byte[] b7 = new byte[]{0x7f, (byte) 0xff}; //32767 byte[] b8 = new byte[]{(byte) 0x80, 0x00}; //32768 byte[] b9 = new byte[]{(byte) 0xff, (byte) 0xff};//65535 byte [] a1 = byteHelper.uint16ToByteArray(0); byte [] a2 = byteHelper.uint16ToByteArray(1); byte [] a3 = byteHelper.uint16ToByteArray(127); byte [] a4 = byteHelper.uint16ToByteArray(128); byte [] a5 = byteHelper.uint16ToByteArray(255); byte [] a6 = byteHelper.uint16ToByteArray(256); byte [] a7 = byteHelper.uint16ToByteArray(32767); byte [] a8 = byteHelper.uint16ToByteArray(32768); byte [] a9 = byteHelper.uint16ToByteArray(65535); assertArrayEquals(a1,b1); assertArrayEquals(a2,b2); assertArrayEquals(a3,b3); assertArrayEquals(a4,b4); assertArrayEquals(a5,b5); assertArrayEquals(a6,b6); assertArrayEquals(a7,b7); assertArrayEquals(a8,b8); assertArrayEquals(a9,b9); assertArrayEquals(a6,b6); assertArrayEquals(a7,b7); assertArrayEquals(a8,b8); assertArrayEquals(a9,b9); } @Test public void uint16ToLong() { byte[] b1 = new byte[]{0x00,0x00}; //0 byte[] b2 = new byte[]{0x00,0x01}; //1 byte[] b3 = new byte[]{0x00,0x7f}; //127 byte[] b4 = new byte[]{0x00, (byte) 0x80}; //128 byte[] b5 = new byte[]{0x00, (byte) 0xff}; //255 byte[] b6 = new byte[]{0x01, 0x00}; //256 byte[] b7 = new byte[]{0x7f, (byte) 0xff}; //32767 byte[] b8 = new byte[]{(byte) 0x80, 0x00}; //32768 byte[] b9 = new byte[]{(byte) 0xff, (byte) 0xff};//65535 ByteHelper byteHelper = new ByteHelper(); long a1 = byteHelper.uint16ToLong(b1); long a2 = byteHelper.uint16ToLong(b2); long a3 = byteHelper.uint16ToLong(b3); long a4 = byteHelper.uint16ToLong(b4); long a5 = byteHelper.uint16ToLong(b5); long a6 = byteHelper.uint16ToLong(b6); long a7 = byteHelper.uint16ToLong(b7); long a8 = byteHelper.uint16ToLong(b8); long a9 = byteHelper.uint16ToLong(b9); assertEquals(a1,0); assertEquals(a2,1); assertEquals(a3,127); assertEquals(a4,128); assertEquals(a5,255); assertEquals(a6,256); assertEquals(a7,32767); assertEquals(a8,32768); assertEquals(a9,65535); } @Test public void uint32ToLong() { byte[] b1 = new byte[]{0x00,0x00,0x00,0x00}; //0 byte[] b2 = new byte[]{0x00,0x00,0x00,0x01}; //1 byte[] b3 = new byte[]{0x00,0x00,0x00,0x7f}; //127 byte[] b4 = new byte[]{0x00,0x00,0x00, (byte) 0x80}; //128 byte[] b5 = new byte[]{0x00,0x00,0x00, (byte) 0xff}; //255 byte[] b6 = new byte[]{0x00,0x00,0x01, 0x00}; //256 byte[] b7 = new byte[]{0x00,0x00,0x7f, (byte) 0xff}; //32767 byte[] b8 = new byte[]{0x00,0x00,(byte) 0x80, 0x00}; //32768 byte[] b9 = new byte[]{0x00,0x00,(byte) 0xff, (byte) 0xff}; //65535 byte[] b10 = new byte[]{0x00,0x01,0x00,0x00}; //65536 byte[] b11 = new byte[]{0x7f,(byte) 0xff,(byte) 0xff,(byte) 0xff};//2147483647 byte[] b12 = new byte[]{(byte) 0x80,0x00,0x00,0x00}; //2147483648 byte[] b13 = new byte[]{(byte) 0xff,(byte) 0xff,(byte) 0xff,(byte) 0xff};//4294967295 ByteHelper byteHelper = new ByteHelper(); long a1 = byteHelper.uint32ToLong(b1); long a2 = byteHelper.uint32ToLong(b2); long a3 = byteHelper.uint32ToLong(b3); long a4 = byteHelper.uint32ToLong(b4); long a5 = byteHelper.uint32ToLong(b5); long a6 = byteHelper.uint32ToLong(b6); long a7 = byteHelper.uint32ToLong(b7); long a8 = byteHelper.uint32ToLong(b8); long a9 = byteHelper.uint32ToLong(b9); long a10 = byteHelper.uint32ToLong(b10); long a11 = byteHelper.uint32ToLong(b11); long a12 = byteHelper.uint32ToLong(b12); long a13 = byteHelper.uint32ToLong(b13); assertEquals(a1,0); assertEquals(a2,1); assertEquals(a3,127); assertEquals(a4,128); assertEquals(a5,255); assertEquals(a6,256); assertEquals(a7,32767); assertEquals(a8,32768); assertEquals(a9,65535); assertEquals(a10,65536); assertEquals(a11,2147483647); assertEquals(a12,2147483648L); assertEquals(a13,4294967295L); } @Test public void uint32ToByteArray() { byte[] b1 = new byte[]{0x00,0x00,0x00,0x00}; //0 byte[] b2 = new byte[]{0x00,0x00,0x00,0x01}; //1 byte[] b3 = new byte[]{0x00,0x00,0x00,0x7f}; //127 byte[] b4 = new byte[]{0x00,0x00,0x00, (byte) 0x80}; //128 byte[] b5 = new byte[]{0x00,0x00,0x00, (byte) 0xff}; //255 byte[] b6 = new byte[]{0x00,0x00,0x01, 0x00}; //256 byte[] b7 = new byte[]{0x00,0x00,0x7f, (byte) 0xff}; //32767 byte[] b8 = new byte[]{0x00,0x00,(byte) 0x80, 0x00}; //32768 byte[] b9 = new byte[]{0x00,0x00,(byte) 0xff, (byte) 0xff}; //65535 byte[] b10 = new byte[]{0x00,0x01,0x00,0x00}; //65536 byte[] b11 = new byte[]{0x7f,(byte) 0xff,(byte) 0xff,(byte) 0xff};//2147483647 byte[] b12 = new byte[]{(byte) 0x80,0x00,0x00,0x00}; //2147483648 byte[] b13 = new byte[]{(byte) 0xff,(byte) 0xff,(byte) 0xff,(byte) 0xff};//4294967295 ByteHelper byteHelper = new ByteHelper(); byte [] a1 = byteHelper.uint32ToByteArray(0); byte [] a2 = byteHelper.uint32ToByteArray(1); byte [] a3 = byteHelper.uint32ToByteArray(127); byte [] a4 = byteHelper.uint32ToByteArray(128); byte [] a5 = byteHelper.uint32ToByteArray(255); byte [] a6 = byteHelper.uint32ToByteArray(256); byte [] a7 = byteHelper.uint32ToByteArray(32767); byte [] a8 = byteHelper.uint32ToByteArray(32768); byte [] a9 = byteHelper.uint32ToByteArray(65535); byte [] a10 = byteHelper.uint32ToByteArray(65536); byte [] a11 = byteHelper.uint32ToByteArray(2147483647); byte [] a12 = byteHelper.uint32ToByteArray(2147483648l); byte [] a13 = byteHelper.uint32ToByteArray(4294967295l); assertArrayEquals(a1,b1); assertArrayEquals(a2,b2); assertArrayEquals(a3,b3); assertArrayEquals(a4,b4); assertArrayEquals(a5,b5); assertArrayEquals(a6,b6); assertArrayEquals(a7,b7); assertArrayEquals(a8,b8); assertArrayEquals(a9,b9); assertArrayEquals(a6,b6); assertArrayEquals(a7,b7); assertArrayEquals(a8,b8); assertArrayEquals(a9,b9); assertArrayEquals(a10,b10); assertArrayEquals(a11,b11); assertArrayEquals(a12,b12); assertArrayEquals(a13,b13); } //todo 大于2^64次方无法表示 @Test public void uint64ToLong() { byte[] b1 = new byte[]{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}; //0 byte[] b2 = new byte[]{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01}; //1 byte[] b3 = new byte[]{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7f}; //127 byte[] b4 = new byte[]{0x00,0x00,0x00,0x00,0x00,0x00,0x00, (byte) 0x80}; //128 byte[] b5 = new byte[]{0x00,0x00,0x00,0x00,0x00,0x00,0x00, (byte) 0xff}; //255 byte[] b6 = new byte[]{0x00,0x00,0x00,0x00,0x00,0x00,0x01, 0x00}; //256 byte[] b7 = new byte[]{0x00,0x00,0x00,0x00,0x00,0x00,0x7f, (byte) 0xff}; //32767 byte[] b8 = new byte[]{0x00,0x00,0x00,0x00,0x00,0x00,(byte) 0x80, 0x00}; //32768 byte[] b9 = new byte[]{0x00,0x00,0x00,0x00,0x00,0x00,(byte) 0xff, (byte) 0xff}; //65535 byte[] b10 = new byte[]{0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00}; //65536 byte[] b11 = new byte[]{0x00,0x00,0x00,0x00,0x7f,(byte) 0xff,(byte) 0xff,(byte) 0xff};//2147483647 byte[] b12 = new byte[]{0x00,0x00,0x00,0x00,(byte) 0x80,0x00,0x00,0x00}; //2147483648 byte[] b13 = new byte[]{0x00,0x00,0x00,0x00,(byte) 0xff,(byte) 0xff,(byte) 0xff,(byte) 0xff};//4294967295 byte[] b14 = new byte[]{0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00};//4294967296 byte[] b15 = new byte[]{0x7f,(byte) 0xff,(byte) 0xff,(byte) 0xff,(byte) 0xff,(byte) 0xff,(byte) 0xff,(byte) 0xff};//9223372036854775807 byte[] b16 = new byte[]{(byte) 0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00};//9223372036854775808 byte[] b17 = new byte[]{(byte) 0xff,(byte) 0xff,(byte) 0xff,(byte) 0xff,(byte) 0xff,(byte) 0xff,(byte) 0xff,(byte) 0xff};//18446744073709551615 byte[] b = new byte[]{(byte)0,(byte)0,(byte)0,(byte)0,(byte)0,(byte)0,(byte)0,(byte)1};//1 ByteHelper byteHelper = new ByteHelper(); long a = byteHelper.uint64ToLong(b); assertEquals(a,1); // byte[] b_test = new byte[]{0x00,0x00,0x00,0x00,(byte) 0x80,0x00,0x00,0x01};//2147483649 // long a_test = byteHelper.uint64ToLong(b_test); // assertEquals(a_test,2147483649l); long a1 = byteHelper.uint64ToLong(b1); long a2 = byteHelper.uint64ToLong(b2); long a3 = byteHelper.uint64ToLong(b3); long a4 = byteHelper.uint64ToLong(b4); long a5 = byteHelper.uint64ToLong(b5); long a6 = byteHelper.uint64ToLong(b6); long a7 = byteHelper.uint64ToLong(b7); long a8 = byteHelper.uint64ToLong(b8); long a9 = byteHelper.uint64ToLong(b9); long a10 = byteHelper.uint64ToLong(b10); long a11 = byteHelper.uint64ToLong(b11); long a12 = byteHelper.uint64ToLong(b12); long a13 = byteHelper.uint64ToLong(b13); long a14 = byteHelper.uint64ToLong(b14); long a15 = byteHelper.uint64ToLong(b15); long a16 = byteHelper.uint64ToLong(b16); long a17 = byteHelper.uint64ToLong(b17); assertEquals(a1,0); assertEquals(a2,1); assertEquals(a3,127); assertEquals(a4,128); assertEquals(a5,255); assertEquals(a6,256); assertEquals(a7,32767); assertEquals(a8,32768); assertEquals(a9,65535); assertEquals(a10,65536); assertEquals(a11,2147483647); assertEquals(a12,2147483648L); assertEquals(a13,4294967295L); assertEquals(a14,4294967296L); assertEquals(a15,9223372036854775807L); //待解决:long number too large,暂无法表示 // assertEquals(a16,9223372036854775808L); // assertEquals(a17,18446744073709551615L); } //todo 大于2^64次方无法表示 @Test public void uint64ToByteArray() { byte[] b1 = new byte[]{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}; //0 byte[] b2 = new byte[]{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01}; //1 byte[] b3 = new byte[]{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7f}; //127 byte[] b4 = new byte[]{0x00,0x00,0x00,0x00,0x00,0x00,0x00, (byte) 0x80}; //128 byte[] b5 = new byte[]{0x00,0x00,0x00,0x00,0x00,0x00,0x00, (byte) 0xff}; //255 byte[] b6 = new byte[]{0x00,0x00,0x00,0x00,0x00,0x00,0x01, 0x00}; //256 byte[] b7 = new byte[]{0x00,0x00,0x00,0x00,0x00,0x00,0x7f, (byte) 0xff}; //32767 byte[] b8 = new byte[]{0x00,0x00,0x00,0x00,0x00,0x00,(byte) 0x80, 0x00}; //32768 byte[] b9 = new byte[]{0x00,0x00,0x00,0x00,0x00,0x00,(byte) 0xff, (byte) 0xff}; //65535 byte[] b10 = new byte[]{0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00}; //65536 byte[] b11 = new byte[]{0x00,0x00,0x00,0x00,0x7f,(byte) 0xff,(byte) 0xff,(byte) 0xff};//2147483647 byte[] b12 = new byte[]{0x00,0x00,0x00,0x00,(byte) 0x80,0x00,0x00,0x00}; //2147483648 byte[] b13 = new byte[]{0x00,0x00,0x00,0x00,(byte) 0xff,(byte) 0xff,(byte) 0xff,(byte) 0xff};//4294967295 byte[] b14 = new byte[]{0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00};//4294967296 byte[] b15 = new byte[]{0x7f,(byte) 0xff,(byte) 0xff,(byte) 0xff,(byte) 0xff,(byte) 0xff,(byte) 0xff,(byte) 0xff};//9223372036854775807 byte[] b16 = new byte[]{(byte) 0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00};//9223372036854775808 byte[] b17 = new byte[]{(byte) 0xff,(byte) 0xff,(byte) 0xff,(byte) 0xff,(byte) 0xff,(byte) 0xff,(byte) 0xff,(byte) 0xff};//18446744073709551615 ByteHelper byteHelper = new ByteHelper(); byte [] a1 = byteHelper.uint64ToByteArray(0); byte [] a2 = byteHelper.uint64ToByteArray(1); byte [] a3 = byteHelper.uint64ToByteArray(127); byte [] a4 = byteHelper.uint64ToByteArray(128); byte [] a5 = byteHelper.uint64ToByteArray(255); byte [] a6 = byteHelper.uint64ToByteArray(256); byte [] a7 = byteHelper.uint64ToByteArray(32767); byte [] a8 = byteHelper.uint64ToByteArray(32768); byte [] a9 = byteHelper.uint64ToByteArray(65535); byte [] a10 = byteHelper.uint64ToByteArray(65536); byte [] a11 = byteHelper.uint64ToByteArray(2147483647); byte [] a12 = byteHelper.uint64ToByteArray(2147483648l); byte [] a13 = byteHelper.uint64ToByteArray(4294967295l); byte [] a14 = byteHelper.uint64ToByteArray(4294967296L); byte [] a15 = byteHelper.uint64ToByteArray(9223372036854775807L); // byte [] a16 = byteHelper.uint64ToByteArray(9223372036854775808L); // byte [] a17 = byteHelper.uint64ToByteArray(18446744073709551615L); assertArrayEquals(a1,b1); assertArrayEquals(a2,b2); assertArrayEquals(a3,b3); assertArrayEquals(a4,b4); assertArrayEquals(a5,b5); assertArrayEquals(a6,b6); assertArrayEquals(a7,b7); assertArrayEquals(a8,b8); assertArrayEquals(a9,b9); assertArrayEquals(a6,b6); assertArrayEquals(a7,b7); assertArrayEquals(a8,b8); assertArrayEquals(a9,b9); assertArrayEquals(a10,b10); assertArrayEquals(a11,b11); assertArrayEquals(a12,b12); assertArrayEquals(a13,b13); assertArrayEquals(a14,b14); assertArrayEquals(a15,b15); // assertEquals(a16,b16); // assertEquals(a17,b17); } }