PatternTest.cpp 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. /*
  2. * Copyright 2022 Axel Waggershauser
  3. */
  4. // SPDX-License-Identifier: Apache-2.0
  5. #include "Pattern.h"
  6. #include "gtest/gtest.h"
  7. using namespace ZXing;
  8. constexpr int N = 33;
  9. PatternRow pr;
  10. TEST(PatternTest, AllWhite)
  11. {
  12. for (int s = 1; s <= N; ++s) {
  13. std::vector<uint8_t> in(s, 0);
  14. GetPatternRow(Range{in}, pr);
  15. EXPECT_EQ(pr.size(), 1);
  16. EXPECT_EQ(pr[0], s);
  17. }
  18. }
  19. TEST(PatternTest, AllBlack)
  20. {
  21. for (int s = 1; s <= N; ++s) {
  22. std::vector<uint8_t> in(s, 0xff);
  23. GetPatternRow(Range{in}, pr);
  24. EXPECT_EQ(pr.size(), 3);
  25. EXPECT_EQ(pr[0], 0);
  26. EXPECT_EQ(pr[1], s);
  27. EXPECT_EQ(pr[2], 0);
  28. }
  29. }
  30. TEST(PatternTest, BlackWhite)
  31. {
  32. for (int s = 1; s <= N; ++s) {
  33. std::vector<uint8_t> in(N, 0);
  34. std::fill_n(in.data(), s, 0xff);
  35. GetPatternRow(Range{in}, pr);
  36. EXPECT_EQ(pr.size(), 3);
  37. EXPECT_EQ(pr[0], 0);
  38. EXPECT_EQ(pr[1], s);
  39. EXPECT_EQ(pr[2], N - s);
  40. }
  41. }
  42. TEST(PatternTest, WhiteBlack)
  43. {
  44. for (int s = 0; s < N; ++s) {
  45. std::vector<uint8_t> in(N, 0xff);
  46. std::fill_n(in.data(), s, 0);
  47. GetPatternRow(Range{in}, pr);
  48. EXPECT_EQ(pr.size(), 3);
  49. EXPECT_EQ(pr[0], s);
  50. EXPECT_EQ(pr[1], N - s);
  51. EXPECT_EQ(pr[2], 0);
  52. }
  53. }