23 lines
688 B
C
23 lines
688 B
C
// x-run: make clean test_bitstream run_test_bitstream
|
|
#include "./bitstream.h"
|
|
|
|
int main(void) {
|
|
BitStream bs = bitstream_init_empty(16 * 2);
|
|
bitstream_set(bs, 16 * 0 + 0, 1);
|
|
bitstream_set(bs, 16 * 2 + 2, 1);
|
|
bitstream_set(bs, 16 * 4 + 4, 1);
|
|
bitstream_set(bs, 16 * 8 + 8, 1);
|
|
bitstream_set(bs, 16 * 4 + 4, 0);
|
|
printf(" ");
|
|
for (int i = 0; i < 16; i++) printf("%2x", i);
|
|
printf("\n");
|
|
for (int i = 0; !bitstream_end(bs); i++) {
|
|
if (i % 16 == 0) printf("%2x", i >> 4);
|
|
printf("\033[%dm ", bitstream_next(&bs) \
|
|
? (i >> 4 & 1 ? 47 : 107) \
|
|
: (i >> 4 & 1 ? 40 : 100));
|
|
if (i % 16 == 15) printf("\033[0m\n");
|
|
}
|
|
bitstream_unload(&bs);
|
|
}
|