You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
82 lines
2.5 KiB
82 lines
2.5 KiB
/* |
|
* Copyright 2017 Huy Cuong Nguyen |
|
* Copyright 2006 Jeremias Maerki |
|
*/ |
|
// SPDX-License-Identifier: Apache-2.0 |
|
|
|
#include "datamatrix/DMSymbolInfo.h" |
|
|
|
#include "gtest/gtest.h" |
|
|
|
using namespace ZXing::DataMatrix; |
|
|
|
TEST(DMSymbolInfoTest, SymbolInfo) |
|
{ |
|
auto info = SymbolInfo::Lookup(3); |
|
EXPECT_EQ(5, info->errorCodewords()); |
|
EXPECT_EQ(8, info->matrixWidth()); |
|
EXPECT_EQ(8, info->matrixHeight()); |
|
EXPECT_EQ(10, info->symbolWidth()); |
|
EXPECT_EQ(10, info->symbolHeight()); |
|
|
|
info = SymbolInfo::Lookup(3, SymbolShape::RECTANGLE); |
|
EXPECT_EQ(7, info->errorCodewords()); |
|
EXPECT_EQ(16, info->matrixWidth()); |
|
EXPECT_EQ(6, info->matrixHeight()); |
|
EXPECT_EQ(18, info->symbolWidth()); |
|
EXPECT_EQ(8, info->symbolHeight()); |
|
|
|
info = SymbolInfo::Lookup(9); |
|
EXPECT_EQ(11, info->errorCodewords()); |
|
EXPECT_EQ(14, info->matrixWidth()); |
|
EXPECT_EQ(6, info->matrixHeight()); |
|
EXPECT_EQ(32, info->symbolWidth()); |
|
EXPECT_EQ(8, info->symbolHeight()); |
|
|
|
info = SymbolInfo::Lookup(9, SymbolShape::SQUARE); |
|
EXPECT_EQ(12, info->errorCodewords()); |
|
EXPECT_EQ(14, info->matrixWidth()); |
|
EXPECT_EQ(14, info->matrixHeight()); |
|
EXPECT_EQ(16, info->symbolWidth()); |
|
EXPECT_EQ(16, info->symbolHeight()); |
|
|
|
info = SymbolInfo::Lookup(1559); |
|
EXPECT_EQ(nullptr, info) << "There's no rectangular symbol for more than 1558 data codewords"; |
|
|
|
info = SymbolInfo::Lookup(50, SymbolShape::RECTANGLE); |
|
EXPECT_EQ(nullptr, info) << "There's no rectangular symbol for 50 data codewords"; |
|
|
|
info = SymbolInfo::Lookup(35); |
|
EXPECT_EQ(24, info->symbolWidth()); |
|
EXPECT_EQ(24, info->symbolHeight()); |
|
|
|
int minWidth = 26; |
|
int minHeight = 26; |
|
int maxWidth = 26; |
|
int maxHeight = 26; |
|
|
|
info = SymbolInfo::Lookup(35, SymbolShape::NONE, minWidth, minHeight, maxWidth, maxHeight); |
|
EXPECT_EQ(26, info->symbolWidth()); |
|
EXPECT_EQ(26, info->symbolHeight()); |
|
|
|
info = SymbolInfo::Lookup(45, SymbolShape::NONE, minWidth, minHeight, maxWidth, maxHeight); |
|
EXPECT_EQ(nullptr, info); |
|
|
|
maxWidth = 32; |
|
maxHeight = 32; |
|
|
|
info = SymbolInfo::Lookup(35, SymbolShape::NONE, minWidth, minHeight, maxWidth, maxHeight); |
|
EXPECT_EQ(26, info->symbolWidth()); |
|
EXPECT_EQ(26, info->symbolHeight()); |
|
|
|
info = SymbolInfo::Lookup(40, SymbolShape::NONE, minWidth, minHeight, maxWidth, maxHeight); |
|
EXPECT_EQ(26, info->symbolWidth()); |
|
EXPECT_EQ(26, info->symbolHeight()); |
|
|
|
info = SymbolInfo::Lookup(45, SymbolShape::NONE, minWidth, minHeight, maxWidth, maxHeight); |
|
EXPECT_EQ(32, info->symbolWidth()); |
|
EXPECT_EQ(32, info->symbolHeight()); |
|
|
|
info = SymbolInfo::Lookup(63, SymbolShape::NONE, minWidth, minHeight, maxWidth, maxHeight); |
|
EXPECT_EQ(nullptr, info); |
|
}
|
|
|