diff --git a/src/qrcode/cpp_port/test/QRBitMatrixParserTest.cpp b/src/qrcode/cpp_port/test/QRBitMatrixParserTest.cpp deleted file mode 100644 index f8c5a93..0000000 --- a/src/qrcode/cpp_port/test/QRBitMatrixParserTest.cpp +++ /dev/null @@ -1,73 +0,0 @@ -/* - * Copyright 2017 Huy Cuong Nguyen - * Copyright 2008 ZXing authors -*/ -// SPDX-License-Identifier: Apache-2.0 - -#include "BitMatrix.h" -#include "BitMatrixIO.h" -#include "ByteArray.h" -#include "qrcode/QRBitMatrixParser.h" -#include "qrcode/QRFormatInformation.h" -#include "qrcode/QRVersion.h" - -#include "gtest/gtest.h" - -using namespace ZXing; -using namespace ZXing::QRCode; - -TEST(QRBitMatrixParserTest, MQRCodeM3L) -{ - const auto bitMatrix = ParseBitMatrix("XXXXXXX X X X X\n" - "X X X X \n" - "X XXX X XXXXXXX\n" - "X XXX X X X XX\n" - "X XXX X X XX\n" - "X X X X X X\n" - "XXXXXXX X XX \n" - " X X X\n" - "XXXXXX X X X\n" - " X XX XXX\n" - "XXX XX XXXX XXX\n" - " X X XXX X \n" - "X XXXXX XXX X X\n" - " X X X XXX \n" - "XXX XX X X XXXX\n", - 88, false); - - const auto version = ReadVersion(bitMatrix); - EXPECT_EQ(3, version->versionNumber()); - const auto format = ReadFormatInformation(bitMatrix, true); - const auto codewords = ReadCodewords(bitMatrix, *version, format); - EXPECT_EQ(17, codewords.size()); - EXPECT_EQ(0x0, codewords[10]); - EXPECT_EQ(0xd1, codewords[11]); -} - -TEST(QRBitMatrixParserTest, MQRCodeM3M) -{ - const auto bitMatrix = ParseBitMatrix("XXXXXXX X X X X\n" - "X X XX\n" - "X XXX X X XX XX\n" - "X XXX X X X \n" - "X XXX X XX XXXX\n" - "X X XX \n" - "XXXXXXX X XXXX\n" - " X XXX \n" - "X XX XX X X\n" - " X X XX \n" - "XX XX XXXXXXX\n" - " X X X\n" - "XX X X X \n" - " X X X \n" - "X X XXXX XXX\n", - 88, false); - - const auto version = ReadVersion(bitMatrix); - EXPECT_EQ(3, version->versionNumber()); - const auto format = ReadFormatInformation(bitMatrix, true); - const auto codewords = ReadCodewords(bitMatrix, *version, format); - EXPECT_EQ(17, codewords.size()); - EXPECT_EQ(0x0, codewords[8]); - EXPECT_EQ(0x89, codewords[9]); -} diff --git a/src/qrcode/cpp_port/test/QRBitMatrixParserTest.rs b/src/qrcode/cpp_port/test/QRBitMatrixParserTest.rs new file mode 100644 index 0000000..23563d4 --- /dev/null +++ b/src/qrcode/cpp_port/test/QRBitMatrixParserTest.rs @@ -0,0 +1,69 @@ +/* + * Copyright 2017 Huy Cuong Nguyen + * Copyright 2008 ZXing authors +*/ +// SPDX-License-Identifier: Apache-2.0 + +use crate::{qrcode::cpp_port::{ bitmatrix_parser::{ReadFormatInformation, ReadCodewords, ReadVersion}}, common::BitMatrix}; + +#[test] +fn MQRCodeM3L() +{ + let bitMatrix = + BitMatrix::parse_strings( +r"XXXXXXX X X X X +X X X X +X XXX X XXXXXXX +X XXX X X X XX +X XXX X X XX +X X X X X X +XXXXXXX X XX + X X X +XXXXXX X X X + X XX XXX +XXX XX XXXX XXX + X X XXX X +X XXXXX XXX X X + X X X XXX +XXX XX X X XXXX +", "X", " ").expect("parse must parse"); + + let version = ReadVersion(&bitMatrix).unwrap(); + assert_eq!(3, version.getVersionNumber()); + let format = ReadFormatInformation(&bitMatrix, true).expect("could not read format information"); + let codewords = ReadCodewords(&bitMatrix, version, &format).expect("could not read codewords"); + assert_eq!(17, codewords.len()); + assert_eq!(0x0, codewords[10]); + assert_eq!(0xd1, codewords[11]); +} + +#[test] +fn MQRCodeM3M() +{ + let bitMatrix = BitMatrix::parse_strings( +r"XXXXXXX X X X X +X X XX +X XXX X X XX XX +X XXX X X X +X XXX X XX XXXX +X X XX +XXXXXXX X XXXX + X XXX +X XX XX X X + X X XX +XX XX XXXXXXX + X X X +XX X X X + X X X +X X XXXX XXX +" +,"X", " ").unwrap(); + + let version = ReadVersion(&bitMatrix).unwrap(); + assert_eq!(3, version.getVersionNumber()); + let format = ReadFormatInformation(&bitMatrix, true).expect("could not read format information"); + let codewords = ReadCodewords(&bitMatrix, version, &format).expect("could not read codewords"); + assert_eq!(17, codewords.len()); + assert_eq!(0x0, codewords[8]); + assert_eq!(0x89, codewords[9]); +} diff --git a/src/qrcode/cpp_port/test/mod.rs b/src/qrcode/cpp_port/test/mod.rs index 5005ff1..b639d26 100644 --- a/src/qrcode/cpp_port/test/mod.rs +++ b/src/qrcode/cpp_port/test/mod.rs @@ -8,3 +8,5 @@ mod QRErrorCorrectionLevelTest; mod QRDecodedBitStreamParserTest; mod QRDataMaskTest; + +mod QRBitMatrixParserTest; \ No newline at end of file