QRBitMatrixParserTest.cpp 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. /*
  2. * Copyright 2017 Huy Cuong Nguyen
  3. * Copyright 2008 ZXing authors
  4. */
  5. // SPDX-License-Identifier: Apache-2.0
  6. #include "BitMatrix.h"
  7. #include "BitMatrixIO.h"
  8. #include "ByteArray.h"
  9. #include "qrcode/QRBitMatrixParser.h"
  10. #include "qrcode/QRFormatInformation.h"
  11. #include "qrcode/QRVersion.h"
  12. #include "gtest/gtest.h"
  13. using namespace ZXing;
  14. using namespace ZXing::QRCode;
  15. TEST(QRBitMatrixParserTest, MQRCodeM3L)
  16. {
  17. const auto bitMatrix = ParseBitMatrix("XXXXXXX X X X X\n"
  18. "X X X X \n"
  19. "X XXX X XXXXXXX\n"
  20. "X XXX X X X XX\n"
  21. "X XXX X X XX\n"
  22. "X X X X X X\n"
  23. "XXXXXXX X XX \n"
  24. " X X X\n"
  25. "XXXXXX X X X\n"
  26. " X XX XXX\n"
  27. "XXX XX XXXX XXX\n"
  28. " X X XXX X \n"
  29. "X XXXXX XXX X X\n"
  30. " X X X XXX \n"
  31. "XXX XX X X XXXX\n",
  32. 88, false);
  33. const auto format = ReadFormatInformation(bitMatrix);
  34. const auto version = ReadVersion(bitMatrix, format.type());
  35. EXPECT_EQ(3, version->versionNumber());
  36. const auto codewords = ReadCodewords(bitMatrix, *version, format);
  37. EXPECT_EQ(17, codewords.size());
  38. EXPECT_EQ(0x0, codewords[10]);
  39. EXPECT_EQ(0xd1, codewords[11]);
  40. }
  41. TEST(QRBitMatrixParserTest, MQRCodeM3M)
  42. {
  43. const auto bitMatrix = ParseBitMatrix("XXXXXXX X X X X\n"
  44. "X X XX\n"
  45. "X XXX X X XX XX\n"
  46. "X XXX X X X \n"
  47. "X XXX X XX XXXX\n"
  48. "X X XX \n"
  49. "XXXXXXX X XXXX\n"
  50. " X XXX \n"
  51. "X XX XX X X\n"
  52. " X X XX \n"
  53. "XX XX XXXXXXX\n"
  54. " X X X\n"
  55. "XX X X X \n"
  56. " X X X \n"
  57. "X X XXXX XXX\n",
  58. 88, false);
  59. const auto format = ReadFormatInformation(bitMatrix);
  60. const auto version = ReadVersion(bitMatrix, format.type());
  61. EXPECT_EQ(3, version->versionNumber());
  62. const auto codewords = ReadCodewords(bitMatrix, *version, format);
  63. EXPECT_EQ(17, codewords.size());
  64. EXPECT_EQ(0x0, codewords[8]);
  65. EXPECT_EQ(0x89, codewords[9]);
  66. }