⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 test_estimatebit.c

📁 二维码QR的linux平台下的编码源代码
💻 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);	testEndExp(bits == 1362);	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_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 + 1362 + 41 + 76 + 38));	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_mix();	report();	return 0;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -