static QRcode *QRcode_encodeDataReal(const unsigned char *data, int length, int version, QRecLevel level, int mqr) { QRinput *input; QRcode *code; int ret; if(data == NULL || length == 0) { errno = EINVAL; return NULL; } if(mqr) { input = QRinput_newMQR(version, level); } else { input = QRinput_new2(version, level); } if(input == NULL) return NULL; ret = QRinput_append(input, QR_MODE_8, length, data); if(ret < 0) { QRinput_free(input); return NULL; } code = QRcode_encodeInput(input); QRinput_free(input); return code; }
int encodeAndCheckBStream(int mqr, int version, QRecLevel level, QRencodeMode mode, char *data, char *correct) { QRinput *input; BitStream *bstream; int ret; if(mqr) { input = QRinput_newMQR(version, level); } else { input = QRinput_new2(version, level); } QRinput_append(input, mode, strlen(data), (unsigned char *)data); bstream = BitStream_new(); QRinput_getBitStream(input, bstream); ret = cmpBin(correct, bstream); if(ret) { printf("result : "); printBstream(bstream); printf("correct: %s\n", correct); } QRinput_free(input); BitStream_free(bstream); return ret; }
static QRcode *QRcode_encodeStringReal(const char *string, int version, QRecLevel level, int mqr, QRencodeMode hint, int casesensitive) { QRinput *input; QRcode *code; int ret; if(string == NULL) { errno = EINVAL; return NULL; } if(hint != QR_MODE_8 && hint != QR_MODE_KANJI) { errno = EINVAL; return NULL; } if(mqr) { input = QRinput_newMQR(version, level); } else { input = QRinput_new2(version, level); } if(input == NULL) return NULL; ret = Split_splitStringToQRinput(string, input, hint, casesensitive); if(ret < 0) { QRinput_free(input); return NULL; } code = QRcode_encodeInput(input); QRinput_free(input); return code; }
void test_mqr_setlevel(void) { QRinput *input; int ret; testStart("Testing QRinput_setErrorCorrectionLevel() for MQR."); input = QRinput_newMQR(1, QR_ECLEVEL_L); ret = QRinput_setErrorCorrectionLevel(input, QR_ECLEVEL_M); assert_exp((ret < 0), "QRinput_setErrorCorrectionLevel should be denied.\n"); QRinput_free(input); testFinish(); }
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 test_mqr_new(void) { QRinput *input; testStart("Testing QRinput_newMQR()."); input = QRinput_newMQR(0, QR_ECLEVEL_L); assert_null(input, "Version 0 passed.\n"); QRinput_free(input); input = QRinput_newMQR(5, QR_ECLEVEL_L); assert_null(input, "Version 5 passed.\n"); QRinput_free(input); input = QRinput_newMQR(1, QR_ECLEVEL_M); assert_null(input, "Invalid ECLEVEL passed.\n"); QRinput_free(input); input = QRinput_newMQR(1, QR_ECLEVEL_L); assert_equal(input->version, 1, "QRinput.version was not as expected.\n"); assert_equal(input->level, QR_ECLEVEL_L, "QRinput.version was not as expected.\n"); QRinput_free(input); testFinish(); }
int mergeAndCheckBStream(int mqr, QRencodeMode mode, char *data, char *correct) { QRinput *input; BitStream *bstream; int ret; if(mqr) { input = QRinput_newMQR(1, QR_ECLEVEL_L); } else { input = QRinput_new(); } QRinput_append(input, mode, strlen(data), (unsigned char *)data); bstream = BitStream_new(); QRinput_mergeBitStream(input, bstream); ret = cmpBin(correct, bstream); QRinput_free(input); BitStream_free(bstream); return ret; }
void test_mqrraw_new(void) { QRinput *stream; char *num = "01234"; unsigned char datacode[] = {0xa0, 0x62, 0x02}; MQRRawCode *raw; testStart("Test MQRRaw_new()"); stream = QRinput_newMQR(1, QR_ECLEVEL_L); QRinput_append(stream, QR_MODE_NUM, 5, (unsigned char *)num); raw = MQRraw_new(stream); assert_nonnull(raw, "Failed MQRraw_new().\n"); assert_zero(raw->count, "MQRraw.count = %d != 0\n", raw->count); assert_equal(raw->version, 1, "MQRraw.version was not as expected. (%d)\n", raw->version); assert_equal(raw->dataLength, 3, "MQRraw.dataLength was not as expected.\n"); assert_equal(raw->eccLength, 2, "MQRraw.eccLength was not as expected.\n"); assert_zero(memcmp(raw->datacode, datacode, 3), "Datacode doesn't match.\n"); QRinput_free(stream); MQRraw_free(raw); testFinish(); }