in src/testvlq.c [29:52]
int main() {
uint8_t buf[20];
for (int64_t i = 0; i < 60; i++) {
for (int64_t j = -10; j < 10; j++) {
int64_t val = (1 << i) + j;
if (val >= 0) {
uint64_t written = write_vlq(buf, val);
uint64_t pos = 0;
int64_t val2 = read_vlq(buf, &pos);
assert_equals(written, pos);
assert_equals(val, val2);
}
}
}
assert_equals(1, write_vlq(buf, 0));
assert_equals(1, write_vlq(buf, 127));
assert_equals(2, write_vlq(buf, 128));
assert_equals(2, write_vlq(buf, 16383));
assert_equals(3, write_vlq(buf, 16384));
assert_equals(3, write_vlq(buf, 2097151));
assert_equals(4, write_vlq(buf, 2097152));
printf("Success!\n");
}