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.
66 lines
1.1 KiB
66 lines
1.1 KiB
/* |
|
* Copyright 2022 Axel Waggershauser |
|
*/ |
|
// SPDX-License-Identifier: Apache-2.0 |
|
|
|
#include "Pattern.h" |
|
|
|
#include "gtest/gtest.h" |
|
|
|
using namespace ZXing; |
|
|
|
constexpr int N = 33; |
|
|
|
PatternRow pr; |
|
|
|
TEST(PatternTest, AllWhite) |
|
{ |
|
for (int s = 1; s <= N; ++s) { |
|
std::vector<uint8_t> in(s, 0); |
|
GetPatternRow(Range{in}, pr); |
|
|
|
EXPECT_EQ(pr.size(), 1); |
|
EXPECT_EQ(pr[0], s); |
|
} |
|
} |
|
|
|
TEST(PatternTest, AllBlack) |
|
{ |
|
for (int s = 1; s <= N; ++s) { |
|
std::vector<uint8_t> in(s, 0xff); |
|
GetPatternRow(Range{in}, pr); |
|
|
|
EXPECT_EQ(pr.size(), 3); |
|
EXPECT_EQ(pr[0], 0); |
|
EXPECT_EQ(pr[1], s); |
|
EXPECT_EQ(pr[2], 0); |
|
} |
|
} |
|
|
|
TEST(PatternTest, BlackWhite) |
|
{ |
|
for (int s = 1; s <= N; ++s) { |
|
std::vector<uint8_t> in(N, 0); |
|
std::fill_n(in.data(), s, 0xff); |
|
GetPatternRow(Range{in}, pr); |
|
|
|
EXPECT_EQ(pr.size(), 3); |
|
EXPECT_EQ(pr[0], 0); |
|
EXPECT_EQ(pr[1], s); |
|
EXPECT_EQ(pr[2], N - s); |
|
} |
|
} |
|
|
|
TEST(PatternTest, WhiteBlack) |
|
{ |
|
for (int s = 0; s < N; ++s) { |
|
std::vector<uint8_t> in(N, 0xff); |
|
std::fill_n(in.data(), s, 0); |
|
GetPatternRow(Range{in}, pr); |
|
|
|
EXPECT_EQ(pr.size(), 3); |
|
EXPECT_EQ(pr[0], s); |
|
EXPECT_EQ(pr[1], N - s); |
|
EXPECT_EQ(pr[2], 0); |
|
} |
|
}
|
|
|