void test_encode(void) { QRinput *stream; char num[9] = "01234567"; unsigned char *frame; int err = 0; int x, y, w; int mask; QRcode *qrcode; testStart("Test encode (1-M)"); stream = QRinput_new(); QRinput_append(stream, QR_MODE_NUM, 8, (unsigned char *)num); for(mask=0; mask<8; mask++) { QRinput_setVersion(stream, 1); QRinput_setErrorCorrectionLevel(stream, QR_ECLEVEL_M); qrcode = QRcode_encodeMask(stream, mask); w = qrcode->width; frame = qrcode->data; for(y=0; y<w; y++) { for(x=0; x<w; x++) { if(((m1pat[mask][y] >> (20-x)) & 1) != (frame[y*w+x]&1)) { printf("Diff in mask=%d (%d,%d)\n", mask, x, y); err++; } } } QRcode_free(qrcode); } QRinput_free(stream); testEnd(err); }
void test_iterate() { int i; QRinput *stream; char num[9] = "01234567"; unsigned char *data; QRRawCode *raw; int err = 0; testStart("Test getCode (1-L)"); stream = QRinput_new(); QRinput_setVersion(stream, 1); QRinput_setErrorCorrectionLevel(stream, QR_ECLEVEL_L); QRinput_append(stream, QR_MODE_NUM, 8, (unsigned char *)num); raw = QRraw_new(stream); data = raw->datacode; for(i=0; i<raw->dataLength; i++) { if(data[i] != QRraw_getCode(raw)) { err++; } } QRinput_free(stream); QRraw_free(raw); testEnd(err); }
void test_mqr_setversion(void) { QRinput *input; int ret; testStart("Testing QRinput_setVersion() for MQR."); input = QRinput_newMQR(1, QR_ECLEVEL_L); ret = QRinput_setVersion(input, 2); assert_exp((ret < 0), "QRinput_setVersion should be denied.\n"); QRinput_free(input); testFinish(); }
void draw_structuredQRcodeFromQRinput(QRinput *stream) { QRinput_Struct *s; QRinput_setVersion(stream, version); QRinput_setErrorCorrectionLevel(stream, level); s = QRinput_splitQRinputToStruct(stream); if(s != NULL) { draw_structuredQRcode(s); QRinput_Struct_free(s); } else { fprintf(stderr, "Input data is too large for this setting.\n"); } }
static int check_lengthOfCode(QRencodeMode mode, char *data, int size, int version) { QRinput *input; BitStream *b; int bits; int bytes; input = QRinput_new(); QRinput_setVersion(input, version); QRinput_append(input, mode, size, (unsigned char *)data); b = QRinput_mergeBitStream(input); bits = BitStream_size(b); bytes = QRinput_lengthOfCode(mode, version, bits); QRinput_free(input); BitStream_free(b); return bytes; }
void test_iterate2() { int i; QRinput *stream; char num[9] = "01234567"; QRRawCode *raw; int err = 0; unsigned char correct[] = { 0x10, 0x11, 0xec, 0xec, 0x20, 0xec, 0x11, 0x11, 0x0c, 0x11, 0xec, 0xec, 0x56, 0xec, 0x11, 0x11, 0x61, 0x11, 0xec, 0xec, 0x80, 0xec, 0x11, 0x11, 0xec, 0x11, 0xec, 0xec, 0x11, 0xec, 0x11, 0x11, 0xec, 0x11, 0xec, 0xec, 0x11, 0xec, 0x11, 0x11, 0xec, 0x11, 0xec, 0xec, 0x11, 0x11, 0x5c, 0xde, 0x68, 0x68, 0x4d, 0xb3, 0xdb, 0xdb, 0xd5, 0x14, 0xe1, 0xe1, 0x5b, 0x2a, 0x1f, 0x1f, 0x49, 0xc4, 0x78, 0x78, 0xf7, 0xe0, 0x5b, 0x5b, 0xc3, 0xa7, 0xc1, 0xc1, 0x5d, 0x9a, 0xea, 0xea, 0x48, 0xad, 0x9d, 0x9d, 0x58, 0xb3, 0x3f, 0x3f, 0x10, 0xdb, 0xbf, 0xbf, 0xeb, 0xec, 0x05, 0x05, 0x98, 0x35, 0x83, 0x83, 0xa9, 0x95, 0xa6, 0xa6, 0xea, 0x7b, 0x8d, 0x8d, 0x04, 0x3c, 0x08, 0x08, 0x64, 0xce, 0x3e, 0x3e, 0x4d, 0x9b, 0x30, 0x30, 0x4e, 0x65, 0xd6, 0xd6, 0xe4, 0x53, 0x2c, 0x2c, 0x46, 0x1d, 0x2e, 0x2e, 0x29, 0x16, 0x27, 0x27 }; testStart("Test getCode (5-H)"); stream = QRinput_new(); QRinput_setVersion(stream, 5); QRinput_setErrorCorrectionLevel(stream, QR_ECLEVEL_H); QRinput_append(stream, QR_MODE_NUM, 8, (unsigned char *)num); raw = QRraw_new(stream); for(i=0; i<raw->dataLength; i++) { if(correct[i] != QRraw_getCode(raw)) { err++; } } QRinput_free(stream); QRraw_free(raw); testEnd(err); }
void draw_singleQRcode(QRinput *stream, int mask) { QRcode *qrcode; int width; QRinput_setVersion(stream, version); QRinput_setErrorCorrectionLevel(stream, level); qrcode = QRcode_encodeMask(stream, mask); if(qrcode == NULL) return; version = qrcode->version; width = (qrcode->width + margin * 2) * size; screen = SDL_SetVideoMode(width, width, 32, 0); SDL_FillRect(screen, NULL, 0xffffff); draw_QRcode(qrcode, 0, 0); SDL_Flip(screen); QRcode_free(qrcode); }
void test_qrraw_new(void) { int i; QRinput *stream; char num[9] = "01234567"; QRRawCode *raw; testStart("Test QRRaw_new()"); stream = QRinput_new(); QRinput_setVersion(stream, 10); QRinput_setErrorCorrectionLevel(stream, QR_ECLEVEL_Q); QRinput_append(stream, QR_MODE_NUM, 8, (unsigned char *)num); raw = QRraw_new(stream); assert_nonnull(raw, "Failed QRraw_new().\n"); assert_zero(raw->count, "QRraw.count = %d != 0\n", raw->count); assert_equal(raw->version, 10, "QRraw.version was not as expected. (%d)\n", raw->version); assert_equal(raw->dataLength, 19 * 6 + 20 * 2, "QRraw.dataLength was not as expected.\n"); assert_equal(raw->eccLength, 24 * 8, "QRraw.eccLength was not as expected.\n"); assert_equal(raw->b1, 6, "QRraw.b1 was not as expected.\n"); assert_equal(raw->blocks, 8, "QRraw.blocks was not as expected.\n"); for(i=0; i<raw->b1; i++) { assert_equal(raw->rsblock[i].dataLength, 19, "QRraw.rsblock[].dataLength was not as expected.\n"); } for(i=raw->b1; i<raw->blocks; i++) { assert_equal(raw->rsblock[i].dataLength, 20, "QRraw.rsblock[].dataLength was not as expected.\n"); } for(i=0; i<raw->blocks; i++) { assert_equal(raw->rsblock[i].eccLength, 24, "QRraw.rsblock[].eccLength was not as expected.\n"); } QRinput_free(stream); QRraw_free(raw); testFinish(); }