in hugegraph-server/hugegraph-test/src/main/java/org/apache/hugegraph/unit/serializer/BytesBufferTest.java [337:508]
public void testNumberIdWithNegValue() {
// 2 bytes
Id id = IdGenerator.of(0);
byte[] bytes = genBytes("0800");
Assert.assertArrayEquals(bytes, BytesBuffer.allocate(2)
.writeId(id).bytes());
Assert.assertEquals(id, BytesBuffer.wrap(bytes).readId());
id = IdGenerator.of(-1);
bytes = genBytes("07ff");
Assert.assertArrayEquals(bytes, BytesBuffer.allocate(2)
.writeId(id).bytes());
Assert.assertEquals(id, BytesBuffer.wrap(bytes).readId());
id = IdGenerator.of(-127);
bytes = genBytes("0781");
Assert.assertArrayEquals(bytes, BytesBuffer.allocate(2)
.writeId(id).bytes());
Assert.assertEquals(id, BytesBuffer.wrap(bytes).readId());
id = IdGenerator.of(-128);
bytes = genBytes("0780");
Assert.assertArrayEquals(bytes, BytesBuffer.allocate(2)
.writeId(id).bytes());
Assert.assertEquals(id, BytesBuffer.wrap(bytes).readId());
id = IdGenerator.of(-129);
bytes = genBytes("077f");
Assert.assertArrayEquals(bytes, BytesBuffer.allocate(2)
.writeId(id).bytes());
Assert.assertEquals(id, BytesBuffer.wrap(bytes).readId());
id = IdGenerator.of(-255);
bytes = genBytes("0701");
Assert.assertArrayEquals(bytes, BytesBuffer.allocate(2)
.writeId(id).bytes());
Assert.assertEquals(id, BytesBuffer.wrap(bytes).readId());
id = IdGenerator.of(-256);
bytes = genBytes("0700");
Assert.assertArrayEquals(bytes, BytesBuffer.allocate(2)
.writeId(id).bytes());
Assert.assertEquals(id, BytesBuffer.wrap(bytes).readId());
id = IdGenerator.of(-1573);
bytes = genBytes("01db");
Assert.assertArrayEquals(bytes, BytesBuffer.allocate(2)
.writeId(id).bytes());
Assert.assertEquals(id, BytesBuffer.wrap(bytes).readId());
id = IdGenerator.of(~0x7ff);
bytes = genBytes("0000");
Assert.assertArrayEquals(bytes, BytesBuffer.allocate(2)
.writeId(id).bytes());
Assert.assertEquals(id, BytesBuffer.wrap(bytes).readId());
// 3 bytes
id = IdGenerator.of(~0x7ff - 1);
bytes = genBytes("17f7ff");
Assert.assertArrayEquals(bytes, BytesBuffer.allocate(2)
.writeId(id).bytes());
Assert.assertEquals(id, BytesBuffer.wrap(bytes).readId());
id = IdGenerator.of(~0x7ffff);
bytes = genBytes("100000");
Assert.assertArrayEquals(bytes, BytesBuffer.allocate(2)
.writeId(id).bytes());
Assert.assertEquals(id, BytesBuffer.wrap(bytes).readId());
// 4 bytes
id = IdGenerator.of(~0x7ffff - 1);
bytes = genBytes("27f7ffff");
Assert.assertArrayEquals(bytes, BytesBuffer.allocate(2)
.writeId(id).bytes());
Assert.assertEquals(id, BytesBuffer.wrap(bytes).readId());
id = IdGenerator.of(~0x7ffffff);
bytes = genBytes("20000000");
Assert.assertArrayEquals(bytes, BytesBuffer.allocate(2)
.writeId(id).bytes());
Assert.assertEquals(id, BytesBuffer.wrap(bytes).readId());
// 5 bytes
id = IdGenerator.of(~0x7ffffff - 1);
bytes = genBytes("37f7ffffff");
Assert.assertArrayEquals(bytes, BytesBuffer.allocate(2)
.writeId(id).bytes());
Assert.assertEquals(id, BytesBuffer.wrap(bytes).readId());
id = IdGenerator.of(~0x7ffffffffL);
bytes = genBytes("3000000000");
Assert.assertArrayEquals(bytes, BytesBuffer.allocate(2)
.writeId(id).bytes());
Assert.assertEquals(id, BytesBuffer.wrap(bytes).readId());
// 6 bytes
id = IdGenerator.of(~0x7ffffffffL - 1L);
bytes = genBytes("47f7ffffffff");
Assert.assertArrayEquals(bytes, BytesBuffer.allocate(2)
.writeId(id).bytes());
Assert.assertEquals(id, BytesBuffer.wrap(bytes).readId());
id = IdGenerator.of(~0x7ffffffffffL);
bytes = genBytes("400000000000");
Assert.assertArrayEquals(bytes, BytesBuffer.allocate(2)
.writeId(id).bytes());
Assert.assertEquals(id, BytesBuffer.wrap(bytes).readId());
// 7 bytes
id = IdGenerator.of(~0x7ffffffffffL - 1L);
bytes = genBytes("57f7ffffffffff");
Assert.assertArrayEquals(bytes, BytesBuffer.allocate(2)
.writeId(id).bytes());
Assert.assertEquals(id, BytesBuffer.wrap(bytes).readId());
id = IdGenerator.of(~0x7ffffffffffffL);
bytes = genBytes("50000000000000");
Assert.assertArrayEquals(bytes, BytesBuffer.allocate(2)
.writeId(id).bytes());
Assert.assertEquals(id, BytesBuffer.wrap(bytes).readId());
// 8 bytes
id = IdGenerator.of(~0x7ffffffffffffL - 1L);
bytes = genBytes("67f7ffffffffffff");
Assert.assertArrayEquals(bytes, BytesBuffer.allocate(2)
.writeId(id).bytes());
Assert.assertEquals(id, BytesBuffer.wrap(bytes).readId());
id = IdGenerator.of(~0x7ffffffffffffffL);
bytes = genBytes("6000000000000000");
Assert.assertArrayEquals(bytes, BytesBuffer.allocate(2)
.writeId(id).bytes());
Assert.assertEquals(id, BytesBuffer.wrap(bytes).readId());
// 9 bytes
id = IdGenerator.of(~0x7ffffffffffffffL - 1L);
bytes = genBytes("70f7ffffffffffffff");
Assert.assertArrayEquals(bytes, BytesBuffer.allocate(2)
.writeId(id).bytes());
Assert.assertEquals(id, BytesBuffer.wrap(bytes).readId());
// others
id = IdGenerator.of(Short.MIN_VALUE);
bytes = genBytes("178000");
Assert.assertArrayEquals(bytes, BytesBuffer.allocate(2)
.writeId(id).bytes());
Assert.assertEquals(id, BytesBuffer.wrap(bytes).readId());
id = IdGenerator.of(Short.MIN_VALUE - 1);
bytes = genBytes("177fff");
Assert.assertArrayEquals(bytes, BytesBuffer.allocate(2)
.writeId(id).bytes());
Assert.assertEquals(id, BytesBuffer.wrap(bytes).readId());
id = IdGenerator.of(Integer.MIN_VALUE);
bytes = genBytes("3780000000");
Assert.assertArrayEquals(bytes, BytesBuffer.allocate(2)
.writeId(id).bytes());
Assert.assertEquals(id, BytesBuffer.wrap(bytes).readId());
id = IdGenerator.of(Integer.MIN_VALUE - 1L);
bytes = genBytes("377fffffff");
Assert.assertArrayEquals(bytes, BytesBuffer.allocate(2)
.writeId(id).bytes());
Assert.assertEquals(id, BytesBuffer.wrap(bytes).readId());
id = IdGenerator.of(Long.MIN_VALUE);
bytes = genBytes("708000000000000000");
Assert.assertArrayEquals(bytes, BytesBuffer.allocate(2)
.writeId(id).bytes());
Assert.assertEquals(id, BytesBuffer.wrap(bytes).readId());
}