From cf530422c9f7af396aa27c16f00dc25fdf326c3a Mon Sep 17 00:00:00 2001 From: Henry Schimke Date: Mon, 24 Apr 2023 19:09:01 -0500 Subject: [PATCH] port over c++ tests and weights --- src/common/cpp_essentials/decoder_result.rs | 2 - tests/cpp_qr_code_blackbox_tests.rs | 141 +++++++++++++++++++- 2 files changed, 140 insertions(+), 3 deletions(-) diff --git a/src/common/cpp_essentials/decoder_result.rs b/src/common/cpp_essentials/decoder_result.rs index 0897d76..04a3f66 100644 --- a/src/common/cpp_essentials/decoder_result.rs +++ b/src/common/cpp_essentials/decoder_result.rs @@ -52,8 +52,6 @@ where let mut new_self = Self::default(); new_self.content = src; - - new_self } diff --git a/tests/cpp_qr_code_blackbox_tests.rs b/tests/cpp_qr_code_blackbox_tests.rs index 9d012c5..837963e 100644 --- a/tests/cpp_qr_code_blackbox_tests.rs +++ b/tests/cpp_qr_code_blackbox_tests.rs @@ -15,6 +15,7 @@ */ use rxing::{ + multi::MultipleBarcodeReader, qrcode::{cpp_port::QrReader, QRCodeReader}, BarcodeFormat, MultiFormatReader, }; @@ -159,4 +160,142 @@ fn mqr_black_box_test_case() { tester.add_test(15, 15, 270.0); tester.test_black_box(); -} \ No newline at end of file +} + +/** + * @author Sean Owen + */ + +#[test] +fn cpp_qrcode_black_box1_test_case() { + let mut tester = common::AbstractBlackBoxTestCase::new( + "test_resources/blackbox/cpp/qrcode-1", + QrReader::default(), + rxing::BarcodeFormat::QR_CODE, + ); + // super("src/test/resources/blackbox/qrcode-1", new MultiFormatReader(), BarcodeFormat.QR_CODE); + tester.add_test(16, 16, 0.0); + tester.add_test(16, 16, 90.0); + tester.add_test(16, 16, 180.0); + tester.add_test(16, 16, 270.0); + + tester.test_black_box(); +} + +/** + * @author Sean Owen + */ + +#[test] +fn cpp_qrcode_black_box2_test_case() { + let mut tester = common::AbstractBlackBoxTestCase::new( + "test_resources/blackbox/cpp/qrcode-2", + // MultiFormatReader::default(), + QrReader {}, + BarcodeFormat::QR_CODE, + ); + tester.add_test(45, 47, 0.0); + tester.add_test(45, 47, 90.0); + tester.add_test(45, 47, 180.0); + tester.add_test(45, 46, 270.0); + + tester.test_black_box(); +} + +/** + * @author dswitkin@google.com (Daniel Switkin) + */ + +#[test] +fn cpp_qrcode_black_box3_test_case() { + let mut tester = common::AbstractBlackBoxTestCase::new( + "test_resources/blackbox/cpp/qrcode-3", + QrReader::default(), + BarcodeFormat::QR_CODE, + ); + tester.add_test(28, 28, 0.0); + tester.add_test(28, 28, 90.0); + tester.add_test(28, 28, 180.0); + tester.add_test(27, 27, 270.0); + + tester.test_black_box(); +} + +/** + * Tests of various QR Codes from t-shirts, which are notoriously not flat. + * + * @author dswitkin@google.com (Daniel Switkin) + */ + +#[test] +fn cpp_qrcode_black_box4_test_case() { + let mut tester = common::AbstractBlackBoxTestCase::new( + "test_resources/blackbox/cpp/qrcode-4", + QrReader::default(), + // QRCodeReader::new(), + BarcodeFormat::QR_CODE, + ); + tester.add_test(29, 29, 0.0); + tester.add_test(29, 29, 90.0); + tester.add_test(29, 29, 180.0); + tester.add_test(29, 29, 270.0); + + tester.test_black_box(); +} + +/** + * Some very difficult exposure conditions including self-shadowing, which happens a lot when + * pointing down at a barcode (i.e. the phone's shadow falls across part of the image). + * The global histogram gets about 5/15, where the local one gets 15/15. + * + * @author dswitkin@google.com (Daniel Switkin) + */ + +#[test] +fn cpp_qrcode_black_box5_test_case() { + let mut tester = common::AbstractBlackBoxTestCase::new( + "test_resources/blackbox/cpp/qrcode-5", + QrReader::default(), + BarcodeFormat::QR_CODE, + ); + tester.add_test(16, 16, 0.0); + tester.add_test(16, 16, 90.0); + tester.add_test(16, 16, 180.0); + tester.add_test(16, 16, 270.0); + + tester.test_black_box(); +} + +/** + * These tests are supplied by Tim Gernat and test finder pattern detection at small size and under + * rotation, which was a weak spot. + */ + +#[test] +fn cpp_qrcode_black_box6_test_case() { + let mut tester = common::AbstractBlackBoxTestCase::new( + "test_resources/blackbox/cpp/qrcode-6", + QrReader::default(), + BarcodeFormat::QR_CODE, + ); + tester.add_test(15, 15, 0.0); + tester.add_test(15, 15, 90.0); + tester.add_test(15, 15, 180.0); + tester.add_test(15, 15, 270.0); + + tester.test_black_box(); +} + +#[test] +fn cpp_qrcode_black_box7_test_case() { + let mut tester = common::PDF417MultiImageSpanAbstractBlackBoxTestCase::new( + "test_resources/blackbox/cpp/qrcode-7", + QrReader::default(), + rxing::BarcodeFormat::QR_CODE, + ); + + // super("src/test/resources/blackbox/pdf417-4", null, BarcodeFormat.PDF_417); + tester.add_test_complex(1, 1, 0, 0, 0.0); + + tester.test_black_box(); +}