#include "test.h"
#include "floor_log2.h"
-#include "tans_decode_st.h"
-#include "tans_encode_st.h"
+#include "tANS_decode_st.h"
+#include "tANS_encode_st.h"
-enum test_result test_tans_encode_equal_freq(void)
+enum test_result test_tANS_encode_equal_freq(void)
{
- struct tans_freq_tbl freq_tbl;
- struct tans_symbol_tbl symbol_tbl;
- struct tans_encode_st encode_st;
+ struct tANS_freq_tbl freq_tbl;
+ struct tANS_symbol_tbl symbol_tbl;
+ struct tANS_encode_st encode_st;
uint8_t data[8] = {0x01, 0xfe, 0x32, 0x12, 0x06, 0x07, 0x88, 0x00};
double p[256];
uint8_t buf[4 + 8 + 4] = {0};
uint16_t log2_tblsz = 10;
for (i = 0; i < n_symbols; ++i) p[i] = 1.0 / n_symbols;
- ASSERT_NE(tans_freq_tbl_init(&freq_tbl, n_symbols, p, log2_tblsz), -1);
- ASSERT_EQ(tans_symbol_tbl_init(&symbol_tbl, &freq_tbl), 0);
- tans_encode_st_init(&encode_st, &symbol_tbl);
+ ASSERT_NE(tANS_freq_tbl_init(&freq_tbl, n_symbols, p, log2_tblsz), -1);
+ ASSERT_EQ(tANS_symbol_tbl_init(&symbol_tbl, &freq_tbl), 0);
+ tANS_encode_st_init(&encode_st, &symbol_tbl);
- ASSERT_EQ(tans_encode_st_encode(&encode_st, data, sizeof data, buf + 4), sizeof data * 8);
+ ASSERT_EQ(tANS_encode_st_encode(&encode_st, data, sizeof data, buf + 4), sizeof data * 8);
return TEST_SUCCESS;
}
-enum test_result test_tans_encode_high_zero_probability(void)
+enum test_result test_tANS_encode_high_zero_probability(void)
{
- struct tans_freq_tbl freq_tbl;
- struct tans_symbol_tbl symbol_tbl;
- struct tans_encode_st encode_st;
+ struct tANS_freq_tbl freq_tbl;
+ struct tANS_symbol_tbl symbol_tbl;
+ struct tANS_encode_st encode_st;
uint8_t data[8] = {0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x23};
double p[256];
uint8_t buf[16] = {0};
p[0] = 0.75;
for (i = 1; i < n_symbols; ++i) p[i] = 0.25 / n_symbols;
- ASSERT_NE(tans_freq_tbl_init(&freq_tbl, n_symbols, p, log2_tblsz), -1);
- ASSERT_EQ(tans_symbol_tbl_init(&symbol_tbl, &freq_tbl), 0);
- tans_encode_st_init(&encode_st, &symbol_tbl);
+ ASSERT_NE(tANS_freq_tbl_init(&freq_tbl, n_symbols, p, log2_tblsz), -1);
+ ASSERT_EQ(tANS_symbol_tbl_init(&symbol_tbl, &freq_tbl), 0);
+ tANS_encode_st_init(&encode_st, &symbol_tbl);
- ASSERT_LT(tans_encode_st_encode(&encode_st, data, sizeof data, buf + 4), 24);
+ ASSERT_LT(tANS_encode_st_encode(&encode_st, data, sizeof data, buf + 4), 24);
return TEST_SUCCESS;
}
-enum test_result test_tans_encode_decode_equal_freq(void)
+enum test_result test_tANS_encode_decode_equal_freq(void)
{
- struct tans_freq_tbl freq_tbl;
- struct tans_symbol_tbl symbol_tbl;
- struct tans_encode_st encode_st;
- struct tans_decode_st decode_st;
+ struct tANS_freq_tbl freq_tbl;
+ struct tANS_symbol_tbl symbol_tbl;
+ struct tANS_encode_st encode_st;
+ struct tANS_decode_st decode_st;
uint8_t data[8] = {0x01, 0xfe, 0x32, 0x12, 0x06, 0x07, 0x88, 0x00};
double p[256];
uint8_t buf[4 + 8 + 4] = {0};
uint16_t log2_tblsz = 10;
for (i = 0; i < n_symbols; ++i) p[i] = 1.0 / n_symbols;
- ASSERT_NE(tans_freq_tbl_init(&freq_tbl, n_symbols, p, log2_tblsz), -1);
- ASSERT_EQ(tans_symbol_tbl_init(&symbol_tbl, &freq_tbl), 0);
- tans_encode_st_init(&encode_st, &symbol_tbl);
- tans_decode_st_init(&decode_st, &symbol_tbl);
+ ASSERT_NE(tANS_freq_tbl_init(&freq_tbl, n_symbols, p, log2_tblsz), -1);
+ ASSERT_EQ(tANS_symbol_tbl_init(&symbol_tbl, &freq_tbl), 0);
+ tANS_encode_st_init(&encode_st, &symbol_tbl);
+ tANS_decode_st_init(&decode_st, &symbol_tbl);
- ASSERT_EQ(tans_encode_st_encode(&encode_st, data, sizeof data, buf + 4), 64);
+ ASSERT_EQ(tANS_encode_st_encode(&encode_st, data, sizeof data, buf + 4), 64);
decode_st.x = (uint16_t) (encode_st.x - (1 << log2_tblsz));
- ASSERT_EQ(tans_decode_st_decode(&decode_st, rec, sizeof rec, buf + 4, 64), 0);
+ ASSERT_EQ(tANS_decode_st_decode(&decode_st, rec, sizeof rec, buf + 4, 64), 0);
for (i = 0; i < sizeof rec; ++i) {
ASSERT_EQ(data[i], rec[i]);
return TEST_SUCCESS;
}
-enum test_result test_tans_encode_decode_high_zero_probability(void)
+enum test_result test_tANS_encode_decode_high_zero_probability(void)
{
- struct tans_freq_tbl freq_tbl;
- struct tans_symbol_tbl symbol_tbl;
- struct tans_encode_st encode_st;
- struct tans_decode_st decode_st;
+ struct tANS_freq_tbl freq_tbl;
+ struct tANS_symbol_tbl symbol_tbl;
+ struct tANS_encode_st encode_st;
+ struct tANS_decode_st decode_st;
uint8_t data[8] = {0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x23};
double p[256];
uint8_t buf[4 + 8 + 4] = {0};
p[0] = 0.75;
for (i = 1; i < n_symbols; ++i) p[i] = 0.25 / n_symbols;
- ASSERT_NE(tans_freq_tbl_init(&freq_tbl, n_symbols, p, log2_tblsz), -1);
- ASSERT_EQ(tans_symbol_tbl_init(&symbol_tbl, &freq_tbl), 0);
- tans_encode_st_init(&encode_st, &symbol_tbl);
- tans_decode_st_init(&decode_st, &symbol_tbl);
+ ASSERT_NE(tANS_freq_tbl_init(&freq_tbl, n_symbols, p, log2_tblsz), -1);
+ ASSERT_EQ(tANS_symbol_tbl_init(&symbol_tbl, &freq_tbl), 0);
+ tANS_encode_st_init(&encode_st, &symbol_tbl);
+ tANS_decode_st_init(&decode_st, &symbol_tbl);
- bits = tans_encode_st_encode(&encode_st, data, sizeof data, buf + 4);
+ bits = tANS_encode_st_encode(&encode_st, data, sizeof data, buf + 4);
decode_st.x = (uint16_t) (encode_st.x - (1 << log2_tblsz));
- ASSERT_EQ(tans_decode_st_decode(&decode_st, rec, sizeof rec, buf + 4, bits), 0);
+ ASSERT_EQ(tANS_decode_st_decode(&decode_st, rec, sizeof rec, buf + 4, bits), 0);
for (i = 0; i < sizeof rec; ++i) {
ASSERT_EQ(data[i], rec[i]);
return TEST_SUCCESS;
}
-enum test_result test_tans_encode_decode_long_stream(void)
+enum test_result test_tANS_encode_decode_long_stream(void)
{
- struct tans_freq_tbl freq_tbl;
- struct tans_symbol_tbl symbol_tbl;
- struct tans_encode_st encode_st;
- struct tans_decode_st decode_st;
+ struct tANS_freq_tbl freq_tbl;
+ struct tANS_symbol_tbl symbol_tbl;
+ struct tANS_encode_st encode_st;
+ struct tANS_decode_st decode_st;
uint8_t data[65536];
double p[256];
uint8_t rec[65536];
p[0] = 0.75;
for (i = 1; i < n_symbols; ++i) p[i] = 0.25 / n_symbols;
- ASSERT_NE(tans_freq_tbl_init(&freq_tbl, n_symbols, p, log2_tblsz), -1);
- ASSERT_EQ(tans_symbol_tbl_init(&symbol_tbl, &freq_tbl), 0);
- tans_encode_st_init(&encode_st, &symbol_tbl);
- tans_decode_st_init(&decode_st, &symbol_tbl);
+ ASSERT_NE(tANS_freq_tbl_init(&freq_tbl, n_symbols, p, log2_tblsz), -1);
+ ASSERT_EQ(tANS_symbol_tbl_init(&symbol_tbl, &freq_tbl), 0);
+ tANS_encode_st_init(&encode_st, &symbol_tbl);
+ tANS_decode_st_init(&decode_st, &symbol_tbl);
for (i = 0; i < 65536; ++i) {
data[i] = (uint8_t) (i % 4 == 3 ? i / 4 : 0);
}
- bits = (uint32_t) tans_encode_st_encode(&encode_st, data, sizeof data, buf + 4);
+ bits = (uint32_t) tANS_encode_st_encode(&encode_st, data, sizeof data, buf + 4);
decode_st.x = (uint16_t) (encode_st.x - (1 << log2_tblsz));
- ASSERT_EQ(tans_decode_st_decode(&decode_st, rec, sizeof rec, buf + 4, bits), 0);
+ ASSERT_EQ(tANS_decode_st_decode(&decode_st, rec, sizeof rec, buf + 4, bits), 0);
for (i = 0; i < sizeof rec; ++i) {
ASSERT_EQ(data[i], rec[i]);
int main(void)
{
- RUN_TEST(test_tans_encode_equal_freq);
- RUN_TEST(test_tans_encode_high_zero_probability);
- RUN_TEST(test_tans_encode_decode_equal_freq);
- RUN_TEST(test_tans_encode_decode_high_zero_probability);
- RUN_TEST(test_tans_encode_decode_long_stream);
+ RUN_TEST(test_tANS_encode_equal_freq);
+ RUN_TEST(test_tANS_encode_high_zero_probability);
+ RUN_TEST(test_tANS_encode_decode_equal_freq);
+ RUN_TEST(test_tANS_encode_decode_high_zero_probability);
+ RUN_TEST(test_tANS_encode_decode_long_stream);
}