30 lines
763 B
C
30 lines
763 B
C
#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();
|
|
}
|