summaryrefslogtreecommitdiff
path: root/core/src/test/java
diff options
context:
space:
mode:
authorMakKi (makki_d) <d.makiuchi+gh@gmail.com>2019-03-22 13:51:06 +0300
committerSean Owen <srowen@gmail.com>2019-03-22 13:51:06 +0300
commitfedfa7a16c0d53a2c00914e0f9a116d422c271bb (patch)
tree5fe4aa4db1a925419ce8ddd81953427124a7a97d /core/src/test/java
parent8a53ade692c9514b597c40efe5d3be506402c49a (diff)
downloadzxing-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.java37
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);
+ }
}