📄 test_estimatebit.c
字号:
#include <stdio.h>#include <stdlib.h>#include <string.h>#include "common.h"#include "../qrinput.h"#include "../qrencode_inner.h"QRinput *gstream;void test_numbit(void){ QRinput *stream; char num[9]="01234567"; int bits; testStart("Estimation of Numeric stream (8 digits)"); stream = QRinput_new(); QRinput_append(stream, QR_MODE_NUM, 8, (unsigned char *)num); bits = QRinput_estimateBitStreamSize(stream, 0); testEndExp(bits == 41); QRinput_append(gstream, QR_MODE_NUM, 8, (unsigned char *)num); QRinput_free(stream);}void test_numbit2(void){ QRinput *stream; char num[17]="0123456789012345"; int bits; testStart("Estimation of Numeric stream (16 digits)"); stream = QRinput_new(); QRinput_append(stream, QR_MODE_NUM, 16, (unsigned char *)num); bits = QRinput_estimateBitStreamSize(stream, 0); testEndExp(bits == 68); QRinput_append(gstream, QR_MODE_NUM, 16, (unsigned char *)num); QRinput_free(stream);}void test_numbit3(void){ QRinput *stream; char *num; int bits; testStart("Estimation of Numeric stream (400 digits)"); stream = QRinput_new(); num = (char *)malloc(401); memset(num, '1', 400); num[400] = '\0'; QRinput_append(stream, QR_MODE_NUM, 400, (unsigned char *)num); bits = QRinput_estimateBitStreamSize(stream, 0); /* 4 + 10 + 133*10 + 4 = 1348 */ testEndExp(bits == 1348); QRinput_append(gstream, QR_MODE_NUM, 400, (unsigned char *)num); QRinput_free(stream); free(num);}void test_an(void){ QRinput *stream; char str[6]="AC-42"; int bits; testStart("Estimation of Alphabet-Numeric stream (5 chars)"); stream = QRinput_new(); QRinput_append(stream, QR_MODE_AN, 5, (unsigned char *)str); bits = QRinput_estimateBitStreamSize(stream, 0); testEndExp(bits == 41); QRinput_append(gstream, QR_MODE_AN, 5, (unsigned char *)str); QRinput_free(stream);}void test_8(void){ QRinput *stream; char str[9]="12345678"; int bits; testStart("Estimation of 8 bit data stream (8 bytes)"); stream = QRinput_new(); QRinput_append(stream, QR_MODE_8, 8, (unsigned char *)str); bits = QRinput_estimateBitStreamSize(stream, 0); testEndExp(bits == 76); QRinput_append(gstream, QR_MODE_8, 8, (unsigned char *)str); QRinput_free(stream);}void test_structure(void){ QRinput *stream; int bits; testStart("Estimation of a structure-append header"); stream = QRinput_new(); QRinput_insertStructuredAppendHeader(stream, 10, 1, 0); bits = QRinput_estimateBitStreamSize(stream, 1); testEndExp(bits == 20); QRinput_insertStructuredAppendHeader(gstream, 10, 1, 0); QRinput_free(stream);}void test_kanji(void){ int res; QRinput *stream; unsigned char str[4]= {0x93, 0x5f,0xe4, 0xaa}; int bits; testStart("Estimation of Kanji stream (2 chars)"); stream = QRinput_new(); res = QRinput_append(stream, QR_MODE_KANJI, 4, (unsigned char *)str); if(res < 0) { printf("Failed to add.\n"); testEnd(1); } else { bits = QRinput_estimateBitStreamSize(stream, 0); testEndExp(bits == 38); QRinput_append(gstream, QR_MODE_KANJI, 4, (unsigned char *)str); } QRinput_free(stream);}void test_mix(void){ int bits; testStart("Estimation of Mixed stream"); bits = QRinput_estimateBitStreamSize(gstream, 0); testEndExp(bits == (41 + 68 + 1348 + 41 + 76 + 38 + 20)); QRinput_free(gstream);}int main(int argc, char **argv){ gstream = QRinput_new(); test_numbit(); test_numbit2(); test_numbit3(); test_an(); test_8(); test_kanji(); test_structure(); test_mix(); report(); return 0;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -