DMSymbolInfoTest.cpp 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. /*
  2. * Copyright 2017 Huy Cuong Nguyen
  3. * Copyright 2006 Jeremias Maerki
  4. */
  5. // SPDX-License-Identifier: Apache-2.0
  6. #include "datamatrix/DMSymbolInfo.h"
  7. #include "gtest/gtest.h"
  8. using namespace ZXing::DataMatrix;
  9. TEST(DMSymbolInfoTest, SymbolInfo)
  10. {
  11. auto info = SymbolInfo::Lookup(3);
  12. EXPECT_EQ(5, info->errorCodewords());
  13. EXPECT_EQ(8, info->matrixWidth());
  14. EXPECT_EQ(8, info->matrixHeight());
  15. EXPECT_EQ(10, info->symbolWidth());
  16. EXPECT_EQ(10, info->symbolHeight());
  17. info = SymbolInfo::Lookup(3, SymbolShape::RECTANGLE);
  18. EXPECT_EQ(7, info->errorCodewords());
  19. EXPECT_EQ(16, info->matrixWidth());
  20. EXPECT_EQ(6, info->matrixHeight());
  21. EXPECT_EQ(18, info->symbolWidth());
  22. EXPECT_EQ(8, info->symbolHeight());
  23. info = SymbolInfo::Lookup(9);
  24. EXPECT_EQ(11, info->errorCodewords());
  25. EXPECT_EQ(14, info->matrixWidth());
  26. EXPECT_EQ(6, info->matrixHeight());
  27. EXPECT_EQ(32, info->symbolWidth());
  28. EXPECT_EQ(8, info->symbolHeight());
  29. info = SymbolInfo::Lookup(9, SymbolShape::SQUARE);
  30. EXPECT_EQ(12, info->errorCodewords());
  31. EXPECT_EQ(14, info->matrixWidth());
  32. EXPECT_EQ(14, info->matrixHeight());
  33. EXPECT_EQ(16, info->symbolWidth());
  34. EXPECT_EQ(16, info->symbolHeight());
  35. info = SymbolInfo::Lookup(1559);
  36. EXPECT_EQ(nullptr, info) << "There's no rectangular symbol for more than 1558 data codewords";
  37. info = SymbolInfo::Lookup(50, SymbolShape::RECTANGLE);
  38. EXPECT_EQ(nullptr, info) << "There's no rectangular symbol for 50 data codewords";
  39. info = SymbolInfo::Lookup(35);
  40. EXPECT_EQ(24, info->symbolWidth());
  41. EXPECT_EQ(24, info->symbolHeight());
  42. int minWidth = 26;
  43. int minHeight = 26;
  44. int maxWidth = 26;
  45. int maxHeight = 26;
  46. info = SymbolInfo::Lookup(35, SymbolShape::NONE, minWidth, minHeight, maxWidth, maxHeight);
  47. EXPECT_EQ(26, info->symbolWidth());
  48. EXPECT_EQ(26, info->symbolHeight());
  49. info = SymbolInfo::Lookup(45, SymbolShape::NONE, minWidth, minHeight, maxWidth, maxHeight);
  50. EXPECT_EQ(nullptr, info);
  51. maxWidth = 32;
  52. maxHeight = 32;
  53. info = SymbolInfo::Lookup(35, SymbolShape::NONE, minWidth, minHeight, maxWidth, maxHeight);
  54. EXPECT_EQ(26, info->symbolWidth());
  55. EXPECT_EQ(26, info->symbolHeight());
  56. info = SymbolInfo::Lookup(40, SymbolShape::NONE, minWidth, minHeight, maxWidth, maxHeight);
  57. EXPECT_EQ(26, info->symbolWidth());
  58. EXPECT_EQ(26, info->symbolHeight());
  59. info = SymbolInfo::Lookup(45, SymbolShape::NONE, minWidth, minHeight, maxWidth, maxHeight);
  60. EXPECT_EQ(32, info->symbolWidth());
  61. EXPECT_EQ(32, info->symbolHeight());
  62. info = SymbolInfo::Lookup(63, SymbolShape::NONE, minWidth, minHeight, maxWidth, maxHeight);
  63. EXPECT_EQ(nullptr, info);
  64. }