summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorMax <msuraev@sysmocom.de>2017-11-28 18:04:23 +0100
committerMax <msuraev@sysmocom.de>2017-11-28 18:08:31 +0100
commit0176b4a9789dd8cb13313ab8b8664441acd100bf (patch)
tree378f0e186e45a0dec26d8b09253a156b088f4fa8 /tests
parent29d489f0818262f94bd253b39e4438bdcba01fc3 (diff)
coding test: enable debug output
Change-Id: I1ec23ca3cf0d973c77b8c4e7e23e0e75a4f0a7a3
Diffstat (limited to 'tests')
-rw-r--r--tests/coding/coding_test.c247
-rw-r--r--tests/coding/coding_test.ok4171
2 files changed, 4293 insertions, 125 deletions
diff --git a/tests/coding/coding_test.c b/tests/coding/coding_test.c
index 6c1bd844..a495b9a4 100644
--- a/tests/coding/coding_test.c
+++ b/tests/coding/coding_test.c
@@ -37,9 +37,6 @@
abort(); \
}
-/* set condition to 1, to show debugging */
-#define printd if (0) printf
-
static void test_xcch(uint8_t *l2)
{
uint8_t result[23];
@@ -48,35 +45,35 @@ static void test_xcch(uint8_t *l2)
int n_errors, n_bits_total;
/* Encode L2 message */
- printd("Encoding: %s\n", osmo_hexdump(l2, 23));
+ printf("Encoding: %s\n", osmo_hexdump(l2, 23));
gsm0503_xcch_encode(bursts_u, l2);
/* Prepare soft-bits */
osmo_ubit2sbit(bursts_s, bursts_u, 116 * 4);
- printd("U-Bits:\n");
- printd("%s %02x %02x ", osmo_ubit_dump(bursts_u, 57), bursts_u[57], bursts_u[58]);
- printd("%s\n", osmo_ubit_dump(bursts_u + 59, 57));
- printd("%s %02x %02x ", osmo_ubit_dump(bursts_u + 116, 57), bursts_u[57 + 116], bursts_u[58 + 116]);
- printd("%s\n", osmo_ubit_dump(bursts_u + 59 + 116, 57));
- printd("%s %02x %02x ", osmo_ubit_dump(bursts_u + 232, 57), bursts_u[57 + 232], bursts_u[58 + 232]);
- printd("%s\n", osmo_ubit_dump(bursts_u + 59 + 232, 57));
- printd("%s %02x %02x ", osmo_ubit_dump(bursts_u + 348, 57), bursts_u[57 + 348], bursts_u[58 + 348]);
- printd("%s\n", osmo_ubit_dump(bursts_u + 59 + 348, 57));
-
- printd("S-Bits:\n");
- printd("%s %02x %02x ", osmo_hexdump((uint8_t *)bursts_s, 57),
+ printf("U-Bits:\n");
+ printf("%s %02x %02x ", osmo_ubit_dump(bursts_u, 57), bursts_u[57], bursts_u[58]);
+ printf("%s\n", osmo_ubit_dump(bursts_u + 59, 57));
+ printf("%s %02x %02x ", osmo_ubit_dump(bursts_u + 116, 57), bursts_u[57 + 116], bursts_u[58 + 116]);
+ printf("%s\n", osmo_ubit_dump(bursts_u + 59 + 116, 57));
+ printf("%s %02x %02x ", osmo_ubit_dump(bursts_u + 232, 57), bursts_u[57 + 232], bursts_u[58 + 232]);
+ printf("%s\n", osmo_ubit_dump(bursts_u + 59 + 232, 57));
+ printf("%s %02x %02x ", osmo_ubit_dump(bursts_u + 348, 57), bursts_u[57 + 348], bursts_u[58 + 348]);
+ printf("%s\n", osmo_ubit_dump(bursts_u + 59 + 348, 57));
+
+ printf("S-Bits:\n");
+ printf("%s %02x %02x ", osmo_hexdump((uint8_t *)bursts_s, 57),
(uint8_t)bursts_s[57], (uint8_t)bursts_s[58]);
- printd("%s\n", osmo_hexdump((uint8_t *)bursts_s + 59, 57));
- printd("%s %02x %02x ", osmo_hexdump((uint8_t *)bursts_s + 116, 57),
+ printf("%s\n", osmo_hexdump((uint8_t *)bursts_s + 59, 57));
+ printf("%s %02x %02x ", osmo_hexdump((uint8_t *)bursts_s + 116, 57),
(uint8_t)bursts_s[57 + 116], (uint8_t)bursts_s[58 + 116]);
- printd("%s\n", osmo_hexdump((uint8_t *)bursts_s + 59 + 116, 57));
- printd("%s %02x %02x ", osmo_hexdump((uint8_t *)bursts_s + 232, 57),
+ printf("%s\n", osmo_hexdump((uint8_t *)bursts_s + 59 + 116, 57));
+ printf("%s %02x %02x ", osmo_hexdump((uint8_t *)bursts_s + 232, 57),
(uint8_t)bursts_s[57 + 232], (uint8_t)bursts_s[58 + 232]);
- printd("%s\n", osmo_hexdump((uint8_t *)bursts_s + 59 + 232, 57));
- printd("%s %02x %02x ", osmo_hexdump((uint8_t *)bursts_s + 348, 57),
+ printf("%s\n", osmo_hexdump((uint8_t *)bursts_s + 59 + 232, 57));
+ printf("%s %02x %02x ", osmo_hexdump((uint8_t *)bursts_s + 348, 57),
(uint8_t)bursts_s[57 + 348], (uint8_t)bursts_s[58 + 348]);
- printd("%s\n", osmo_hexdump((uint8_t *)bursts_s + 59 + 348, 57));
+ printf("%s\n", osmo_hexdump((uint8_t *)bursts_s + 59 + 348, 57));
/* Destroy some bits */
memset(bursts_s, 0, 30);
@@ -84,14 +81,14 @@ static void test_xcch(uint8_t *l2)
/* Decode, correcting errors */
gsm0503_xcch_decode(result, bursts_s, &n_errors, &n_bits_total);
- printd("Decoded: %s\n", osmo_hexdump(result, 23));
+ printf("Decoded: %s\n", osmo_hexdump(result, 23));
printf("xcch_decode: n_errors=%d n_bits_total=%d ber=%.2f\n",
n_errors, n_bits_total, (float) n_errors / n_bits_total);
ASSERT_TRUE(n_bits_total == 456);
ASSERT_TRUE(!memcmp(l2, result, 23));
- printd("\n");
+ printf("\n");
}
static void test_rach(uint8_t bsic, uint8_t ra)
@@ -101,26 +98,26 @@ static void test_rach(uint8_t bsic, uint8_t ra)
sbit_t bursts_s[36];
/* Encode L2 message */
- printd("Encoding: %02x\n", ra);
+ printf("Encoding: %02x\n", ra);
gsm0503_rach_encode(bursts_u, &ra, bsic);
/* Prepare soft-bits */
osmo_ubit2sbit(bursts_s, bursts_u, 36);
- printd("U-Bits: %s\n", osmo_ubit_dump(bursts_u, 36));
+ printf("U-Bits: %s\n", osmo_ubit_dump(bursts_u, 36));
- printd("S-Bits: %s\n", osmo_hexdump((uint8_t *)bursts_s, 36));
+ printf("S-Bits: %s\n", osmo_hexdump((uint8_t *)bursts_s, 36));
/* Destroy some bits */
memset(bursts_s + 6, 0, 8);
/* Decode, correcting errors */
gsm0503_rach_decode(&result, bursts_s, bsic);
- printd("Decoded: %02x\n", result);
+ printf("Decoded: %02x\n", result);
ASSERT_TRUE(ra == result);
- printd("\n");
+ printf("\n");
}
static void test_sch(uint8_t *info)
@@ -134,26 +131,26 @@ static void test_sch(uint8_t *info)
result[3] = 0;
/* Encode L2 message */
- printd("Encoding: %s\n", osmo_hexdump(info, 4));
+ printf("Encoding: %s\n", osmo_hexdump(info, 4));
gsm0503_sch_encode(bursts_u, info);
/* Prepare soft-bits */
osmo_ubit2sbit(bursts_s, bursts_u, 78);
- printd("U-Bits: %s\n", osmo_ubit_dump(bursts_u, 78));
+ printf("U-Bits: %s\n", osmo_ubit_dump(bursts_u, 78));
- printd("S-Bits: %s\n", osmo_hexdump((uint8_t *)bursts_s, 78));
+ printf("S-Bits: %s\n", osmo_hexdump((uint8_t *)bursts_s, 78));
/* Destroy some bits */
memset(bursts_s + 6, 0, 10);
/* Decode, correcting errors */
gsm0503_sch_decode(result, bursts_s);
- printd("Decoded: %s\n", osmo_hexdump(result, 4));
+ printf("Decoded: %s\n", osmo_hexdump(result, 4));
ASSERT_TRUE(!memcmp(info, result, 4));
- printd("\n");
+ printf("\n");
}
static void test_fr(uint8_t *speech, int len)
@@ -168,55 +165,55 @@ static void test_fr(uint8_t *speech, int len)
memset(bursts_s, 0, sizeof(bursts_s));
/* Encode L2 message */
- printd("Encoding: %s\n", osmo_hexdump(speech, len));
+ printf("Encoding: %s\n", osmo_hexdump(speech, len));
gsm0503_tch_fr_encode(bursts_u, speech, len, 1);
/* Prepare soft-bits */
osmo_ubit2sbit(bursts_s, bursts_u, 116 * 8);
- printd("U-Bits:\n");
- printd("%s %02x %02x ", osmo_ubit_dump(bursts_u, 57), bursts_u[57], bursts_u[58]);
- printd("%s\n", osmo_ubit_dump(bursts_u + 59, 57));
- printd("%s %02x %02x ", osmo_ubit_dump(bursts_u + 116, 57), bursts_u[57 + 116], bursts_u[58 + 116]);
- printd("%s\n", osmo_ubit_dump(bursts_u + 59 + 116, 57));
- printd("%s %02x %02x ", osmo_ubit_dump(bursts_u + 232, 57), bursts_u[57 + 232], bursts_u[58 + 232]);
- printd("%s\n", osmo_ubit_dump(bursts_u + 59 + 232, 57));
- printd("%s %02x %02x ", osmo_ubit_dump(bursts_u + 348, 57), bursts_u[57 + 348], bursts_u[58 + 348]);
- printd("%s\n", osmo_ubit_dump(bursts_u + 59 + 348, 57));
- printd("%s %02x %02x ", osmo_ubit_dump(bursts_u + 464, 57), bursts_u[57 + 464], bursts_u[58 + 464]);
- printd("%s\n", osmo_ubit_dump(bursts_u + 59 + 464, 57));
- printd("%s %02x %02x ", osmo_ubit_dump(bursts_u + 580, 57), bursts_u[57 + 580], bursts_u[58 + 580]);
- printd("%s\n", osmo_ubit_dump(bursts_u + 59 + 580, 57));
- printd("%s %02x %02x ", osmo_ubit_dump(bursts_u + 696, 57), bursts_u[57 + 696], bursts_u[58 + 696]);
- printd("%s\n", osmo_ubit_dump(bursts_u + 59 + 696, 57));
- printd("%s %02x %02x ", osmo_ubit_dump(bursts_u + 812, 57), bursts_u[57 + 812], bursts_u[58 + 812]);
- printd("%s\n", osmo_ubit_dump(bursts_u + 59 + 812, 57));
-
- printd("S-Bits:\n");
- printd("%s %02x %02x ", osmo_hexdump((uint8_t *)bursts_s, 57),
+ printf("U-Bits:\n");
+ printf("%s %02x %02x ", osmo_ubit_dump(bursts_u, 57), bursts_u[57], bursts_u[58]);
+ printf("%s\n", osmo_ubit_dump(bursts_u + 59, 57));
+ printf("%s %02x %02x ", osmo_ubit_dump(bursts_u + 116, 57), bursts_u[57 + 116], bursts_u[58 + 116]);
+ printf("%s\n", osmo_ubit_dump(bursts_u + 59 + 116, 57));
+ printf("%s %02x %02x ", osmo_ubit_dump(bursts_u + 232, 57), bursts_u[57 + 232], bursts_u[58 + 232]);
+ printf("%s\n", osmo_ubit_dump(bursts_u + 59 + 232, 57));
+ printf("%s %02x %02x ", osmo_ubit_dump(bursts_u + 348, 57), bursts_u[57 + 348], bursts_u[58 + 348]);
+ printf("%s\n", osmo_ubit_dump(bursts_u + 59 + 348, 57));
+ printf("%s %02x %02x ", osmo_ubit_dump(bursts_u + 464, 57), bursts_u[57 + 464], bursts_u[58 + 464]);
+ printf("%s\n", osmo_ubit_dump(bursts_u + 59 + 464, 57));
+ printf("%s %02x %02x ", osmo_ubit_dump(bursts_u + 580, 57), bursts_u[57 + 580], bursts_u[58 + 580]);
+ printf("%s\n", osmo_ubit_dump(bursts_u + 59 + 580, 57));
+ printf("%s %02x %02x ", osmo_ubit_dump(bursts_u + 696, 57), bursts_u[57 + 696], bursts_u[58 + 696]);
+ printf("%s\n", osmo_ubit_dump(bursts_u + 59 + 696, 57));
+ printf("%s %02x %02x ", osmo_ubit_dump(bursts_u + 812, 57), bursts_u[57 + 812], bursts_u[58 + 812]);
+ printf("%s\n", osmo_ubit_dump(bursts_u + 59 + 812, 57));
+
+ printf("S-Bits:\n");
+ printf("%s %02x %02x ", osmo_hexdump((uint8_t *)bursts_s, 57),
(uint8_t)bursts_s[57], (uint8_t)bursts_s[58]);
- printd("%s\n", osmo_hexdump((uint8_t *)bursts_s + 59, 57));
- printd("%s %02x %02x ", osmo_hexdump((uint8_t *)bursts_s + 116, 57),
+ printf("%s\n", osmo_hexdump((uint8_t *)bursts_s + 59, 57));
+ printf("%s %02x %02x ", osmo_hexdump((uint8_t *)bursts_s + 116, 57),
(uint8_t)bursts_s[57 + 116], (uint8_t)bursts_s[58 + 116]);
- printd("%s\n", osmo_hexdump((uint8_t *)bursts_s + 59 + 116, 57));
- printd("%s %02x %02x ", osmo_hexdump((uint8_t *)bursts_s + 232, 57),
+ printf("%s\n", osmo_hexdump((uint8_t *)bursts_s + 59 + 116, 57));
+ printf("%s %02x %02x ", osmo_hexdump((uint8_t *)bursts_s + 232, 57),
(uint8_t)bursts_s[57 + 232], (uint8_t)bursts_s[58 + 232]);
- printd("%s\n", osmo_hexdump((uint8_t *)bursts_s + 59 + 232, 57));
- printd("%s %02x %02x ", osmo_hexdump((uint8_t *)bursts_s + 348, 57),
+ printf("%s\n", osmo_hexdump((uint8_t *)bursts_s + 59 + 232, 57));
+ printf("%s %02x %02x ", osmo_hexdump((uint8_t *)bursts_s + 348, 57),
(uint8_t)bursts_s[57 + 348], (uint8_t)bursts_s[58 + 348]);
- printd("%s\n", osmo_hexdump((uint8_t *)bursts_s + 59 + 348, 57));
- printd("%s %02x %02x ", osmo_hexdump((uint8_t *)bursts_s + 464, 57),
+ printf("%s\n", osmo_hexdump((uint8_t *)bursts_s + 59 + 348, 57));
+ printf("%s %02x %02x ", osmo_hexdump((uint8_t *)bursts_s + 464, 57),
(uint8_t)bursts_s[57 + 464], (uint8_t)bursts_s[58 + 464]);
- printd("%s\n", osmo_hexdump((uint8_t *)bursts_s + 59 + 464, 57));
- printd("%s %02x %02x ", osmo_hexdump((uint8_t *)bursts_s + 580, 57),
+ printf("%s\n", osmo_hexdump((uint8_t *)bursts_s + 59 + 464, 57));
+ printf("%s %02x %02x ", osmo_hexdump((uint8_t *)bursts_s + 580, 57),
(uint8_t)bursts_s[57 + 580], (uint8_t)bursts_s[58 + 580]);
- printd("%s\n", osmo_hexdump((uint8_t *)bursts_s + 59 + 580, 57));
- printd("%s %02x %02x ", osmo_hexdump((uint8_t *)bursts_s + 696, 57),
+ printf("%s\n", osmo_hexdump((uint8_t *)bursts_s + 59 + 580, 57));
+ printf("%s %02x %02x ", osmo_hexdump((uint8_t *)bursts_s + 696, 57),
(uint8_t)bursts_s[57 + 696], (uint8_t)bursts_s[58 + 696]);
- printd("%s\n", osmo_hexdump((uint8_t *)bursts_s + 59 + 696, 57));
- printd("%s %02x %02x ", osmo_hexdump((uint8_t *)bursts_s + 812, 57),
+ printf("%s\n", osmo_hexdump((uint8_t *)bursts_s + 59 + 696, 57));
+ printf("%s %02x %02x ", osmo_hexdump((uint8_t *)bursts_s + 812, 57),
(uint8_t)bursts_s[57 + 812], (uint8_t)bursts_s[58 + 812]);
- printd("%s\n", osmo_hexdump((uint8_t *)bursts_s + 59 + 812, 57));
+ printf("%s\n", osmo_hexdump((uint8_t *)bursts_s + 59 + 812, 57));
/* Destroy some bits */
memset(bursts_s + 6, 0, 20);
@@ -224,14 +221,14 @@ static void test_fr(uint8_t *speech, int len)
/* Decode, correcting errors */
rc = gsm0503_tch_fr_decode(result, bursts_s, 1, len == 31,
&n_errors, &n_bits_total);
- printd("Decoded: %s\n", osmo_hexdump(result, len));
+ printf("Decoded: %s\n", osmo_hexdump(result, len));
printf("tch_fr_decode: n_errors=%d n_bits_total=%d ber=%.2f\n",
n_errors, n_bits_total, (float)n_errors/n_bits_total);
ASSERT_TRUE(rc == len);
ASSERT_TRUE(!memcmp(speech, result, len));
- printd("\n");
+ printf("\n");
}
static void test_hr(uint8_t *speech, int len)
@@ -246,45 +243,45 @@ static void test_hr(uint8_t *speech, int len)
memset(bursts_s, 0, sizeof(bursts_s));
/* Encode L2 message */
- printd("Encoding: %s\n", osmo_hexdump(speech, len));
+ printf("Encoding: %s\n", osmo_hexdump(speech, len));
gsm0503_tch_hr_encode(bursts_u, speech, len);
/* Prepare soft-bits */
osmo_ubit2sbit(bursts_s, bursts_u, 116 * 6);
- printd("U-Bits:\n");
- printd("%s %02x %02x ", osmo_ubit_dump(bursts_u, 57), bursts_u[57], bursts_u[58]);
- printd("%s\n", osmo_ubit_dump(bursts_u + 59, 57));
- printd("%s %02x %02x ", osmo_ubit_dump(bursts_u + 116, 57), bursts_u[57 + 116], bursts_u[58 + 116]);
- printd("%s\n", osmo_ubit_dump(bursts_u + 59 + 116, 57));
- printd("%s %02x %02x ", osmo_ubit_dump(bursts_u + 232, 57), bursts_u[57 + 232], bursts_u[58 + 232]);
- printd("%s\n", osmo_ubit_dump(bursts_u + 59 + 232, 57));
- printd("%s %02x %02x ", osmo_ubit_dump(bursts_u + 348, 57), bursts_u[57 + 348], bursts_u[58 + 348]);
- printd("%s\n", osmo_ubit_dump(bursts_u + 59 + 348, 57));
- printd("%s %02x %02x ", osmo_ubit_dump(bursts_u + 464, 57), bursts_u[57 + 464], bursts_u[58 + 464]);
- printd("%s\n", osmo_ubit_dump(bursts_u + 59 + 464, 57));
- printd("%s %02x %02x ", osmo_ubit_dump(bursts_u + 580, 57), bursts_u[57 + 580], bursts_u[58 + 580]);
- printd("%s\n", osmo_ubit_dump(bursts_u + 59 + 580, 57));
-
- printd("S-Bits:\n");
- printd("%s %02x %02x ", osmo_hexdump((uint8_t *)bursts_s, 57),
+ printf("U-Bits:\n");
+ printf("%s %02x %02x ", osmo_ubit_dump(bursts_u, 57), bursts_u[57], bursts_u[58]);
+ printf("%s\n", osmo_ubit_dump(bursts_u + 59, 57));
+ printf("%s %02x %02x ", osmo_ubit_dump(bursts_u + 116, 57), bursts_u[57 + 116], bursts_u[58 + 116]);
+ printf("%s\n", osmo_ubit_dump(bursts_u + 59 + 116, 57));
+ printf("%s %02x %02x ", osmo_ubit_dump(bursts_u + 232, 57), bursts_u[57 + 232], bursts_u[58 + 232]);
+ printf("%s\n", osmo_ubit_dump(bursts_u + 59 + 232, 57));
+ printf("%s %02x %02x ", osmo_ubit_dump(bursts_u + 348, 57), bursts_u[57 + 348], bursts_u[58 + 348]);
+ printf("%s\n", osmo_ubit_dump(bursts_u + 59 + 348, 57));
+ printf("%s %02x %02x ", osmo_ubit_dump(bursts_u + 464, 57), bursts_u[57 + 464], bursts_u[58 + 464]);
+ printf("%s\n", osmo_ubit_dump(bursts_u + 59 + 464, 57));
+ printf("%s %02x %02x ", osmo_ubit_dump(bursts_u + 580, 57), bursts_u[57 + 580], bursts_u[58 + 580]);
+ printf("%s\n", osmo_ubit_dump(bursts_u + 59 + 580, 57));
+
+ printf("S-Bits:\n");
+ printf("%s %02x %02x ", osmo_hexdump((uint8_t *)bursts_s, 57),
(uint8_t)bursts_s[57], (uint8_t)bursts_s[58]);
- printd("%s\n", osmo_hexdump((uint8_t *)bursts_s + 59, 57));
- printd("%s %02x %02x ", osmo_hexdump((uint8_t *)bursts_s + 116, 57),
+ printf("%s\n", osmo_hexdump((uint8_t *)bursts_s + 59, 57));
+ printf("%s %02x %02x ", osmo_hexdump((uint8_t *)bursts_s + 116, 57),
(uint8_t)bursts_s[57 + 116], (uint8_t)bursts_s[58 + 116]);
- printd("%s\n", osmo_hexdump((uint8_t *)bursts_s + 59 + 116, 57));
- printd("%s %02x %02x ", osmo_hexdump((uint8_t *)bursts_s + 232, 57),
+ printf("%s\n", osmo_hexdump((uint8_t *)bursts_s + 59 + 116, 57));
+ printf("%s %02x %02x ", osmo_hexdump((uint8_t *)bursts_s + 232, 57),
(uint8_t)bursts_s[57 + 232], (uint8_t)bursts_s[58 + 232]);
- printd("%s\n", osmo_hexdump((uint8_t *)bursts_s + 59 + 232, 57));
- printd("%s %02x %02x ", osmo_hexdump((uint8_t *)bursts_s + 348, 57),
+ printf("%s\n", osmo_hexdump((uint8_t *)bursts_s + 59 + 232, 57));
+ printf("%s %02x %02x ", osmo_hexdump((uint8_t *)bursts_s + 348, 57),
(uint8_t)bursts_s[57 + 348], (uint8_t)bursts_s[58 + 348]);
- printd("%s\n", osmo_hexdump((uint8_t *)bursts_s + 59 + 348, 57));
- printd("%s %02x %02x ", osmo_hexdump((uint8_t *)bursts_s + 464, 57),
+ printf("%s\n", osmo_hexdump((uint8_t *)bursts_s + 59 + 348, 57));
+ printf("%s %02x %02x ", osmo_hexdump((uint8_t *)bursts_s + 464, 57),
(uint8_t)bursts_s[57 + 464], (uint8_t)bursts_s[58 + 464]);
- printd("%s\n", osmo_hexdump((uint8_t *)bursts_s + 59 + 464, 57));
- printd("%s %02x %02x ", osmo_hexdump((uint8_t *)bursts_s + 580, 57),
+ printf("%s\n", osmo_hexdump((uint8_t *)bursts_s + 59 + 464, 57));
+ printf("%s %02x %02x ", osmo_hexdump((uint8_t *)bursts_s + 580, 57),
(uint8_t)bursts_s[57 + 580], (uint8_t)bursts_s[58 + 580]);
- printd("%s\n", osmo_hexdump((uint8_t *)bursts_s + 59 + 580, 57));
+ printf("%s\n", osmo_hexdump((uint8_t *)bursts_s + 59 + 580, 57));
/* Destroy some bits */
memset(bursts_s + 6, 0, 20);
@@ -292,14 +289,14 @@ static void test_hr(uint8_t *speech, int len)
/* Decode, correcting errors */
rc = gsm0503_tch_hr_decode(result, bursts_s, 0,
&n_errors, &n_bits_total);
- printd("Decoded: %s\n", osmo_hexdump(result, len));
+ printf("Decoded: %s\n", osmo_hexdump(result, len));
printf("tch_hr_decode: n_errors=%d n_bits_total=%d ber=%.2f\n",
n_errors, n_bits_total, (float)n_errors/n_bits_total);
ASSERT_TRUE(rc == len);
ASSERT_TRUE(!memcmp(speech, result, len));
- printd("\n");
+ printf("\n");
}
static void test_pdtch(uint8_t *l2, int len)
@@ -324,47 +321,47 @@ static void test_pdtch(uint8_t *l2, int len)
}
/* Encode L2 message */
- printd("Encoding: %s\n", osmo_hexdump(l2, len));
+ printf("Encoding: %s\n", osmo_hexdump(l2, len));
gsm0503_pdtch_encode(bursts_u, l2, len);
/* Prepare soft-bits */
osmo_ubit2sbit(bursts_s, bursts_u, 116 * 4);
- printd("U-Bits:\n");
- printd("%s %02x %02x ", osmo_ubit_dump(bursts_u, 57), bursts_u[57], bursts_u[58]);
- printd("%s\n", osmo_ubit_dump(bursts_u + 59, 57));
- printd("%s %02x %02x ", osmo_ubit_dump(bursts_u + 116, 57), bursts_u[57 + 116], bursts_u[58 + 116]);
- printd("%s\n", osmo_ubit_dump(bursts_u + 59 + 116, 57));
- printd("%s %02x %02x ", osmo_ubit_dump(bursts_u + 232, 57), bursts_u[57 + 232], bursts_u[58 + 232]);
- printd("%s\n", osmo_ubit_dump(bursts_u + 59 + 232, 57));
- printd("%s %02x %02x ", osmo_ubit_dump(bursts_u + 348, 57), bursts_u[57 + 348], bursts_u[58 + 348]);
- printd("%s\n", osmo_ubit_dump(bursts_u + 59 + 348, 57));
-
- printd("S-Bits:\n");
- printd("%s %02x %02x ", osmo_hexdump((uint8_t *)bursts_s, 57),
+ printf("U-Bits:\n");
+ printf("%s %02x %02x ", osmo_ubit_dump(bursts_u, 57), bursts_u[57], bursts_u[58]);
+ printf("%s\n", osmo_ubit_dump(bursts_u + 59, 57));
+ printf("%s %02x %02x ", osmo_ubit_dump(bursts_u + 116, 57), bursts_u[57 + 116], bursts_u[58 + 116]);
+ printf("%s\n", osmo_ubit_dump(bursts_u + 59 + 116, 57));
+ printf("%s %02x %02x ", osmo_ubit_dump(bursts_u + 232, 57), bursts_u[57 + 232], bursts_u[58 + 232]);
+ printf("%s\n", osmo_ubit_dump(bursts_u + 59 + 232, 57));
+ printf("%s %02x %02x ", osmo_ubit_dump(bursts_u + 348, 57), bursts_u[57 + 348], bursts_u[58 + 348]);
+ printf("%s\n", osmo_ubit_dump(bursts_u + 59 + 348, 57));
+
+ printf("S-Bits:\n");
+ printf("%s %02x %02x ", osmo_hexdump((uint8_t *)bursts_s, 57),
(uint8_t)bursts_s[57], (uint8_t)bursts_s[58]);
- printd("%s\n", osmo_hexdump((uint8_t *)bursts_s + 59, 57));
- printd("%s %02x %02x ", osmo_hexdump((uint8_t *)bursts_s + 116, 57),
+ printf("%s\n", osmo_hexdump((uint8_t *)bursts_s + 59, 57));
+ printf("%s %02x %02x ", osmo_hexdump((uint8_t *)bursts_s + 116, 57),
(uint8_t)bursts_s[57 + 116], (uint8_t)bursts_s[58 + 116]);
- printd("%s\n", osmo_hexdump((uint8_t *)bursts_s + 59 + 116, 57));
- printd("%s %02x %02x ", osmo_hexdump((uint8_t *)bursts_s + 232, 57),
+ printf("%s\n", osmo_hexdump((uint8_t *)bursts_s + 59 + 116, 57));
+ printf("%s %02x %02x ", osmo_hexdump((uint8_t *)bursts_s + 232, 57),
(uint8_t)bursts_s[57 + 232], (uint8_t)bursts_s[58 + 232]);
- printd("%s\n", osmo_hexdump((uint8_t *)bursts_s + 59 + 232, 57));
- printd("%s %02x %02x ", osmo_hexdump((uint8_t *)bursts_s + 348, 57),
+ printf("%s\n", osmo_hexdump((uint8_t *)bursts_s + 59 + 232, 57));
+ printf("%s %02x %02x ", osmo_hexdump((uint8_t *)bursts_s + 348, 57),
(uint8_t)bursts_s[57 + 348], (uint8_t)bursts_s[58 + 348]);
- printd("%s\n", osmo_hexdump((uint8_t *)bursts_s + 59 + 348, 57));
+ printf("%s\n", osmo_hexdump((uint8_t *)bursts_s + 59 + 348, 57));
/* Decode */
rc = gsm0503_pdtch_decode(result, bursts_s, NULL,
&n_errors, &n_bits_total);
- printd("Decoded: %s\n", osmo_hexdump(result, len));
+ printf("Decoded: %s\n", osmo_hexdump(result, len));
printf("pdtch_decode: n_errors=%d n_bits_total=%d ber=%.2f\n",
n_errors, n_bits_total, (float)n_errors/n_bits_total);
ASSERT_TRUE(rc == len);
ASSERT_TRUE(!memcmp(l2, result, len));
- printd("\n");
+ printf("\n");
}
uint8_t test_l2[][23] = {
diff --git a/tests/coding/coding_test.ok b/tests/coding/coding_test.ok
index 5030e4d2..619f038b 100644
--- a/tests/coding/coding_test.ok
+++ b/tests/coding/coding_test.ok
@@ -1,21 +1,4192 @@
+Encoding: 03 03 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+U-Bits:
+100000010000100000000100000000000000000000101000010000001 01 01 010000100000010000001000000101000010100000000000001000000
+000000010010000000010000000010000001000010100001000000000 01 01 000000100000010000101000000000000000000001000000000001000
+000000000010000000010000100000000000001010000101000010100 01 01 001000000101000000001001010000000000000100000010100001000
+010100000010000000000000100000010000000000000000000010000 01 01 000010010000000010000001000000001000000000001000000000000
+S-Bits:
+81 7f 7f 7f 7f 7f 7f 81 7f 7f 7f 7f 81 7f 7f 7f 7f 7f 7f 7f 7f 81 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 81 7f 81 7f 7f 7f 7f 81 7f 7f 7f 7f 7f 7f 81 81 81 7f 81 7f 7f 7f 7f 81 7f 7f 7f 7f 7f 7f 81 7f 7f 7f 7f 7f 7f 81 7f 7f 7f 7f 7f 7f 81 7f 81 7f 7f 7f 7f 81 7f 81 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 81 7f 7f 7f 7f 7f 7f
+7f 7f 7f 7f 7f 7f 7f 81 7f 7f 81 7f 7f 7f 7f 7f 7f 7f 7f 81 7f 7f 7f 7f 7f 7f 7f 7f 81 7f 7f 7f 7f 7f 7f 81 7f 7f 7f 7f 81 7f 81 7f 7f 7f 7f 81 7f 7f 7f 7f 7f 7f 7f 7f 7f 81 81 7f 7f 7f 7f 7f 7f 81 7f 7f 7f 7f 7f 7f 81 7f 7f 7f 7f 81 7f 81 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 81 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 81 7f 7f 7f
+7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 81 7f 7f 7f 7f 7f 7f 7f 7f 81 7f 7f 7f 7f 81 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 81 7f 81 7f 7f 7f 7f 81 7f 81 7f 7f 7f 7f 81 7f 81 7f 7f 81 81 7f 7f 81 7f 7f 7f 7f 7f 7f 81 7f 81 7f 7f 7f 7f 7f 7f 7f 7f 81 7f 7f 81 7f 81 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 81 7f 7f 7f 7f 7f 7f 81 7f 81 7f 7f 7f 7f 81 7f 7f 7f
+7f 81 7f 81 7f 7f 7f 7f 7f 7f 81 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 81 7f 7f 7f 7f 7f 7f 81 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 81 7f 7f 7f 7f 81 81 7f 7f 7f 7f 81 7f 7f 81 7f 7f 7f 7f 7f 7f 7f 7f 81 7f 7f 7f 7f 7f 7f 81 7f 7f 7f 7f 7f 7f 7f 7f 81 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 81 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f
+Decoded: 03 03 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
xcch_decode: n_errors=60 n_bits_total=456 ber=0.13
+
+Encoding: a3 af 5f c6 36 43 44 ab d9 6d 7d 62 24 c9 d2 92 fa 27 5d 71 7a 59 a8
+U-Bits:
+100101111001010011001000001110111100100110011000010001010 01 01 001010000001111000110110001010011010011101101010100000000
+101010010101101011000100001001011101101110100001100010101 01 01 000000001101011111000011000010110011110101111111101010010
+001001110100011001111111100011010111101010110100100000010 01 01 110111000100010000101000011001100101001000000011111111000
+100100110110111001001001101000011110001111000101111101011 01 01 000101111010101001011000100010000011000011010010100001011
+S-Bits:
+81 7f 7f 81 7f 81 81 81 81 7f 7f 81 7f 81 7f 7f 81 81 7f 7f 81 7f 7f 7f 7f 7f 81 81 81 7f 81 81 81 81 7f 7f 81 7f 7f 81 81 7f 7f 81 81 7f 7f 7f 7f 81 7f 7f 7f 81 7f 81 7f 81 81 7f 7f 81 7f 81 7f 7f 7f 7f 7f 7f 81 81 81 81 7f 7f 7f 81 81 7f 81 81 7f 7f 7f 81 7f 81 7f 7f 81 81 7f 81 7f 7f 81 81 81 7f 81 81 7f 81 7f 81 7f 81 7f 7f 7f 7f 7f 7f 7f 7f
+81 7f 81 7f 81 7f 7f 81 7f 81 7f 81 81 7f 81 7f 81 81 7f 7f 7f 81 7f 7f 7f 7f 81 7f 7f 81 7f 81 81 81 7f 81 81 7f 81 81 81 7f 81 7f 7f 7f 7f 81 81 7f 7f 7f 81 7f 81 7f 81 81 81 7f 7f 7f 7f 7f 7f 7f 7f 81 81 7f 81 7f 81 81 81 81 81 7f 7f 7f 7f 81 81 7f 7f 7f 7f 81 7f 81 81 7f 7f 81 81 81 81 7f 81 7f 81 81 81 81 81 81 81 81 7f 81 7f 81 7f 7f 81 7f
+7f 7f 81 7f 7f 81 81 81 7f 81 7f 7f 7f 81 81 7f 7f 81 81 81 81 81 81 81 81 7f 7f 7f 81 81 7f 81 7f 81 81 81 81 7f 81 7f 81 7f 81 81 7f 81 7f 7f 81 7f 7f 7f 7f 7f 7f 81 7f 81 81 81 81 7f 81 81 81 7f 7f 7f 81 7f 7f 7f 81 7f 7f 7f 7f 81 7f 81 7f 7f 7f 7f 81 81 7f 7f 81 81 7f 7f 81 7f 81 7f 7f 81 7f 7f 7f 7f 7f 7f 7f 81 81 81 81 81 81 81 81 7f 7f 7f
+81 7f 7f 81 7f 7f 81 81 7f 81 81 7f 81 81 81 7f 7f 81 7f 7f 81 7f 7f 81 81 7f 81 7f 7f 7f 7f 81 81 81 81 7f 7f 7f 81 81 81 81 7f 7f 7f 81 7f 81 81 81 81 81 7f 81 7f 81 81 81 81 7f 7f 7f 81 7f 81 81 81 81 7f 81 7f 81 7f 81 7f 7f 81 7f 81 81 7f 7f 7f 81 7f 7f 7f 81 7f 7f 7f 7f 7f 81 81 7f 7f 7f 7f 81 81 7f 81 7f 7f 81 7f 81 7f 7f 7f 7f 81 7f 81 81
+Decoded: a3 af 5f c6 36 43 44 ab d9 6d 7d 62 24 c9 d2 92 fa 27 5d 71 7a 59 a8
xcch_decode: n_errors=60 n_bits_total=456 ber=0.13
+
+Encoding: 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13 14 15 16 17
+U-Bits:
+111011100001111000010010111001000101001111000001010011101 01 01 110111110010100101110100100110001010110111110101111000100
+001110111011000100010011110000011010111001101111100101001 01 01 011000101000100010001101111101001010100111011101100010110
+000000001111110110011100001111111010110111011100100101101 01 01 010101010010111011101110000010101000011111101110010011100
+110100100101000000000101110110000111001011111010101101110 01 01 110110010111110101010011111011010010110000100000011111101
+S-Bits:
+81 81 81 7f 81 81 81 7f 7f 7f 7f 81 81 81 81 7f 7f 7f 7f 81 7f 7f 81 7f 81 81 81 7f 7f 81 7f 7f 7f 81 7f 81 7f 7f 81 81 81 81 7f 7f 7f 7f 7f 81 7f 81 7f 7f 81 81 81 7f 81 81 81 81 81 7f 81 81 81 81 81 7f 7f 81 7f 81 7f 7f 81 7f 81 81 81 7f 81 7f 7f 81 7f 7f 81 81 7f 7f 7f 81 7f 81 7f 81 81 7f 81 81 81 81 81 7f 81 7f 81 81 81 81 7f 7f 7f 81 7f 7f
+7f 7f 81 81 81 7f 81 81 81 7f 81 81 7f 7f 7f 81 7f 7f 7f 81 7f 7f 81 81 81 81 7f 7f 7f 7f 7f 81 81 7f 81 7f 81 81 81 7f 7f 81 81 7f 81 81 81 81 81 7f 7f 81 7f 81 7f 7f 81 81 81 7f 81 81 7f 7f 7f 81 7f 81 7f 7f 7f 81 7f 7f 7f 81 7f 7f 7f 81 81 7f 81 81 81 81 81 7f 81 7f 7f 81 7f 81 7f 81 7f 7f 81 81 81 7f 81 81 81 7f 81 81 7f 7f 7f 81 7f 81 81 7f
+7f 7f 7f 7f 7f 7f 7f 7f 81 81 81 81 81 81 7f 81 81 7f 7f 81 81 81 7f 7f 7f 7f 81 81 81 81 81 81 81 7f 81 7f 81 81 7f 81 81 81 7f 81 81 81 7f 7f 81 7f 7f 81 7f 81 81 7f 81 81 81 7f 81 7f 81 7f 81 7f 81 7f 7f 81 7f 81 81 81 7f 81 81 81 7f 81 81 81 7f 7f 7f 7f 7f 81 7f 81 7f 81 7f 7f 7f 7f 81 81 81 81 81 81 7f 81 81 81 7f 7f 81 7f 7f 81 81 81 7f 7f
+81 81 7f 81 7f 7f 81 7f 7f 81 7f 81 7f 7f 7f 7f 7f 7f 7f 7f 7f 81 7f 81 81 81 7f 81 81 7f 7f 7f 7f 81 81 81 7f 7f 81 7f 81 81 81 81 81 7f 81 7f 81 7f 81 81 7f 81 81 81 7f 81 81 81 81 7f 81 81 7f 7f 81 7f 81 81 81 81 81 7f 81 7f 81 7f 81 7f 7f 81 81 81 81 81 7f 81 81 7f 81 7f 7f 81 7f 81 81 7f 7f 7f 7f 81 7f 7f 7f 7f 7f 7f 81 81 81 81 81 81 7f 81
+Decoded: 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13 14 15 16 17
xcch_decode: n_errors=60 n_bits_total=456 ber=0.13
+
+Encoding: 00
+U-Bits: 000000000000000000000000000000000000
+S-Bits: 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f
+Decoded: 00
+
+Encoding: 00
+U-Bits: 000000000000000011101001101001000011
+S-Bits: 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 81 81 81 7f 81 7f 7f 81 81 7f 81 7f 7f 81 7f 7f 7f 7f 81 81
+Decoded: 00
+
+Encoding: 00
+U-Bits: 000000000000000011010000101110111111
+S-Bits: 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 81 81 7f 81 7f 7f 7f 7f 81 7f 81 81 81 7f 81 81 81 81 81 81
+Decoded: 00
+
+Encoding: 01
+U-Bits: 110100111100000000111010100000110000
+S-Bits: 81 81 7f 81 7f 7f 81 81 81 81 7f 7f 7f 7f 7f 7f 7f 7f 81 81 81 7f 81 7f 81 7f 7f 7f 7f 7f 81 81 7f 7f 7f 7f
+Decoded: 01
+
+Encoding: 01
+U-Bits: 110100111100000011010011001001110011
+S-Bits: 81 81 7f 81 7f 7f 81 81 81 81 7f 7f 7f 7f 7f 7f 81 81 7f 81 7f 7f 81 81 7f 7f 81 7f 7f 81 81 81 7f 7f 81 81
+Decoded: 01
+
+Encoding: 01
+U-Bits: 110100111100000011101010001110001111
+S-Bits: 81 81 7f 81 7f 7f 81 81 81 81 7f 7f 7f 7f 7f 7f 81 81 81 7f 81 7f 81 7f 7f 7f 81 81 81 7f 7f 7f 81 81 81 81
+Decoded: 01
+
+Encoding: 02
+U-Bits: 001101001111000000001110101000001100
+S-Bits: 7f 7f 81 81 7f 81 7f 7f 81 81 81 81 7f 7f 7f 7f 7f 7f 7f 7f 81 81 81 7f 81 7f 81 7f 7f 7f 7f 7f 81 81 7f 7f
+Decoded: 02
+
+Encoding: 02
+U-Bits: 001101001111000011100111000001001111
+S-Bits: 7f 7f 81 81 7f 81 7f 7f 81 81 81 81 7f 7f 7f 7f 81 81 81 7f 7f 81 81 81 7f 7f 7f 7f 7f 81 7f 7f 81 81 81 81
+Decoded: 02
+
+Encoding: 02
+U-Bits: 001101001111000011011110000110110011
+S-Bits: 7f 7f 81 81 7f 81 7f 7f 81 81 81 81 7f 7f 7f 7f 81 81 7f 81 81 81 81 7f 7f 7f 7f 81 81 7f 81 81 7f 7f 81 81
+Decoded: 02
+
+Encoding: 03
+U-Bits: 111001110011000000110100001000111100
+S-Bits: 81 81 81 7f 7f 81 81 81 7f 7f 81 81 7f 7f 7f 7f 7f 7f 81 81 7f 81 7f 7f 7f 7f 81 7f 7f 7f 81 81 81 81 7f 7f
+Decoded: 03
+
+Encoding: 03
+U-Bits: 111001110011000011011101100001111111
+S-Bits: 81 81 81 7f 7f 81 81 81 7f 7f 81 81 7f 7f 7f 7f 81 81 7f 81 81 81 7f 81 81 7f 7f 7f 7f 81 81 81 81 81 81 81
+Decoded: 03
+
+Encoding: 03
+U-Bits: 111001110011000011100100100110000011
+S-Bits: 81 81 81 7f 7f 81 81 81 7f 7f 81 81 7f 7f 7f 7f 81 81 81 7f 7f 81 7f 7f 81 7f 7f 81 81 7f 7f 7f 7f 7f 81 81
+Decoded: 03
+
+Encoding: 04
+U-Bits: 000011010011110000000011101010000011
+S-Bits: 7f 7f 7f 7f 81 81 7f 81 7f 7f 81 81 81 81 7f 7f 7f 7f 7f 7f 7f 7f 81 81 81 7f 81 7f 81 7f 7f 7f 7f 7f 81 81
+Decoded: 04
+
+Encoding: 04
+U-Bits: 000011010011110011101010000011000000
+S-Bits: 7f 7f 7f 7f 81 81 7f 81 7f 7f 81 81 81 81 7f 7f 81 81 81 7f 81 7f 81 7f 7f 7f 7f 7f 81 81 7f 7f 7f 7f 7f 7f
+Decoded: 04
+
+Encoding: 04
+U-Bits: 000011010011110011010011000100111100
+S-Bits: 7f 7f 7f 7f 81 81 7f 81 7f 7f 81 81 81 81 7f 7f 81 81 7f 81 7f 7f 81 81 7f 7f 7f 81 7f 7f 81 81 81 81 7f 7f
+Decoded: 04
+
+Encoding: 05
+U-Bits: 110111101111110000111001001010110011
+S-Bits: 81 81 7f 81 81 81 81 7f 81 81 81 81 81 81 7f 7f 7f 7f 81 81 81 7f 7f 81 7f 7f 81 7f 81 7f 81 81 7f 7f 81 81
+Decoded: 05
+
+Encoding: 05
+U-Bits: 110111101111110011010000100011110000
+S-Bits: 81 81 7f 81 81 81 81 7f 81 81 81 81 81 81 7f 7f 81 81 7f 81 7f 7f 7f 7f 81 7f 7f 7f 81 81 81 81 7f 7f 7f 7f
+Decoded: 05
+
+Encoding: 05
+U-Bits: 110111101111110011101001100100001100
+S-Bits: 81 81 7f 81 81 81 81 7f 81 81 81 81 81 81 7f 7f 81 81 81 7f 81 7f 7f 81 81 7f 7f 81 7f 7f 7f 7f 81 81 7f 7f
+Decoded: 05
+
+Encoding: 06
+U-Bits: 001110011100110000001101000010001111
+S-Bits: 7f 7f 81 81 81 7f 7f 81 81 81 7f 7f 81 81 7f 7f 7f 7f 7f 7f 81 81 7f 81 7f 7f 7f 7f 81 7f 7f 7f 81 81 81 81
+Decoded: 06
+
+Encoding: 06
+U-Bits: 001110011100110011100100101011001100
+S-Bits: 7f 7f 81 81 81 7f 7f 81 81 81 7f 7f 81 81 7f 7f 81 81 81 7f 7f 81 7f 7f 81 7f 81 7f 81 81 7f 7f 81 81 7f 7f
+Decoded: 06
+
+Encoding: 06
+U-Bits: 001110011100110011011101101100110000
+S-Bits: 7f 7f 81 81 81 7f 7f 81 81 81 7f 7f 81 81 7f 7f 81 81 7f 81 81 81 7f 81 81 7f 81 81 7f 7f 81 81 7f 7f 7f 7f
+Decoded: 06
+
+Encoding: 07
+U-Bits: 111010100000110000110111100010111111
+S-Bits: 81 81 81 7f 81 7f 81 7f 7f 7f 7f 7f 81 81 7f 7f 7f 7f 81 81 7f 81 81 81 81 7f 7f 7f 81 7f 81 81 81 81 81 81
+Decoded: 07
+
+Encoding: 07
+U-Bits: 111010100000110011011110001011111100
+S-Bits: 81 81 81 7f 81 7f 81 7f 7f 7f 7f 7f 81 81 7f 7f 81 81 7f 81 81 81 81 7f 7f 7f 81 7f 81 81 81 81 81 81 7f 7f
+Decoded: 07
+
+Encoding: 07
+U-Bits: 111010100000110011100111001100000000
+S-Bits: 81 81 81 7f 81 7f 81 7f 7f 7f 7f 7f 81 81 7f 7f 81 81 81 7f 7f 81 81 81 7f 7f 81 81 7f 7f 7f 7f 7f 7f 7f 7f
+Decoded: 07
+
+Encoding: 08
+U-Bits: 000000110100111111100100011111110000
+S-Bits: 7f 7f 7f 7f 7f 7f 81 81 7f 81 7f 7f 81 81 81 81 81 81 81 7f 7f 81 7f 7f 7f 81 81 81 81 81 81 81 7f 7f 7f 7f
+Decoded: 08
+
+Encoding: 08
+U-Bits: 000000110100111100001101110110110011
+S-Bits: 7f 7f 7f 7f 7f 7f 81 81 7f 81 7f 7f 81 81 81 81 7f 7f 7f 7f 81 81 7f 81 81 81 7f 81 81 7f 81 81 7f 7f 81 81
+Decoded: 08
+
+Encoding: 08
+U-Bits: 000000110100111100110100110001001111
+S-Bits: 7f 7f 7f 7f 7f 7f 81 81 7f 81 7f 7f 81 81 81 81 7f 7f 81 81 7f 81 7f 7f 81 81 7f 7f 7f 81 7f 7f 81 81 81 81
+Decoded: 08
+
+Encoding: 09
+U-Bits: 110100001000111111011110111111000000
+S-Bits: 81 81 7f 81 7f 7f 7f 7f 81 7f 7f 7f 81 81 81 81 81 81 7f 81 81 81 81 7f 81 81 81 81 81 81 7f 7f 7f 7f 7f 7f
+Decoded: 09
+
+Encoding: 09
+U-Bits: 110100001000111100110111010110000011
+S-Bits: 81 81 7f 81 7f 7f 7f 7f 81 7f 7f 7f 81 81 81 81 7f 7f 81 81 7f 81 81 81 7f 81 7f 81 81 7f 7f 7f 7f 7f 81 81
+Decoded: 09
+
+Encoding: 09
+U-Bits: 110100001000111100001110010001111111
+S-Bits: 81 81 7f 81 7f 7f 7f 7f 81 7f 7f 7f 81 81 81 81 7f 7f 7f 7f 81 81 81 7f 7f 81 7f 7f 7f 81 81 81 81 81 81 81
+Decoded: 09
+
+Encoding: 0a
+U-Bits: 001101111011111111101010110111111100
+S-Bits: 7f 7f 81 81 7f 81 81 81 81 7f 81 81 81 81 81 81 81 81 81 7f 81 7f 81 7f 81 81 7f 81 81 81 81 81 81 81 7f 7f
+Decoded: 0a
+
+Encoding: 0a
+U-Bits: 001101111011111100000011011110111111
+S-Bits: 7f 7f 81 81 7f 81 81 81 81 7f 81 81 81 81 81 81 7f 7f 7f 7f 7f 7f 81 81 7f 81 81 81 81 7f 81 81 81 81 81 81
+Decoded: 0a
+
+Encoding: 0a
+U-Bits: 001101111011111100111010011001000011
+S-Bits: 7f 7f 81 81 7f 81 81 81 81 7f 81 81 81 81 81 81 7f 7f 81 81 81 7f 81 7f 7f 81 81 7f 7f 81 7f 7f 7f 7f 81 81
+Decoded: 0a
+
+Encoding: 0b
+U-Bits: 111001000111111111010000010111001100
+S-Bits: 81 81 81 7f 7f 81 7f 7f 7f 81 81 81 81 81 81 81 81 81 7f 81 7f 7f 7f 7f 7f 81 7f 81 81 81 7f 7f 81 81 7f 7f
+Decoded: 0b
+
+Encoding: 0b
+U-Bits: 111001000111111100111001111110001111
+S-Bits: 81 81 81 7f 7f 81 7f 7f 7f 81 81 81 81 81 81 81 7f 7f 81 81 81 7f 7f 81 81 81 81 81 81 7f 7f 7f 81 81 81 81
+Decoded: 0b
+
+Encoding: 0b
+U-Bits: 111001000111111100000000111001110011
+S-Bits: 81 81 81 7f 7f 81 7f 7f 7f 81 81 81 81 81 81 81 7f 7f 7f 7f 7f 7f 7f 7f 81 81 81 7f 7f 81 81 81 7f 7f 81 81
+Decoded: 0b
+
+Encoding: 0c
+U-Bits: 000011100111001111100111110101110011
+S-Bits: 7f 7f 7f 7f 81 81 81 7f 7f 81 81 81 7f 7f 81 81 81 81 81 7f 7f 81 81 81 81 81 7f 81 7f 81 81 81 7f 7f 81 81
+Decoded: 0c
+
+Encoding: 0c
+U-Bits: 000011100111001100001110011100110000
+S-Bits: 7f 7f 7f 7f 81 81 81 7f 7f 81 81 81 7f 7f 81 81 7f 7f 7f 7f 81 81 81 7f 7f 81 81 81 7f 7f 81 81 7f 7f 7f 7f
+Decoded: 0c
+
+Encoding: 0c
+U-Bits: 000011100111001100110111011011001100
+S-Bits: 7f 7f 7f 7f 81 81 81 7f 7f 81 81 81 7f 7f 81 81 7f 7f 81 81 7f 81 81 81 7f 81 81 7f 81 81 7f 7f 81 81 7f 7f
+Decoded: 0c
+
+Encoding: 0d
+U-Bits: 110111011011001111011101010101000011
+S-Bits: 81 81 7f 81 81 81 7f 81 81 7f 81 81 7f 7f 81 81 81 81 7f 81 81 81 7f 81 7f 81 7f 81 7f 81 7f 7f 7f 7f 81 81
+Decoded: 0d
+
+Encoding: 0d
+U-Bits: 110111011011001100110100111100000000
+S-Bits: 81 81 7f 81 81 81 7f 81 81 7f 81 81 7f 7f 81 81 7f 7f 81 81 7f 81 7f 7f 81 81 81 81 7f 7f 7f 7f 7f 7f 7f 7f
+Decoded: 0d
+
+Encoding: 0d
+U-Bits: 110111011011001100001101111011111100
+S-Bits: 81 81 7f 81 81 81 7f 81 81 7f 81 81 7f 7f 81 81 7f 7f 7f 7f 81 81 7f 81 81 81 81 7f 81 81 81 81 81 81 7f 7f
+Decoded: 0d
+
+Encoding: 0e
+U-Bits: 001110101000001111101001011101111111
+S-Bits: 7f 7f 81 81 81 7f 81 7f 81 7f 7f 7f 7f 7f 81 81 81 81 81 7f 81 7f 7f 81 7f 81 81 81 7f 81 81 81 81 81 81 81
+Decoded: 0e
+
+Encoding: 0e
+U-Bits: 001110101000001100000000110100111100
+S-Bits: 7f 7f 81 81 81 7f 81 7f 81 7f 7f 7f 7f 7f 81 81 7f 7f 7f 7f 7f 7f 7f 7f 81 81 7f 81 7f 7f 81 81 81 81 7f 7f
+Decoded: 0e
+
+Encoding: 0e
+U-Bits: 001110101000001100111001110011000000
+S-Bits: 7f 7f 81 81 81 7f 81 7f 81 7f 7f 7f 7f 7f 81 81 7f 7f 81 81 81 7f 7f 81 81 81 7f 7f 81 81 7f 7f 7f 7f 7f 7f
+Decoded: 0e
+
+Encoding: 0f
+U-Bits: 111010010100001111010011111101001111
+S-Bits: 81 81 81 7f 81 7f 7f 81 7f 81 7f 7f 7f 7f 81 81 81 81 7f 81 7f 7f 81 81 81 81 81 81 7f 81 7f 7f 81 81 81 81
+Decoded: 0f
+
+Encoding: 0f
+U-Bits: 111010010100001100111010010100001100
+S-Bits: 81 81 81 7f 81 7f 7f 81 7f 81 7f 7f 7f 7f 81 81 7f 7f 81 81 81 7f 81 7f 7f 81 7f 81 7f 7f 7f 7f 81 81 7f 7f
+Decoded: 0f
+
+Encoding: 0f
+U-Bits: 111010010100001100000011010011110000
+S-Bits: 81 81 81 7f 81 7f 7f 81 7f 81 7f 7f 7f 7f 81 81 7f 7f 7f 7f 7f 7f 81 81 7f 81 7f 7f 81 81 81 81 7f 7f 7f 7f
+Decoded: 0f
+
+Encoding: 10
+U-Bits: 000000001101001111111001000111111100
+S-Bits: 7f 7f 7f 7f 7f 7f 7f 7f 81 81 7f 81 7f 7f 81 81 81 81 81 81 81 7f 7f 81 7f 7f 7f 81 81 81 81 81 81 81 7f 7f
+Decoded: 10
+
+Encoding: 10
+U-Bits: 000000001101001100010000101110111111
+S-Bits: 7f 7f 7f 7f 7f 7f 7f 7f 81 81 7f 81 7f 7f 81 81 7f 7f 7f 81 7f 7f 7f 7f 81 7f 81 81 81 7f 81 81 81 81 81 81
+Decoded: 10
+
+Encoding: 10
+U-Bits: 000000001101001100101001101001000011
+S-Bits: 7f 7f 7f 7f 7f 7f 7f 7f 81 81 7f 81 7f 7f 81 81 7f 7f 81 7f 81 7f 7f 81 81 7f 81 7f 7f 81 7f 7f 7f 7f 81 81
+Decoded: 10
+
+Encoding: 11
+U-Bits: 110100110001001111000011100111001100
+S-Bits: 81 81 7f 81 7f 7f 81 81 7f 7f 7f 81 7f 7f 81 81 81 81 7f 7f 7f 7f 81 81 81 7f 7f 81 81 81 7f 7f 81 81 7f 7f
+Decoded: 11
+
+Encoding: 11
+U-Bits: 110100110001001100101010001110001111
+S-Bits: 81 81 7f 81 7f 7f 81 81 7f 7f 7f 81 7f 7f 81 81 7f 7f 81 7f 81 7f 81 7f 7f 7f 81 81 81 7f 7f 7f 81 81 81 81
+Decoded: 11
+
+Encoding: 11
+U-Bits: 110100110001001100010011001001110011
+S-Bits: 81 81 7f 81 7f 7f 81 81 7f 7f 7f 81 7f 7f 81 81 7f 7f 7f 81 7f 7f 81 81 7f 7f 81 7f 7f 81 81 81 7f 7f 81 81
+Decoded: 11
+
+Encoding: 12
+U-Bits: 001101000010001111110111101111110000
+S-Bits: 7f 7f 81 81 7f 81 7f 7f 7f 7f 81 7f 7f 7f 81 81 81 81 81 81 7f 81 81 81 81 7f 81 81 81 81 81 81 7f 7f 7f 7f
+Decoded: 12
+
+Encoding: 12
+U-Bits: 001101000010001100011110000110110011
+S-Bits: 7f 7f 81 81 7f 81 7f 7f 7f 7f 81 7f 7f 7f 81 81 7f 7f 7f 81 81 81 81 7f 7f 7f 7f 81 81 7f 81 81 7f 7f 81 81
+Decoded: 12
+
+Encoding: 12
+U-Bits: 001101000010001100100111000001001111
+S-Bits: 7f 7f 81 81 7f 81 7f 7f 7f 7f 81 7f 7f 7f 81 81 7f 7f 81 7f 7f 81 81 81 7f 7f 7f 7f 7f 81 7f 7f 81 81 81 81
+Decoded: 12
+
+Encoding: 13
+U-Bits: 111001111110001111001101001111000000
+S-Bits: 81 81 81 7f 7f 81 81 81 81 81 81 7f 7f 7f 81 81 81 81 7f 7f 81 81 7f 81 7f 7f 81 81 81 81 7f 7f 7f 7f 7f 7f
+Decoded: 13
+
+Encoding: 13
+U-Bits: 111001111110001100100100100110000011
+S-Bits: 81 81 81 7f 7f 81 81 81 81 81 81 7f 7f 7f 81 81 7f 7f 81 7f 7f 81 7f 7f 81 7f 7f 81 81 7f 7f 7f 7f 7f 81 81
+Decoded: 13
+
+Encoding: 13
+U-Bits: 111001111110001100011101100001111111
+S-Bits: 81 81 81 7f 7f 81 81 81 81 81 81 7f 7f 7f 81 81 7f 7f 7f 81 81 81 7f 81 81 7f 7f 7f 7f 81 81 81 81 81 81 81
+Decoded: 13
+
+Encoding: 14
+U-Bits: 000011011110111111111010101101111111
+S-Bits: 7f 7f 7f 7f 81 81 7f 81 81 81 81 7f 81 81 81 81 81 81 81 81 81 7f 81 7f 81 7f 81 81 7f 81 81 81 81 81 81 81
+Decoded: 14
+
+Encoding: 14
+U-Bits: 000011011110111100010011000100111100
+S-Bits: 7f 7f 7f 7f 81 81 7f 81 81 81 81 7f 81 81 81 81 7f 7f 7f 81 7f 7f 81 81 7f 7f 7f 81 7f 7f 81 81 81 81 7f 7f
+Decoded: 14
+
+Encoding: 14
+U-Bits: 000011011110111100101010000011000000
+S-Bits: 7f 7f 7f 7f 81 81 7f 81 81 81 81 7f 81 81 81 81 7f 7f 81 7f 81 7f 81 7f 7f 7f 7f 7f 81 81 7f 7f 7f 7f 7f 7f
+Decoded: 14
+
+Encoding: 15
+U-Bits: 110111100010111111000000001101001111
+S-Bits: 81 81 7f 81 81 81 81 7f 7f 7f 81 7f 81 81 81 81 81 81 7f 7f 7f 7f 7f 7f 7f 7f 81 81 7f 81 7f 7f 81 81 81 81
+Decoded: 15
+
+Encoding: 15
+U-Bits: 110111100010111100101001100100001100
+S-Bits: 81 81 7f 81 81 81 81 7f 7f 7f 81 7f 81 81 81 81 7f 7f 81 7f 81 7f 7f 81 81 7f 7f 81 7f 7f 7f 7f 81 81 7f 7f
+Decoded: 15
+
+Encoding: 15
+U-Bits: 110111100010111100010000100011110000
+S-Bits: 81 81 7f 81 81 81 81 7f 7f 7f 81 7f 81 81 81 81 7f 7f 7f 81 7f 7f 7f 7f 81 7f 7f 7f 81 81 81 81 7f 7f 7f 7f
+Decoded: 15
+
+Encoding: 16
+U-Bits: 001110010001111111110100000101110011
+S-Bits: 7f 7f 81 81 81 7f 7f 81 7f 7f 7f 81 81 81 81 81 81 81 81 81 7f 81 7f 7f 7f 7f 7f 81 7f 81 81 81 7f 7f 81 81
+Decoded: 16
+
+Enc