diff options
| author | MakKi (makki_d) <d.makiuchi+gh@gmail.com> | 2019-03-22 13:51:06 +0300 |
|---|---|---|
| committer | Sean Owen <srowen@gmail.com> | 2019-03-22 13:51:06 +0300 |
| commit | fedfa7a16c0d53a2c00914e0f9a116d422c271bb (patch) | |
| tree | 5fe4aa4db1a925419ce8ddd81953427124a7a97d /core/src/test/java | |
| parent | 8a53ade692c9514b597c40efe5d3be506402c49a (diff) | |
| download | zxing-fedfa7a16c0d53a2c00914e0f9a116d422c271bb.tar.xz | |
Remove duplicate results when it has structured append header. (#1147)
* remove duplicate results in processStructuredAppend
* add whitespace
* remove illegal import
Diffstat (limited to 'core/src/test/java')
| -rw-r--r-- | core/src/test/java/com/google/zxing/multi/qrcode/MultiQRCodeTestCase.java | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/core/src/test/java/com/google/zxing/multi/qrcode/MultiQRCodeTestCase.java b/core/src/test/java/com/google/zxing/multi/qrcode/MultiQRCodeTestCase.java index 5cd14c7ce..3e23e44b4 100644 --- a/core/src/test/java/com/google/zxing/multi/qrcode/MultiQRCodeTestCase.java +++ b/core/src/test/java/com/google/zxing/multi/qrcode/MultiQRCodeTestCase.java @@ -19,8 +19,10 @@ package com.google.zxing.multi.qrcode; import javax.imageio.ImageIO; import java.awt.image.BufferedImage; import java.nio.file.Path; +import java.util.ArrayList; import java.util.Collection; import java.util.HashSet; +import java.util.List; import java.util.Map; import com.google.zxing.BarcodeFormat; @@ -29,6 +31,7 @@ import com.google.zxing.BufferedImageLuminanceSource; import com.google.zxing.LuminanceSource; import com.google.zxing.Result; import com.google.zxing.ResultMetadataType; +import com.google.zxing.ResultPoint; import com.google.zxing.common.AbstractBlackBoxTestCase; import com.google.zxing.common.HybridBinarizer; import com.google.zxing.multi.MultipleBarcodeReader; @@ -70,4 +73,38 @@ public final class MultiQRCodeTestCase extends Assert { assertEquals(expectedContents, barcodeContents); } + @Test + public void testProcessStructuredAppend() { + Result sa1 = new Result("SA1", new byte[]{}, new ResultPoint[]{}, BarcodeFormat.QR_CODE); + Result sa2 = new Result("SA2", new byte[]{}, new ResultPoint[]{}, BarcodeFormat.QR_CODE); + Result sa3 = new Result("SA3", new byte[]{}, new ResultPoint[]{}, BarcodeFormat.QR_CODE); + sa1.putMetadata(ResultMetadataType.STRUCTURED_APPEND_SEQUENCE, (0 << 4) + 2); + sa1.putMetadata(ResultMetadataType.ERROR_CORRECTION_LEVEL, "L"); + sa2.putMetadata(ResultMetadataType.STRUCTURED_APPEND_SEQUENCE, (1 << 4) + 2); + sa2.putMetadata(ResultMetadataType.ERROR_CORRECTION_LEVEL, "L"); + sa3.putMetadata(ResultMetadataType.STRUCTURED_APPEND_SEQUENCE, (2 << 4) + 2); + sa3.putMetadata(ResultMetadataType.ERROR_CORRECTION_LEVEL, "L"); + + Result nsa = new Result("NotSA", new byte[]{}, new ResultPoint[]{}, BarcodeFormat.QR_CODE); + nsa.putMetadata(ResultMetadataType.ERROR_CORRECTION_LEVEL, "L"); + + List<Result> inputs = new ArrayList<>(); + inputs.add(sa3); + inputs.add(sa1); + inputs.add(nsa); + inputs.add(sa2); + + List<Result> results = QRCodeMultiReader.processStructuredAppend(inputs); + assertNotNull(results); + assertEquals(2, results.size()); + + Collection<String> barcodeContents = new HashSet<>(); + for (Result result : results) { + barcodeContents.add(result.getText()); + } + Collection<String> expectedContents = new HashSet<>(); + expectedContents.add("SA1SA2SA3"); + expectedContents.add("NotSA"); + assertEquals(expectedContents, barcodeContents); + } } |
