game/axl_vlq_test.c

31 lines
763 B
C
Raw Normal View History

2025-12-05 20:52:24 +03:00
#include "axl_koan.h"
#include "axl_memory.h"
#include "axl_types.h"
#include "axl_vlq.h"
KOAN(vlq_basic_encode_decode)
{
u32 expected[] = {0, 126, 129, 256, 65535, 70000, 9999999, U32_MAX};
u32 expected_len[] = {1, 1, 2, 2, 3, 3, 4, 5 };
u8 encoded[AXL_VLQ_MAX_LEN];
for(u32 i = 0; i < sizeof(expected) / sizeof(expected[0]); i++)
{
u32 encoded_len = axl_vlq_encode(expected[i], encoded);
u32 decoded = 0;
u32 decoded_len = axl_vlq_decode(encoded, &decoded);
ASSERT_UINT_EQ(expected_len[i], encoded_len);
ASSERT_UINT_EQ(expected_len[i], decoded_len);
ASSERT_UINT_EQ(expected[i], decoded);
}
}
int main(void)
{
axl_init();
return koan_run_all();
}