in hugegraph-server/hugegraph-test/src/main/java/org/apache/hugegraph/unit/serializer/BytesBufferTest.java [169:334]
public void testNumberId() {
// 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("0801");
Assert.assertArrayEquals(bytes, BytesBuffer.allocate(2)
.writeId(id).bytes());
Assert.assertEquals(id, BytesBuffer.wrap(bytes).readId());
id = IdGenerator.of(127);
bytes = genBytes("087f");
Assert.assertArrayEquals(bytes, BytesBuffer.allocate(2)
.writeId(id).bytes());
Assert.assertEquals(id, BytesBuffer.wrap(bytes).readId());
id = IdGenerator.of(128);
bytes = genBytes("0880");
Assert.assertArrayEquals(bytes, BytesBuffer.allocate(2)
.writeId(id).bytes());
Assert.assertEquals(id, BytesBuffer.wrap(bytes).readId());
id = IdGenerator.of(255);
bytes = genBytes("08ff");
Assert.assertArrayEquals(bytes, BytesBuffer.allocate(2)
.writeId(id).bytes());
Assert.assertEquals(id, BytesBuffer.wrap(bytes).readId());
id = IdGenerator.of(256);
bytes = genBytes("0900");
Assert.assertArrayEquals(bytes, BytesBuffer.allocate(2)
.writeId(id).bytes());
Assert.assertEquals(id, BytesBuffer.wrap(bytes).readId());
id = IdGenerator.of(1573);
bytes = genBytes("0e25");
Assert.assertArrayEquals(bytes, BytesBuffer.allocate(2)
.writeId(id).bytes());
Assert.assertEquals(id, BytesBuffer.wrap(bytes).readId());
id = IdGenerator.of(0x7ff);
bytes = genBytes("0fff");
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("180800");
Assert.assertArrayEquals(bytes, BytesBuffer.allocate(2)
.writeId(id).bytes());
Assert.assertEquals(id, BytesBuffer.wrap(bytes).readId());
id = IdGenerator.of(0x7ffff);
bytes = genBytes("1fffff");
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("28080000");
Assert.assertArrayEquals(bytes, BytesBuffer.allocate(2)
.writeId(id).bytes());
Assert.assertEquals(id, BytesBuffer.wrap(bytes).readId());
id = IdGenerator.of(0x7ffffff);
bytes = genBytes("2fffffff");
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("3808000000");
Assert.assertArrayEquals(bytes, BytesBuffer.allocate(2)
.writeId(id).bytes());
Assert.assertEquals(id, BytesBuffer.wrap(bytes).readId());
id = IdGenerator.of(0x7ffffffffL);
bytes = genBytes("3fffffffff");
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("480800000000");
Assert.assertArrayEquals(bytes, BytesBuffer.allocate(2)
.writeId(id).bytes());
Assert.assertEquals(id, BytesBuffer.wrap(bytes).readId());
id = IdGenerator.of(0x7ffffffffffL);
bytes = genBytes("4fffffffffff");
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("58080000000000");
Assert.assertArrayEquals(bytes, BytesBuffer.allocate(2)
.writeId(id).bytes());
Assert.assertEquals(id, BytesBuffer.wrap(bytes).readId());
id = IdGenerator.of(0x7ffffffffffffL);
bytes = genBytes("5fffffffffffff");
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("6808000000000000");
Assert.assertArrayEquals(bytes, BytesBuffer.allocate(2)
.writeId(id).bytes());
Assert.assertEquals(id, BytesBuffer.wrap(bytes).readId());
id = IdGenerator.of(0x7ffffffffffffffL);
bytes = genBytes("6fffffffffffffff");
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("780800000000000000");
Assert.assertArrayEquals(bytes, BytesBuffer.allocate(2)
.writeId(id).bytes());
Assert.assertEquals(id, BytesBuffer.wrap(bytes).readId());
// others
id = IdGenerator.of(Short.MAX_VALUE);
bytes = genBytes("187fff");
Assert.assertArrayEquals(bytes, BytesBuffer.allocate(2)
.writeId(id).bytes());
Assert.assertEquals(id, BytesBuffer.wrap(bytes).readId());
id = IdGenerator.of(Short.MAX_VALUE + 1);
bytes = genBytes("188000");
Assert.assertArrayEquals(bytes, BytesBuffer.allocate(2)
.writeId(id).bytes());
Assert.assertEquals(id, BytesBuffer.wrap(bytes).readId());
id = IdGenerator.of(Integer.MAX_VALUE);
bytes = genBytes("387fffffff");
Assert.assertArrayEquals(bytes, BytesBuffer.allocate(2)
.writeId(id).bytes());
Assert.assertEquals(id, BytesBuffer.wrap(bytes).readId());
id = IdGenerator.of(Integer.MAX_VALUE + 1L);
bytes = genBytes("3880000000");
Assert.assertArrayEquals(bytes, BytesBuffer.allocate(2)
.writeId(id).bytes());
Assert.assertEquals(id, BytesBuffer.wrap(bytes).readId());
id = IdGenerator.of(Long.MAX_VALUE);
bytes = genBytes("787fffffffffffffff");
Assert.assertArrayEquals(bytes, BytesBuffer.allocate(2)
.writeId(id).bytes());
Assert.assertEquals(id, BytesBuffer.wrap(bytes).readId());
}