File: DMSymbolInfoTest.cpp

package info (click to toggle)
zxing-cpp 2.3.0-4
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 26,832 kB
  • sloc: cpp: 32,803; ansic: 18,360; php: 1,156; python: 215; makefile: 25; sh: 3
file content (82 lines) | stat: -rw-r--r-- 2,596 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
/*
* 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);
}