From 54e16e2188a0286a72978354338053bc0d61063b Mon Sep 17 00:00:00 2001 From: Anjali Sridhar Date: Sat, 12 Oct 2024 18:28:31 -0700 Subject: [PATCH] orw changes post tab to space chagnes --- .github/workflows/test_java_8.yml | 2 +- core/pom.xml | 3 + .../main/java/com/google/zxing/Dimension.java | 3 +- .../java/com/google/zxing/ResultPoint.java | 3 +- .../google/zxing/aztec/decoder/Decoder.java | 2 +- .../google/zxing/aztec/encoder/Encoder.java | 2 +- .../com/google/zxing/aztec/encoder/State.java | 2 +- .../com/google/zxing/oned/Code128Writer.java | 10 +- .../decoder/DecodedBitStreamParser.java | 2 +- .../zxing/aztec/decoder/DecoderTest.java | 202 ++++----- .../zxing/aztec/encoder/EncoderTest.java | 132 +++--- .../AddressBookParsedResultTestCase.java | 11 +- .../result/CalendarParsedResultTestCase.java | 182 +++++--- .../result/ParsedReaderResultTestCase.java | 34 +- .../common/AbstractBlackBoxTestCase.java | 55 ++- .../AbstractNegativeBlackBoxTestCase.java | 20 +- .../reedsolomon/ReedSolomonTestCase.java | 2 +- .../zxing/pdf417/PDF417BlackBox4TestCase.java | 14 +- .../zxing/pdf417/PDF417WriterTestCase.java | 50 ++- .../zxing/qrcode/QRCodeWriterTestCase.java | 5 +- .../zxing/qrcode/encoder/EncoderTestCase.java | 414 +++++++++--------- .../qrcode/encoder/MatrixUtilTestCase.java | 272 ++++++------ .../zxing/qrcode/encoder/QRCodeTestCase.java | 74 ++-- javase/pom.xml | 3 + .../zxing/client/j2se/CommandLineEncoder.java | 4 +- .../zxing/client/j2se/CommandLineRunner.java | 11 +- .../zxing/client/j2se/DecodeWorker.java | 7 +- .../client/j2se/HtmlAssetTranslator.java | 3 +- .../j2se/StringsResourceTranslator.java | 3 +- pom.xml | 24 +- zxing.appspot.com/pom.xml | 1 + 31 files changed, 836 insertions(+), 716 deletions(-) diff --git a/.github/workflows/test_java_8.yml b/.github/workflows/test_java_8.yml index 253e157ee..c9aacb984 100644 --- a/.github/workflows/test_java_8.yml +++ b/.github/workflows/test_java_8.yml @@ -16,7 +16,7 @@ jobs: - name: Set up JDK 8 uses: actions/setup-java@v4 with: - java-version: '8' + java-version: '17' distribution: 'temurin' cache: 'maven' - name: Build with Maven diff --git a/core/pom.xml b/core/pom.xml index 010f96fac..cc50b08c4 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -20,6 +20,9 @@ core 3.5.4-SNAPSHOT jar + + 17 + diff --git a/core/src/main/java/com/google/zxing/Dimension.java b/core/src/main/java/com/google/zxing/Dimension.java index 242e0f7f8..f03facf56 100644 --- a/core/src/main/java/com/google/zxing/Dimension.java +++ b/core/src/main/java/com/google/zxing/Dimension.java @@ -42,8 +42,7 @@ public final class Dimension { @Override public boolean equals(Object other) { - if (other instanceof Dimension) { - Dimension d = (Dimension) other; + if (other instanceof Dimension d) { return width == d.width && height == d.height; } return false; diff --git a/core/src/main/java/com/google/zxing/ResultPoint.java b/core/src/main/java/com/google/zxing/ResultPoint.java index 9bd8cd2e6..e96685359 100644 --- a/core/src/main/java/com/google/zxing/ResultPoint.java +++ b/core/src/main/java/com/google/zxing/ResultPoint.java @@ -44,8 +44,7 @@ public class ResultPoint { @Override public final boolean equals(Object other) { - if (other instanceof ResultPoint) { - ResultPoint otherPoint = (ResultPoint) other; + if (other instanceof ResultPoint otherPoint) { return x == otherPoint.x && y == otherPoint.y; } return false; diff --git a/core/src/main/java/com/google/zxing/aztec/decoder/Decoder.java b/core/src/main/java/com/google/zxing/aztec/decoder/Decoder.java index 214cfcd5e..b1ef32f62 100644 --- a/core/src/main/java/com/google/zxing/aztec/decoder/Decoder.java +++ b/core/src/main/java/com/google/zxing/aztec/decoder/Decoder.java @@ -85,7 +85,7 @@ public final class Decoder { byte[] rawBytes = convertBoolArrayToByteArray(correctedBits.correctBits); String result = getEncodedData(correctedBits.correctBits); DecoderResult decoderResult = - new DecoderResult(rawBytes, result, null, String.format("%d%%", correctedBits.ecLevel)); + new DecoderResult(rawBytes, result, null, "%d%%".formatted(correctedBits.ecLevel)); decoderResult.setNumBits(correctedBits.correctBits.length); decoderResult.setErrorsCorrected(correctedBits.errorsCorrected); return decoderResult; diff --git a/core/src/main/java/com/google/zxing/aztec/encoder/Encoder.java b/core/src/main/java/com/google/zxing/aztec/encoder/Encoder.java index 4acd8f6d5..f65ee27d4 100644 --- a/core/src/main/java/com/google/zxing/aztec/encoder/Encoder.java +++ b/core/src/main/java/com/google/zxing/aztec/encoder/Encoder.java @@ -135,7 +135,7 @@ public final class Encoder { layers = Math.abs(userSpecifiedLayers); if (layers > (compact ? MAX_NB_BITS_COMPACT : MAX_NB_BITS)) { throw new IllegalArgumentException( - String.format("Illegal value %s for layers", userSpecifiedLayers)); + "Illegal value %s for layers".formatted(userSpecifiedLayers)); } totalBitsInLayer = totalBitsInLayer(layers, compact); wordSize = WORD_SIZE[layers]; diff --git a/core/src/main/java/com/google/zxing/aztec/encoder/State.java b/core/src/main/java/com/google/zxing/aztec/encoder/State.java index 9771fbae3..29df600b0 100644 --- a/core/src/main/java/com/google/zxing/aztec/encoder/State.java +++ b/core/src/main/java/com/google/zxing/aztec/encoder/State.java @@ -176,7 +176,7 @@ final class State { @Override public String toString() { - return String.format("%s bits=%d bytes=%d", HighLevelEncoder.MODE_NAMES[mode], bitCount, binaryShiftByteCount); + return "%s bits=%d bytes=%d".formatted(HighLevelEncoder.MODE_NAMES[mode], bitCount, binaryShiftByteCount); } private static int calculateBinaryShiftCost(int binaryShiftByteCount) { diff --git a/core/src/main/java/com/google/zxing/oned/Code128Writer.java b/core/src/main/java/com/google/zxing/oned/Code128Writer.java index a31a673f5..26d6fe83b 100644 --- a/core/src/main/java/com/google/zxing/oned/Code128Writer.java +++ b/core/src/main/java/com/google/zxing/oned/Code128Writer.java @@ -367,10 +367,12 @@ public final class Code128Writer extends OneDimensionalCodeWriter { private enum Charset { A, B, C, NONE } private enum Latch { A, B, C, SHIFT, NONE } - static final String A = " !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_\u0000\u0001\u0002" + - "\u0003\u0004\u0005\u0006\u0007\u0008\u0009\n\u000B\u000C\r\u000E\u000F\u0010\u0011" + - "\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F" + - "\u00FF"; + static final String A = """ + !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_\ +  + \ + \ + ΓΏ"""; static final String B = " !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqr" + "stuvwxyz{|}~\u007F\u00FF"; diff --git a/core/src/main/java/com/google/zxing/pdf417/decoder/DecodedBitStreamParser.java b/core/src/main/java/com/google/zxing/pdf417/decoder/DecodedBitStreamParser.java index b86a147d8..3e83369c5 100644 --- a/core/src/main/java/com/google/zxing/pdf417/decoder/DecodedBitStreamParser.java +++ b/core/src/main/java/com/google/zxing/pdf417/decoder/DecodedBitStreamParser.java @@ -183,7 +183,7 @@ final class DecodedBitStreamParser { codeIndex < codewords.length && codewords[codeIndex] != MACRO_PDF417_TERMINATOR && codewords[codeIndex] != BEGIN_MACRO_PDF417_OPTIONAL_FIELD) { - fileId.append(String.format("%03d", codewords[codeIndex])); + fileId.append("%03d".formatted(codewords[codeIndex])); codeIndex++; } if (fileId.length() == 0) { diff --git a/core/src/test/java/com/google/zxing/aztec/decoder/DecoderTest.java b/core/src/test/java/com/google/zxing/aztec/decoder/DecoderTest.java index e7cafa229..8c584b6ab 100644 --- a/core/src/test/java/com/google/zxing/aztec/decoder/DecoderTest.java +++ b/core/src/test/java/com/google/zxing/aztec/decoder/DecoderTest.java @@ -66,29 +66,31 @@ public final class DecoderTest extends Assert { @Test public void testAztecResult() throws FormatException { BitMatrix matrix = BitMatrix.parse( - "X X X X X X X X X X X X X X \n" + - "X X X X X X X X X X X X X X X \n" + - " X X X X X X X X X X X X \n" + - " X X X X X X X X X X \n" + - " X X X X X X X X \n" + - " X X X X X X X X X X X X X X X X X X \n" + - " X X X X X X X X X \n" + - " X X X X X X X X X X X X X X X X X \n" + - " X X X X X X X X X \n" + - " X X X X X X X X X X X X X X X X \n" + - " X X X X X X X X X X X X \n" + - " X X X X X X X X X X X \n" + - " X X X X X X X X X X X X \n" + - " X X X X X X X X X X X X X X X X X \n" + - "X X X X X X X X X X X \n" + - " X X X X X X X X X X X X X X \n" + - " X X X X X X X X \n" + - " X X X X X X X X X X X X X X X X X X X \n" + - "X X X X X X X X X \n" + - "X X X X X X X X X X X X X X X \n" + - "X X X X X X X X X X X X \n" + - "X X X X X X X X X X X X X X \n" + - " X X X X X X X X X X X X X \n", + """ + X X X X X X X X X X X X X X \s + X X X X X X X X X X X X X X X\s + X X X X X X X X X X X X\s + X X X X X X X X X X\s + X X X X X X X X\s + X X X X X X X X X X X X X X X X X X \s + X X X X X X X X X \s + X X X X X X X X X X X X X X X X X\s + X X X X X X X X X\s + X X X X X X X X X X X X X X X X\s + X X X X X X X X X X X X \s + X X X X X X X X X X X \s + X X X X X X X X X X X X \s + X X X X X X X X X X X X X X X X X\s + X X X X X X X X X X X\s + X X X X X X X X X X X X X X\s + X X X X X X X X \s + X X X X X X X X X X X X X X X X X X X \s + X X X X X X X X X\s + X X X X X X X X X X X X X X X\s + X X X X X X X X X X X X\s + X X X X X X X X X X X X X X \s + X X X X X X X X X X X X X \s + """, "X ", " "); AztecDetectorResult r = new AztecDetectorResult(matrix, NO_POINTS, false, 30, 2); DecoderResult result = new Decoder().decode(r); @@ -104,25 +106,27 @@ public final class DecoderTest extends Assert { @Test public void testAztecResultECI() throws FormatException { BitMatrix matrix = BitMatrix.parse( - " X X X X X X \n" + - " X X X X X X X X X X X X \n" + - " X X X X \n" + - " X X X X X X X X X X X X X X X X X \n" + - " X X \n" + - " X X X X X X X X X X X X \n" + - " X X X X X X X X \n" + - " X X X X X X X X X X X X \n" + - " X X X X X X X X \n" + - " X X X X X X X X X \n" + - "X X X X X X X X X \n" + - " X X X X X X X X X X X X \n" + - " X X X X X X \n" + - " X X X X X X X X X X X X X \n" + - " X X X \n" + - "X X X X X X X X X X X X X X X X X \n" + - "X X X X X X X X X \n" + - " X X X X X X X X X X X \n" + - "X X X X X X X X \n", + """ + X X X X X X \s + X X X X X X X X X X X X \s + X X X X\s + X X X X X X X X X X X X X X X X X \s + X X \s + X X X X X X X X X X X X \s + X X X X X X X X \s + X X X X X X X X X X X X \s + X X X X X X X X \s + X X X X X X X X X \s + X X X X X X X X X\s + X X X X X X X X X X X X \s + X X X X X X\s + X X X X X X X X X X X X X\s + X X X \s + X X X X X X X X X X X X X X X X X \s + X X X X X X X X X\s + X X X X X X X X X X X \s + X X X X X X X X \s + """, "X ", " "); AztecDetectorResult r = new AztecDetectorResult(matrix, NO_POINTS, false, 15, 1); DecoderResult result = new Decoder().decode(r); @@ -131,34 +135,35 @@ public final class DecoderTest extends Assert { @Test(expected = FormatException.class) public void testDecodeTooManyErrors() throws FormatException { - BitMatrix matrix = BitMatrix.parse("" - + "X X . X . . . X X . . . X . . X X X . X . X X X X X . \n" - + "X X . . X X . . . . . X X . . . X X . . . X . X . . X \n" - + "X . . . X X . . X X X . X X . X X X X . X X . . X . . \n" - + ". . . . X . X X . . X X . X X . X . X X X X . X . . X \n" - + "X X X . . X X X X X . . . . . X X . . . X . X . X . X \n" - + "X X . . . . . . . . X . . . X . X X X . X . . X . . . \n" - + "X X . . X . . . . . X X . . . . . X . . . . X . . X X \n" - + ". . . X . X . X . . . . . X X X X X X . . . . . . X X \n" - + "X . . . X . X X X X X X . . X X X . X . X X X X X X . \n" - + "X . . X X X . X X X X X X X X X X X X X . . . X . X X \n" - + ". . . . X X . . . X . . . . . . . X X . . . X X . X . \n" - + ". . . X X X . . X X . X X X X X . X . . X . . . . . . \n" - + "X . . . . X . X . X . X . . . X . X . X X . X X . X X \n" - + "X . X . . X . X . X . X . X . X . X . . . . . X . X X \n" - + "X . X X X . . X . X . X . . . X . X . X X X . . . X X \n" - + "X X X X X X X X . X . X X X X X . X . X . X . X X X . \n" - + ". . . . . . . X . X . . . . . . . X X X X . . . X X X \n" - + "X X . . X . . X . X X X X X X X X X X X X X . . X . X \n" - + "X X X . X X X X . . X X X X . . X . . . . X . . X X X \n" - + ". . . . X . X X X . . . . X X X X . . X X X X . . . . \n" - + ". . X . . X . X . . . X . X X . X X . X . . . X . X . \n" - + "X X . . X . . X X X X X X X . . X . X X X X X X X . . \n" - + "X . X X . . X X . . . . . X . . . . . . X X . X X X . \n" - + "X . . X X . . X X . X . X . . . . X . X . . X . . X . \n" - + "X . X . X . . X . X X X X X X X X . X X X X . . X X . \n" - + "X X X X . . . X . . X X X . X X . . X . . . . X X X . \n" - + "X X . X . X . . . X . X . . . . X X . X . . X X . . . \n", + BitMatrix matrix = BitMatrix.parse(""" + X X . X . . . X X . . . X . . X X X . X . X X X X X .\s + X X . . X X . . . . . X X . . . X X . . . X . X . . X\s + X . . . X X . . X X X . X X . X X X X . X X . . X . .\s + . . . . X . X X . . X X . X X . X . X X X X . X . . X\s + X X X . . X X X X X . . . . . X X . . . X . X . X . X\s + X X . . . . . . . . X . . . X . X X X . X . . X . . .\s + X X . . X . . . . . X X . . . . . X . . . . X . . X X\s + . . . X . X . X . . . . . X X X X X X . . . . . . X X\s + X . . . X . X X X X X X . . X X X . X . X X X X X X .\s + X . . X X X . X X X X X X X X X X X X X . . . X . X X\s + . . . . X X . . . X . . . . . . . X X . . . X X . X .\s + . . . X X X . . X X . X X X X X . X . . X . . . . . .\s + X . . . . X . X . X . X . . . X . X . X X . X X . X X\s + X . X . . X . X . X . X . X . X . X . . . . . X . X X\s + X . X X X . . X . X . X . . . X . X . X X X . . . X X\s + X X X X X X X X . X . X X X X X . X . X . X . X X X .\s + . . . . . . . X . X . . . . . . . X X X X . . . X X X\s + X X . . X . . X . X X X X X X X X X X X X X . . X . X\s + X X X . X X X X . . X X X X . . X . . . . X . . X X X\s + . . . . X . X X X . . . . X X X X . . X X X X . . . .\s + . . X . . X . X . . . X . X X . X X . X . . . X . X .\s + X X . . X . . X X X X X X X . . X . X X X X X X X . .\s + X . X X . . X X . . . . . X . . . . . . X X . X X X .\s + X . . X X . . X X . X . X . . . . X . X . . X . . X .\s + X . X . X . . X . X X X X X X X X . X X X X . . X X .\s + X X X X . . . X . . X X X . X X . . X . . . . X X X .\s + X X . X . X . . . X . X . . . . X X . X . . X X . . .\s + """, "X ", ". "); AztecDetectorResult r = new AztecDetectorResult(matrix, NO_POINTS, true, 16, 4); new Decoder().decode(r); @@ -166,34 +171,35 @@ public final class DecoderTest extends Assert { @Test(expected = FormatException.class) public void testDecodeTooManyErrors2() throws FormatException { - BitMatrix matrix = BitMatrix.parse("" - + ". X X . . X . X X . . . X . . X X X . . . X X . X X . \n" - + "X X . X X . . X . . . X X . . . X X . X X X . X . X X \n" - + ". . . . X . . . X X X . X X . X X X X . X X . . X . . \n" - + "X . X X . . X . . . X X . X X . X . X X . . . . . X . \n" - + "X X . X . . X . X X . . . . . X X . . . . . X . . . X \n" - + "X . . X . . . . . . X . . . X . X X X X X X X . . . X \n" - + "X . . X X . . X . . X X . . . . . X . . . . . X X X . \n" - + ". . X X X X . X . . . . . X X X X X X . . . . . . X X \n" - + "X . . . X . X X X X X X . . X X X . X . X X X X X X . \n" - + "X . . X X X . X X X X X X X X X X X X X . . . X . X X \n" - + ". . . . X X . . . X . . . . . . . X X . . . X X . X . \n" - + ". . . X X X . . X X . X X X X X . X . . X . . . . . . \n" - + "X . . . . X . X . X . X . . . X . X . X X . X X . X X \n" - + "X . X . . X . X . X . X . X . X . X . . . . . X . X X \n" - + "X . X X X . . X . X . X . . . X . X . X X X . . . X X \n" - + "X X X X X X X X . X . X X X X X . X . X . X . X X X . \n" - + ". . . . . . . X . X . . . . . . . X X X X . . . X X X \n" - + "X X . . X . . X . X X X X X X X X X X X X X . . X . X \n" - + "X X X . X X X X . . X X X X . . X . . . . X . . X X X \n" - + ". . X X X X X . X . . . . X X X X . . X X X . X . X . \n" - + ". . X X . X . X . . . X . X X . X X . . . . X X . . . \n" - + "X . . . X . X . X X X X X X . . X . X X X X X . X . . \n" - + ". X . . . X X X . . . . . X . . . . . X X X X X . X . \n" - + "X . . X . X X X X . X . X . . . . X . X X . X . . X . \n" - + "X . . . X X . X . X X X X X X X X . X X X X . . X X . \n" - + ". X X X X . . X . . X X X . X X . . X . . . . X X X . \n" - + "X X . . . X X . . X . X . . . . X X . X . . X . X . X \n", + BitMatrix matrix = BitMatrix.parse(""" + . X X . . X . X X . . . X . . X X X . . . X X . X X .\s + X X . X X . . X . . . X X . . . X X . X X X . X . X X\s + . . . . X . . . X X X . X X . X X X X . X X . . X . .\s + X . X X . . X . . . X X . X X . X . X X . . . . . X .\s + X X . X . . X . X X . . . . . X X . . . . . X . . . X\s + X . . X . . . . . . X . . . X . X X X X X X X . . . X\s + X . . X X . . X . . X X . . . . . X . . . . . X X X .\s + . . X X X X . X . . . . . X X X X X X . . . . . . X X\s + X . . . X . X X X X X X . . X X X . X . X X X X X X .\s + X . . X X X . X X X X X X X X X X X X X . . . X . X X\s + . . . . X X . . . X . . . . . . . X X . . . X X . X .\s + . . . X X X . . X X . X X X X X . X . . X . . . . . .\s + X . . . . X . X . X . X . . . X . X . X X . X X . X X\s + X . X . . X . X . X . X . X . X . X . . . . . X . X X\s + X . X X X . . X . X . X . . . X . X . X X X . . . X X\s + X X X X X X X X . X . X X X X X . X . X . X . X X X .\s + . . . . . . . X . X . . . . . . . X X X X . . . X X X\s + X X . . X . . X . X X X X X X X X X X X X X . . X . X\s + X X X . X X X X . . X X X X . . X . . . . X . . X X X\s + . . X X X X X . X . . . . X X X X . . X X X . X . X .\s + . . X X . X . X . . . X . X X . X X . . . . X X . . .\s + X . . . X . X . X X X X X X . . X . X X X X X . X . .\s + . X . . . X X X . . . . . X . . . . . X X X X X . X .\s + X . . X . X X X X . X . X . . . . X . X X . X . . X .\s + X . . . X X . X . X X X X X X X X . X X X X . . X X .\s + . X X X X . . X . . X X X . X X . . X . . . . X X X .\s + X X . . . X X . . X . X . . . . X X . X . . X . X . X\s + """, "X ", ". "); AztecDetectorResult r = new AztecDetectorResult(matrix, NO_POINTS, true, 16, 4); new Decoder().decode(r); diff --git a/core/src/test/java/com/google/zxing/aztec/encoder/EncoderTest.java b/core/src/test/java/com/google/zxing/aztec/encoder/EncoderTest.java index 280018d6d..4fce789bc 100644 --- a/core/src/test/java/com/google/zxing/aztec/encoder/EncoderTest.java +++ b/core/src/test/java/com/google/zxing/aztec/encoder/EncoderTest.java @@ -59,29 +59,31 @@ public final class EncoderTest extends Assert { @Test public void testEncode1() { testEncode("This is an example Aztec symbol for Wikipedia.", true, 3, - "X X X X X X X X \n" + - "X X X X X X X X X X \n" + - "X X X X X X X X X X X \n" + - "X X X X X X X X X X X \n" + - " X X X X X X X X X X X \n" + - " X X X X X X X X X X X X X \n" + - " X X X X X X X X X X X X \n" + - "X X X X X X X X X X X X X X X X \n" + - "X X X X X X X X X X X \n" + - "X X X X X X X X X X X X X X X X \n" + - "X X X X X X X X X X \n" + - "X X X X X X X X X X \n" + - " X X X X X X X X X X \n" + - " X X X X X X X X X X X X X X X X X X \n" + - " X X X X X X X X X X X X \n" + - " X X X X X X X X X X X X X X X X \n" + - " X X X X X X X X X X X \n" + - " X X X X X X X X \n" + - " X X X X X X X X X X X X X X X X \n" + - " X X X X X X X X X X X X \n" + - " X X X \n" + - " X X X X X X X X X X \n" + - " X X X X X X X X X X \n"); + """ + X X X X X X X X \s + X X X X X X X X X X\s + X X X X X X X X X X X \s + X X X X X X X X X X X\s + X X X X X X X X X X X \s + X X X X X X X X X X X X X \s + X X X X X X X X X X X X \s + X X X X X X X X X X X X X X X X\s + X X X X X X X X X X X \s + X X X X X X X X X X X X X X X X\s + X X X X X X X X X X\s + X X X X X X X X X X \s + X X X X X X X X X X \s + X X X X X X X X X X X X X X X X X X\s + X X X X X X X X X X X X\s + X X X X X X X X X X X X X X X X \s + X X X X X X X X X X X \s + X X X X X X X X \s + X X X X X X X X X X X X X X X X\s + X X X X X X X X X X X X \s + X X X \s + X X X X X X X X X X\s + X X X X X X X X X X\s + """); } @Test @@ -89,47 +91,49 @@ public final class EncoderTest extends Assert { testEncode("Aztec Code is a public domain 2D matrix barcode symbology" + " of nominally square symbols built on a square grid with a " + "distinctive square bullseye pattern at their center.", false, 6, - " X X X X X X X X X X X X X X X \n" + - " X X X X X X X X X X X X X X X \n" + - " X X X X X X X X X X X X X X X X X X X \n" + - "X X X X X X X X X X X X X X \n" + - "X X X X X X X X X X X X X X X X X X X X X \n" + - " X X X X X X X X X X X X X X X X \n" + - "X X X X X X X X X X X X X X X X X X X X \n" + - " X X X X X X X X X X X X X X X X X X X X X X \n" + - "X X X X X X X X X X X X X X X X X X X X X X X X X X X X \n" + - " X X X X X X X X X X X X X X X X X X X X \n" + - " X X X X X X X X X X X X X X X X X X X X \n" + - " X X X X X X X X X X X X X X X X X X X X X X X \n" + - "X X X X X X X X X X X X X X X X X X X X X \n" + - " X X X X X X X X X X X X X X X \n" + - " X X X X X X X X X X X X X X X X X X X X X X X X X X X \n" + - " X X X X X X X X X X X \n" + - " X X X X X X X X X X X X X X X X X X X X X X X X X \n" + - " X X X X X X X X X X X X X X X \n" + - "X X X X X X X X X X X X X X X X X X X X X X X X X X \n" + - "X X X X X X X X X X X X X X X X X X X X \n" + - "X X X X X X X X X X X X X X X X X X X X X \n" + - " X X X X X X X X X X X X \n" + - " X X X X X X X X X X X X X X X X X X X X X X X \n" + - "X X X X X X X X X X X X X X X X X \n" + - " X X X X X X X X X X X X X X X X X X X X X X X X X X X \n" + - " X X X X X X X X X X X X X X X X \n" + - " X X X X X X X X X X X X X X X X X X X X X X X X X X X \n" + - " X X X X X X X X X X X X X X X X X \n" + - "X X X X X X X X X X X X X X X X X \n" + - "X X X X X X X X X X X X X X X X X X X X X X X X \n" + - " X X X X X X X X X X X X X X X X X X X X \n" + - "X X X X X X X X X X X X X X X \n" + - " X X X X X X X X X X X X X X X X X X X X X X X X X \n" + - " X X X X X X X X X X X X X X X X X \n" + - "X X X X X X X X X X X X X X X X X X \n" + - "X X X X X X X X X X X X X X X X X X X X X X X \n" + - "X X X X X X X X X X X X X X X X X X X X X \n" + - "X X X X X X X X X X X X X X X X \n" + - "X X X X X X X X X X X X X X X X X X X X X \n" + - " X X X X X X X X X X X X X X X X \n" + - "X X X X X X X X X X X X X \n"); + """ + X X X X X X X X X X X X X X X \s + X X X X X X X X X X X X X X X\s + X X X X X X X X X X X X X X X X X X X\s + X X X X X X X X X X X X X X \s + X X X X X X X X X X X X X X X X X X X X X\s + X X X X X X X X X X X X X X X X \s + X X X X X X X X X X X X X X X X X X X X \s + X X X X X X X X X X X X X X X X X X X X X X\s + X X X X X X X X X X X X X X X X X X X X X X X X X X X X \s + X X X X X X X X X X X X X X X X X X X X\s + X X X X X X X X X X X X X X X X X X X X\s + X X X X X X X X X X X X X X X X X X X X X X X\s + X X X X X X X X X X X X X X X X X X X X X\s + X X X X X X X X X X X X X X X \s + X X X X X X X X X X X X X X X X X X X X X X X X X X X \s + X X X X X X X X X X X\s + X X X X X X X X X X X X X X X X X X X X X X X X X \s + X X X X X X X X X X X X X X X \s + X X X X X X X X X X X X X X X X X X X X X X X X X X\s + X X X X X X X X X X X X X X X X X X X X\s + X X X X X X X X X X X X X X X X X X X X X\s + X X X X X X X X X X X X \s + X X X X X X X X X X X X X X X X X X X X X X X \s + X X X X X X X X X X X X X X X X X \s + X X X X X X X X X X X X X X X X X X X X X X X X X X X \s + X X X X X X X X X X X X X X X X \s + X X X X X X X X X X X X X X X X X X X X X X X X X X X\s + X X X X X X X X X X X X X X X X X \s + X X X X X X X X X X X X X X X X X\s + X X X X X X X X X X X X X X X X X X X X X X X X\s + X X X X X X X X X X X X X X X X X X X X \s + X X X X X X X X X X X X X X X \s + X X X X X X X X X X X X X X X X X X X X X X X X X\s + X X X X X X X X X X X X X X X X X\s + X X X X X X X X X X X X X X X X X X\s + X X X X X X X X X X X X X X X X X X X X X X X\s + X X X X X X X X X X X X X X X X X X X X X\s + X X X X X X X X X X X X X X X X \s + X X X X X X X X X X X X X X X X X X X X X\s + X X X X X X X X X X X X X X X X\s + X X X X X X X X X X X X X \s + """); } @Test diff --git a/core/src/test/java/com/google/zxing/client/result/AddressBookParsedResultTestCase.java b/core/src/test/java/com/google/zxing/client/result/AddressBookParsedResultTestCase.java index 2e090a539..75bc00da1 100644 --- a/core/src/test/java/com/google/zxing/client/result/AddressBookParsedResultTestCase.java +++ b/core/src/test/java/com/google/zxing/client/result/AddressBookParsedResultTestCase.java @@ -100,10 +100,13 @@ public final class AddressBookParsedResultTestCase extends Assert { @Test public void testQuotedPrintable() { - doTest("BEGIN:VCARD\r\nADR;HOME;CHARSET=UTF-8;ENCODING=QUOTED-PRINTABLE:;;" + - "=38=38=20=4C=79=6E=62=72=6F=6F=6B=0D=0A=43=\r\n" + - "=4F=20=36=39=39=\r\n" + - "=39=39;;;\r\nEND:VCARD", + doTest(""" + BEGIN:VCARD + ADR;HOME;CHARSET=UTF-8;ENCODING=QUOTED-PRINTABLE:;;\ + =38=38=20=4C=79=6E=62=72=6F=6F=6B=0D=0A=43= + =4F=20=36=39=39= + =39=39;;; + END:VCARD""", null, null, null, new String[] {"88 Lynbrook\r\nCO 69999"}, null, null, null, null, null, null, null); } diff --git a/core/src/test/java/com/google/zxing/client/result/CalendarParsedResultTestCase.java b/core/src/test/java/com/google/zxing/client/result/CalendarParsedResultTestCase.java index 2b7910727..5e6a855b2 100644 --- a/core/src/test/java/com/google/zxing/client/result/CalendarParsedResultTestCase.java +++ b/core/src/test/java/com/google/zxing/client/result/CalendarParsedResultTestCase.java @@ -51,100 +51,132 @@ public final class CalendarParsedResultTestCase extends Assert { @Test public void testStartEnd() { doTest( - "BEGIN:VCALENDAR\r\nBEGIN:VEVENT\r\n" + - "DTSTART:20080504T123456Z\r\n" + - "DTEND:20080505T234555Z\r\n" + - "END:VEVENT\r\nEND:VCALENDAR", + """ + BEGIN:VCALENDAR + BEGIN:VEVENT + DTSTART:20080504T123456Z + DTEND:20080505T234555Z + END:VEVENT + END:VCALENDAR""", null, null, null, "20080504T123456Z", "20080505T234555Z"); } @Test public void testNoVCalendar() { doTest( - "BEGIN:VEVENT\r\n" + - "DTSTART:20080504T123456Z\r\n" + - "DTEND:20080505T234555Z\r\n" + - "END:VEVENT", + """ + BEGIN:VEVENT + DTSTART:20080504T123456Z + DTEND:20080505T234555Z + END:VEVENT""", null, null, null, "20080504T123456Z", "20080505T234555Z"); } @Test public void testStart() { doTest( - "BEGIN:VCALENDAR\r\nBEGIN:VEVENT\r\n" + - "DTSTART:20080504T123456Z\r\n" + - "END:VEVENT\r\nEND:VCALENDAR", + """ + BEGIN:VCALENDAR + BEGIN:VEVENT + DTSTART:20080504T123456Z + END:VEVENT + END:VCALENDAR""", null, null, null, "20080504T123456Z", null); } @Test public void testDuration() { doTest( - "BEGIN:VCALENDAR\r\nBEGIN:VEVENT\r\n" + - "DTSTART:20080504T123456Z\r\n" + - "DURATION:P1D\r\n" + - "END:VEVENT\r\nEND:VCALENDAR", + """ + BEGIN:VCALENDAR + BEGIN:VEVENT + DTSTART:20080504T123456Z + DURATION:P1D + END:VEVENT + END:VCALENDAR""", null, null, null, "20080504T123456Z", "20080505T123456Z"); doTest( - "BEGIN:VCALENDAR\r\nBEGIN:VEVENT\r\n" + - "DTSTART:20080504T123456Z\r\n" + - "DURATION:P1DT2H3M4S\r\n" + - "END:VEVENT\r\nEND:VCALENDAR", + """ + BEGIN:VCALENDAR + BEGIN:VEVENT + DTSTART:20080504T123456Z + DURATION:P1DT2H3M4S + END:VEVENT + END:VCALENDAR""", null, null, null, "20080504T123456Z", "20080505T143800Z"); } @Test public void testSummary() { doTest( - "BEGIN:VCALENDAR\r\nBEGIN:VEVENT\r\n" + - "SUMMARY:foo\r\n" + - "DTSTART:20080504T123456Z\r\n" + - "END:VEVENT\r\nEND:VCALENDAR", + """ + BEGIN:VCALENDAR + BEGIN:VEVENT + SUMMARY:foo + DTSTART:20080504T123456Z + END:VEVENT + END:VCALENDAR""", null, "foo", null, "20080504T123456Z", null); } @Test public void testLocation() { doTest( - "BEGIN:VCALENDAR\r\nBEGIN:VEVENT\r\n" + - "LOCATION:Miami\r\n" + - "DTSTART:20080504T123456Z\r\n" + - "END:VEVENT\r\nEND:VCALENDAR", + """ + BEGIN:VCALENDAR + BEGIN:VEVENT + LOCATION:Miami + DTSTART:20080504T123456Z + END:VEVENT + END:VCALENDAR""", null, null, "Miami", "20080504T123456Z", null); } @Test public void testDescription() { doTest( - "BEGIN:VCALENDAR\r\nBEGIN:VEVENT\r\n" + - "DTSTART:20080504T123456Z\r\n" + - "DESCRIPTION:This is a test\r\n" + - "END:VEVENT\r\nEND:VCALENDAR", + """ + BEGIN:VCALENDAR + BEGIN:VEVENT + DTSTART:20080504T123456Z + DESCRIPTION:This is a test + END:VEVENT + END:VCALENDAR""", "This is a test", null, null, "20080504T123456Z", null); doTest( - "BEGIN:VCALENDAR\r\nBEGIN:VEVENT\r\n" + - "DTSTART:20080504T123456Z\r\n" + - "DESCRIPTION:This is a test\r\n\t with a continuation\r\n" + - "END:VEVENT\r\nEND:VCALENDAR", + """ + BEGIN:VCALENDAR + BEGIN:VEVENT + DTSTART:20080504T123456Z + DESCRIPTION:This is a test + with a continuation + END:VEVENT + END:VCALENDAR""", "This is a test with a continuation", null, null, "20080504T123456Z", null); } @Test public void testGeo() { doTest( - "BEGIN:VCALENDAR\r\nBEGIN:VEVENT\r\n" + - "DTSTART:20080504T123456Z\r\n" + - "GEO:-12.345;-45.678\r\n" + - "END:VEVENT\r\nEND:VCALENDAR", + """ + BEGIN:VCALENDAR + BEGIN:VEVENT + DTSTART:20080504T123456Z + GEO:-12.345;-45.678 + END:VEVENT + END:VCALENDAR""", null, null, null, "20080504T123456Z", null, null, null, -12.345, -45.678); } @Test public void testBadGeo() { // Not parsed as VEVENT - Result fakeResult = new Result("BEGIN:VCALENDAR\r\nBEGIN:VEVENT\r\n" + - "GEO:-12.345\r\n" + - "END:VEVENT\r\nEND:VCALENDAR", null, null, BarcodeFormat.QR_CODE); + Result fakeResult = new Result(""" + BEGIN:VCALENDAR + BEGIN:VEVENT + GEO:-12.345 + END:VEVENT + END:VCALENDAR""", null, null, BarcodeFormat.QR_CODE); ParsedResult result = ResultParser.parseResult(fakeResult); assertSame(ParsedResultType.TEXT, result.getType()); } @@ -152,42 +184,49 @@ public final class CalendarParsedResultTestCase extends Assert { @Test public void testOrganizer() { doTest( - "BEGIN:VCALENDAR\r\nBEGIN:VEVENT\r\n" + - "DTSTART:20080504T123456Z\r\n" + - "ORGANIZER:mailto:bob@example.org\r\n" + - "END:VEVENT\r\nEND:VCALENDAR", + """ + BEGIN:VCALENDAR + BEGIN:VEVENT + DTSTART:20080504T123456Z + ORGANIZER:mailto:bob@example.org + END:VEVENT + END:VCALENDAR""", null, null, null, "20080504T123456Z", null, "bob@example.org", null, Double.NaN, Double.NaN); } @Test public void testAttendees() { doTest( - "BEGIN:VCALENDAR\r\nBEGIN:VEVENT\r\n" + - "DTSTART:20080504T123456Z\r\n" + - "ATTENDEE:mailto:bob@example.org\r\n" + - "ATTENDEE:mailto:alice@example.org\r\n" + - "END:VEVENT\r\nEND:VCALENDAR", + """ + BEGIN:VCALENDAR + BEGIN:VEVENT + DTSTART:20080504T123456Z + ATTENDEE:mailto:bob@example.org + ATTENDEE:mailto:alice@example.org + END:VEVENT + END:VCALENDAR""", null, null, null, "20080504T123456Z", null, null, new String[] {"bob@example.org", "alice@example.org"}, Double.NaN, Double.NaN); } @Test public void testVEventEscapes() { - doTest("BEGIN:VEVENT\n" + - "CREATED:20111109T110351Z\n" + - "LAST-MODIFIED:20111109T170034Z\n" + - "DTSTAMP:20111109T170034Z\n" + - "UID:0f6d14ef-6cb7-4484-9080-61447ccdf9c2\n" + - "SUMMARY:Summary line\n" + - "CATEGORIES:Private\n" + - "DTSTART;TZID=Europe/Vienna:20111110T110000\n" + - "DTEND;TZID=Europe/Vienna:20111110T120000\n" + - "LOCATION:Location\\, with\\, escaped\\, commas\n" + - "DESCRIPTION:Meeting with a friend\\nlook at homepage first\\n\\n\n" + - " \\n\n" + - "SEQUENCE:1\n" + - "X-MOZ-GENERATION:1\n" + - "END:VEVENT", + doTest(""" + BEGIN:VEVENT + CREATED:20111109T110351Z + LAST-MODIFIED:20111109T170034Z + DTSTAMP:20111109T170034Z + UID:0f6d14ef-6cb7-4484-9080-61447ccdf9c2 + SUMMARY:Summary line + CATEGORIES:Private + DTSTART;TZID=Europe/Vienna:20111110T110000 + DTEND;TZID=Europe/Vienna:20111110T120000 + LOCATION:Location\\, with\\, escaped\\, commas + DESCRIPTION:Meeting with a friend\\nlook at homepage first\\n\\n + \\n + SEQUENCE:1 + X-MOZ-GENERATION:1 + END:VEVENT""", "Meeting with a friend\nlook at homepage first\n\n\n \n", "Summary line", "Location, with, escaped, commas", @@ -197,10 +236,11 @@ public final class CalendarParsedResultTestCase extends Assert { @Test public void testAllDayValueDate() { - doTest("BEGIN:VEVENT\n" + - "DTSTART;VALUE=DATE:20111110\n" + - "DTEND;VALUE=DATE:20111110\n" + - "END:VEVENT", + doTest(""" + BEGIN:VEVENT + DTSTART;VALUE=DATE:20111110 + DTEND;VALUE=DATE:20111110 + END:VEVENT""", null, null, null, "20111110T000000Z", "20111110T000000Z"); } @@ -247,4 +287,4 @@ public final class CalendarParsedResultTestCase extends Assert { } } -} \ No newline at end of file +} diff --git a/core/src/test/java/com/google/zxing/client/result/ParsedReaderResultTestCase.java b/core/src/test/java/com/google/zxing/client/result/ParsedReaderResultTestCase.java index 1363aee49..2d52ea5ab 100644 --- a/core/src/test/java/com/google/zxing/client/result/ParsedReaderResultTestCase.java +++ b/core/src/test/java/com/google/zxing/client/result/ParsedReaderResultTestCase.java @@ -212,22 +212,40 @@ public final class ParsedReaderResultTestCase extends Assert { @Test public void testVEvent() { // UTC times - doTestResult("BEGIN:VCALENDAR\r\nBEGIN:VEVENT\r\nSUMMARY:foo\r\nDTSTART:20080504T123456Z\r\n" + - "DTEND:20080505T234555Z\r\nEND:VEVENT\r\nEND:VCALENDAR", + doTestResult(""" + BEGIN:VCALENDAR + BEGIN:VEVENT + SUMMARY:foo + DTSTART:20080504T123456Z + DTEND:20080505T234555Z + END:VEVENT + END:VCALENDAR""", "foo\n" + formatTime(2008, 5, 4, 12, 34, 56) + "\n" + formatTime(2008, 5, 5, 23, 45, 55), ParsedResultType.CALENDAR); - doTestResult("BEGIN:VEVENT\r\nSUMMARY:foo\r\nDTSTART:20080504T123456Z\r\n" + - "DTEND:20080505T234555Z\r\nEND:VEVENT", "foo\n" + formatTime(2008, 5, 4, 12, 34, 56) + "\n" + + doTestResult(""" + BEGIN:VEVENT + SUMMARY:foo + DTSTART:20080504T123456Z + DTEND:20080505T234555Z + END:VEVENT""", "foo\n" + formatTime(2008, 5, 4, 12, 34, 56) + "\n" + formatTime(2008, 5, 5, 23, 45, 55), ParsedResultType.CALENDAR); // Local times - doTestResult("BEGIN:VEVENT\r\nSUMMARY:foo\r\nDTSTART:20080504T123456\r\n" + - "DTEND:20080505T234555\r\nEND:VEVENT", "foo\n" + formatTime(2008, 5, 4, 12, 34, 56) + "\n" + + doTestResult(""" + BEGIN:VEVENT + SUMMARY:foo + DTSTART:20080504T123456 + DTEND:20080505T234555 + END:VEVENT""", "foo\n" + formatTime(2008, 5, 4, 12, 34, 56) + "\n" + formatTime(2008, 5, 5, 23, 45, 55), ParsedResultType.CALENDAR); // Date only (all day event) - doTestResult("BEGIN:VEVENT\r\nSUMMARY:foo\r\nDTSTART:20080504\r\n" + - "DTEND:20080505\r\nEND:VEVENT", "foo\n" + formatDate(2008, 5, 4) + "\n" + + doTestResult(""" + BEGIN:VEVENT + SUMMARY:foo + DTSTART:20080504 + DTEND:20080505 + END:VEVENT""", "foo\n" + formatDate(2008, 5, 4) + "\n" + formatDate(2008, 5, 5), ParsedResultType.CALENDAR); // Start time only diff --git a/core/src/test/java/com/google/zxing/common/AbstractBlackBoxTestCase.java b/core/src/test/java/com/google/zxing/common/AbstractBlackBoxTestCase.java index adce02a89..82e0b167d 100644 --- a/core/src/test/java/com/google/zxing/common/AbstractBlackBoxTestCase.java +++ b/core/src/test/java/com/google/zxing/common/AbstractBlackBoxTestCase.java @@ -42,7 +42,6 @@ import java.nio.charset.StandardCharsets; import java.nio.file.DirectoryStream; import java.nio.file.Files; import java.nio.file.Path; -import java.nio.file.Paths; import java.util.ArrayList; import java.util.EnumMap; import java.util.List; @@ -66,10 +65,10 @@ public abstract class AbstractBlackBoxTestCase extends Assert { public static Path buildTestBase(String testBasePathSuffix) { // A little workaround to prevent aggravation in my IDE - Path testBase = Paths.get(testBasePathSuffix); + Path testBase = Path.of(testBasePathSuffix); if (!Files.exists(testBase)) { // try starting with 'core' since the test base is often given as the project root - testBase = Paths.get("core").resolve(testBasePathSuffix); + testBase = Path.of("core").resolve(testBasePathSuffix); } return testBase; } @@ -143,7 +142,7 @@ public abstract class AbstractBlackBoxTestCase extends Assert { int[] tryHarderMisreadCounts = new int[testCount]; for (Path testImage : imageFiles) { - log.info(String.format("Starting %s", testImage)); + log.info("Starting %s".formatted(testImage)); BufferedImage image = ImageIO.read(testImage.toFile()); @@ -181,7 +180,7 @@ public abstract class AbstractBlackBoxTestCase extends Assert { misreadCounts[x]++; } } catch (ReaderException ignored) { - log.fine(String.format("could not read at rotation %f", rotation)); + log.fine("could not read at rotation %f".formatted(rotation)); } try { if (decode(bitmap, rotation, expectedText, expectedMetadata, true)) { @@ -190,7 +189,7 @@ public abstract class AbstractBlackBoxTestCase extends Assert { tryHarderMisreadCounts[x]++; } } catch (ReaderException ignored) { - log.fine(String.format("could not read at rotation %f w/TH", rotation)); + log.fine("could not read at rotation %f w/TH".formatted(rotation)); } } } @@ -203,17 +202,17 @@ public abstract class AbstractBlackBoxTestCase extends Assert { for (int x = 0; x < testResults.size(); x++) { TestResult testResult = testResults.get(x); - log.info(String.format("Rotation %d degrees:", (int) testResult.getRotation())); - log.info(String.format(" %d of %d images passed (%d required)", - passedCounts[x], imageFiles.size(), testResult.getMustPassCount())); + log.info("Rotation %d degrees:".formatted((int) testResult.getRotation())); + log.info(" %d of %d images passed (%d required)".formatted( + passedCounts[x], imageFiles.size(), testResult.getMustPassCount())); int failed = imageFiles.size() - passedCounts[x]; - log.info(String.format(" %d failed due to misreads, %d not detected", - misreadCounts[x], failed - misreadCounts[x])); - log.info(String.format(" %d of %d images passed with try harder (%d required)", - tryHarderCounts[x], imageFiles.size(), testResult.getTryHarderCount())); + log.info(" %d failed due to misreads, %d not detected".formatted( + misreadCounts[x], failed - misreadCounts[x])); + log.info(" %d of %d images passed with try harder (%d required)".formatted( + tryHarderCounts[x], imageFiles.size(), testResult.getTryHarderCount())); failed = imageFiles.size() - tryHarderCounts[x]; - log.info(String.format(" %d failed due to misreads, %d not detected", - tryHarderMisreadCounts[x], failed - tryHarderMisreadCounts[x])); + log.info(" %d failed due to misreads, %d not detected".formatted( + tryHarderMisreadCounts[x], failed - tryHarderMisreadCounts[x])); totalFound += passedCounts[x] + tryHarderCounts[x]; totalMustPass += testResult.getMustPassCount() + testResult.getTryHarderCount(); totalMisread += misreadCounts[x] + tryHarderMisreadCounts[x]; @@ -221,18 +220,18 @@ public abstract class AbstractBlackBoxTestCase extends Assert { } int totalTests = imageFiles.size() * testCount * 2; - log.info(String.format("Decoded %d images out of %d (%d%%, %d required)", - totalFound, totalTests, totalFound * 100 / totalTests, totalMustPass)); + log.info("Decoded %d images out of %d (%d%%, %d required)".formatted( + totalFound, totalTests, totalFound * 100 / totalTests, totalMustPass)); if (totalFound > totalMustPass) { - log.warning(String.format("+++ Test too lax by %d images", totalFound - totalMustPass)); + log.warning("+++ Test too lax by %d images".formatted(totalFound - totalMustPass)); } else if (totalFound < totalMustPass) { - log.warning(String.format("--- Test failed by %d images", totalMustPass - totalFound)); + log.warning("--- Test failed by %d images".formatted(totalMustPass - totalFound)); } if (totalMisread < totalMaxMisread) { - log.warning(String.format("+++ Test expects too many misreads by %d images", totalMaxMisread - totalMisread)); + log.warning("+++ Test expects too many misreads by %d images".formatted(totalMaxMisread - totalMisread)); } else if (totalMisread > totalMaxMisread) { - log.warning(String.format("--- Test had too many misreads by %d images", totalMisread - totalMaxMisread)); + log.warning("--- Test had too many misreads by %d images".formatted(totalMisread - totalMaxMisread)); } // Then run through again and assert if any failed @@ -266,7 +265,7 @@ public abstract class AbstractBlackBoxTestCase extends Assert { Map expectedMetadata, boolean tryHarder) throws ReaderException { - String suffix = String.format(" (%srotation: %d)", tryHarder ? "try harder, " : "", (int) rotation); + String suffix = " (%srotation: %d)".formatted(tryHarder ? "try harder, " : "", (int) rotation); Map hints = this.hints.clone(); if (tryHarder) { @@ -289,15 +288,15 @@ public abstract class AbstractBlackBoxTestCase extends Assert { } if (expectedFormat != result.getBarcodeFormat()) { - log.info(String.format("Format mismatch: expected '%s' but got '%s'%s", - expectedFormat, result.getBarcodeFormat(), suffix)); + log.info("Format mismatch: expected '%s' but got '%s'%s".formatted( + expectedFormat, result.getBarcodeFormat(), suffix)); return false; } String resultText = result.getText(); if (!expectedText.equals(resultText)) { - log.info(String.format("Content mismatch: expected '%s' but got '%s'%s", - expectedText, resultText, suffix)); + log.info("Content mismatch: expected '%s' but got '%s'%s".formatted( + expectedText, resultText, suffix)); return false; } @@ -307,8 +306,8 @@ public abstract class AbstractBlackBoxTestCase extends Assert { Object expectedValue = metadatum.getValue(); Object actualValue = resultMetadata == null ? null : resultMetadata.get(key); if (!expectedValue.equals(actualValue)) { - log.info(String.format("Metadata mismatch for key '%s': expected '%s' but got '%s'", - key, expectedValue, actualValue)); + log.info("Metadata mismatch for key '%s': expected '%s' but got '%s'".formatted( + key, expectedValue, actualValue)); return false; } } diff --git a/core/src/test/java/com/google/zxing/common/AbstractNegativeBlackBoxTestCase.java b/core/src/test/java/com/google/zxing/common/AbstractNegativeBlackBoxTestCase.java index ba37a9bec..ec6d5aa4b 100644 --- a/core/src/test/java/com/google/zxing/common/AbstractNegativeBlackBoxTestCase.java +++ b/core/src/test/java/com/google/zxing/common/AbstractNegativeBlackBoxTestCase.java @@ -83,7 +83,7 @@ public abstract class AbstractNegativeBlackBoxTestCase extends AbstractBlackBoxT List imageFiles = getImageFiles(); int[] falsePositives = new int[testResults.size()]; for (Path testImage : imageFiles) { - log.info(String.format("Starting %s", testImage)); + log.info("Starting %s".formatted(testImage)); BufferedImage image = ImageIO.read(testImage.toFile()); if (image == null) { throw new IOException("Could not read image: " + testImage); @@ -106,16 +106,16 @@ public abstract class AbstractNegativeBlackBoxTestCase extends AbstractBlackBoxT } if (totalFalsePositives < totalAllowed) { - log.warning(String.format("+++ Test too lax by %d images", totalAllowed - totalFalsePositives)); + log.warning("+++ Test too lax by %d images".formatted(totalAllowed - totalFalsePositives)); } else if (totalFalsePositives > totalAllowed) { - log.warning(String.format("--- Test failed by %d images", totalFalsePositives - totalAllowed)); + log.warning("--- Test failed by %d images".formatted(totalFalsePositives - totalAllowed)); } for (int x = 0; x < testResults.size(); x++) { TestResult testResult = testResults.get(x); - log.info(String.format("Rotation %d degrees: %d of %d images were false positives (%d allowed)", - (int) testResult.getRotation(), falsePositives[x], imageFiles.size(), - testResult.getFalsePositivesAllowed())); + log.info("Rotation %d degrees: %d of %d images were false positives (%d allowed)".formatted( + (int) testResult.getRotation(), falsePositives[x], imageFiles.size(), + testResult.getFalsePositivesAllowed())); assertTrue("Rotation " + testResult.getRotation() + " degrees: Too many false positives found", falsePositives[x] <= testResult.getFalsePositivesAllowed()); } @@ -135,8 +135,8 @@ public abstract class AbstractNegativeBlackBoxTestCase extends AbstractBlackBoxT Result result; try { result = getReader().decode(bitmap); - log.info(String.format("Found false positive: '%s' with format '%s' (rotation: %d)", - result.getText(), result.getBarcodeFormat(), (int) rotationInDegrees)); + log.info("Found false positive: '%s' with format '%s' (rotation: %d)".formatted( + result.getText(), result.getBarcodeFormat(), (int) rotationInDegrees)); return false; } catch (ReaderException re) { // continue @@ -147,8 +147,8 @@ public abstract class AbstractNegativeBlackBoxTestCase extends AbstractBlackBoxT hints.put(DecodeHintType.TRY_HARDER, Boolean.TRUE); try { result = getReader().decode(bitmap, hints); - log.info(String.format("Try harder found false positive: '%s' with format '%s' (rotation: %d)", - result.getText(), result.getBarcodeFormat(), (int) rotationInDegrees)); + log.info("Try harder found false positive: '%s' with format '%s' (rotation: %d)".formatted( + result.getText(), result.getBarcodeFormat(), (int) rotationInDegrees)); return false; } catch (ReaderException re) { // continue diff --git a/core/src/test/java/com/google/zxing/common/reedsolomon/ReedSolomonTestCase.java b/core/src/test/java/com/google/zxing/common/reedsolomon/ReedSolomonTestCase.java index 5d6207208..e2fcfac80 100644 --- a/core/src/test/java/com/google/zxing/common/reedsolomon/ReedSolomonTestCase.java +++ b/core/src/test/java/com/google/zxing/common/reedsolomon/ReedSolomonTestCase.java @@ -513,7 +513,7 @@ public final class ReedSolomonTestCase extends Assert { private static String arrayToString(int[] data) { StringBuilder sb = new StringBuilder("{"); for (int i = 0; i < data.length; i++) { - sb.append(String.format(i > 0 ? ",%X" : "%X", data[i])); + sb.append((i > 0 ? ",%X" : "%X").formatted(data[i])); } return sb.append('}').toString(); } diff --git a/core/src/test/java/com/google/zxing/pdf417/PDF417BlackBox4TestCase.java b/core/src/test/java/com/google/zxing/pdf417/PDF417BlackBox4TestCase.java index de4952a26..0f40299ad 100644 --- a/core/src/test/java/com/google/zxing/pdf417/PDF417BlackBox4TestCase.java +++ b/core/src/test/java/com/google/zxing/pdf417/PDF417BlackBox4TestCase.java @@ -80,7 +80,7 @@ public final class PDF417BlackBox4TestCase extends AbstractBlackBoxTestCase { Path testBase = getTestBase(); for (Entry> testImageGroup : imageFiles.entrySet()) { - log.fine(String.format("Starting Image Group %s", testImageGroup.getKey())); + log.fine("Starting Image Group %s".formatted(testImageGroup.getKey())); String fileBaseName = testImageGroup.getKey(); String expectedText; @@ -133,23 +133,23 @@ public final class PDF417BlackBox4TestCase extends AbstractBlackBoxTestCase { int numberOfTests = imageFiles.keySet().size(); for (int x = 0; x < testResults.size(); x++) { TestResult testResult = testResults.get(x); - log.info(String.format("Rotation %d degrees:", (int) testResult.getRotation())); - log.info(String.format(" %d of %d images passed (%d required)", passedCounts[x], numberOfTests, + log.info("Rotation %d degrees:".formatted((int) testResult.getRotation())); + log.info(" %d of %d images passed (%d required)".formatted(passedCounts[x], numberOfTests, testResult.getMustPassCount())); - log.info(String.format(" %d of %d images passed with try harder (%d required)", tryHarderCounts[x], + log.info(" %d of %d images passed with try harder (%d required)".formatted(tryHarderCounts[x], numberOfTests, testResult.getTryHarderCount())); totalFound += passedCounts[x] + tryHarderCounts[x]; totalMustPass += testResult.getMustPassCount() + testResult.getTryHarderCount(); } int totalTests = numberOfTests * testCount * 2; - log.info(String.format("Decoded %d images out of %d (%d%%, %d required)", totalFound, totalTests, totalFound * + log.info("Decoded %d images out of %d (%d%%, %d required)".formatted(totalFound, totalTests, totalFound * 100 / totalTests, totalMustPass)); if (totalFound > totalMustPass) { - log.warning(String.format("+++ Test too lax by %d images", totalFound - totalMustPass)); + log.warning("+++ Test too lax by %d images".formatted(totalFound - totalMustPass)); } else if (totalFound < totalMustPass) { - log.warning(String.format("--- Test failed by %d images", totalMustPass - totalFound)); + log.warning("--- Test failed by %d images".formatted(totalMustPass - totalFound)); } // Then run through again and assert if any failed diff --git a/core/src/test/java/com/google/zxing/pdf417/PDF417WriterTestCase.java b/core/src/test/java/com/google/zxing/pdf417/PDF417WriterTestCase.java index fff0f32e6..78362d556 100644 --- a/core/src/test/java/com/google/zxing/pdf417/PDF417WriterTestCase.java +++ b/core/src/test/java/com/google/zxing/pdf417/PDF417WriterTestCase.java @@ -41,30 +41,32 @@ public final class PDF417WriterTestCase extends Assert { BitMatrix matrix = writer.encode("Hello Google", BarcodeFormat.PDF_417, size, size, hints); assertNotNull(matrix); String expected = - "X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X \n" + - "X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X \n" + - "X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X \n" + - "X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X \n" + - "X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X \n" + - "X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X \n" + - "X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X \n" + - "X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X \n" + - "X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X \n" + - "X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X \n" + - "X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X \n" + - "X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X \n" + - "X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X \n" + - "X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X \n" + - "X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X \n" + - "X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X \n" + - "X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X \n" + - "X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X \n" + - "X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X \n" + - "X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X \n" + - "X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X \n" + - "X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X \n" + - "X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X \n" + - "X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X \n"; + """ + X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X\s + X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X\s + X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X\s + X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X\s + X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X\s + X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X\s + X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X\s + X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X\s + X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X\s + X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X\s + X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X\s + X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X\s + X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X\s + X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X\s + X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X\s + X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X\s + X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X\s + X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X\s + X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X\s + X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X\s + X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X\s + X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X\s + X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X\s + X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X\s + """; assertEquals(expected, matrix.toString()); } diff --git a/core/src/test/java/com/google/zxing/qrcode/QRCodeWriterTestCase.java b/core/src/test/java/com/google/zxing/qrcode/QRCodeWriterTestCase.java index 0b82430ff..f429e9bfc 100644 --- a/core/src/test/java/com/google/zxing/qrcode/QRCodeWriterTestCase.java +++ b/core/src/test/java/com/google/zxing/qrcode/QRCodeWriterTestCase.java @@ -33,7 +33,6 @@ import java.awt.image.BufferedImage; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; -import java.nio.file.Paths; import java.util.EnumMap; import java.util.Map; @@ -43,13 +42,13 @@ import java.util.Map; */ public final class QRCodeWriterTestCase extends Assert { - private static final Path BASE_IMAGE_PATH = Paths.get("src/test/resources/golden/qrcode/"); + private static final Path BASE_IMAGE_PATH = Path.of("src/test/resources/golden/qrcode/"); private static BufferedImage loadImage(String fileName) throws IOException { Path file = BASE_IMAGE_PATH.resolve(fileName); if (!Files.exists(file)) { // try starting with 'core' since the test base is often given as the project root - file = Paths.get("core/").resolve(BASE_IMAGE_PATH).resolve(fileName); + file = Path.of("core/").resolve(BASE_IMAGE_PATH).resolve(fileName); } assertTrue("Please download and install test images, and run from the 'core' directory", Files.exists(file)); return ImageIO.read(file.toFile()); diff --git a/core/src/test/java/com/google/zxing/qrcode/encoder/EncoderTestCase.java b/core/src/test/java/com/google/zxing/qrcode/encoder/EncoderTestCase.java index b76ef3840..fb909f770 100644 --- a/core/src/test/java/com/google/zxing/qrcode/encoder/EncoderTestCase.java +++ b/core/src/test/java/com/google/zxing/qrcode/encoder/EncoderTestCase.java @@ -97,34 +97,36 @@ public final class EncoderTestCase extends Assert { @Test public void testEncode() throws WriterException { QRCode qrCode = Encoder.encode("ABCDEF", ErrorCorrectionLevel.H); - String expected = "<<\n" + - " mode: ALPHANUMERIC\n" + - " ecLevel: H\n" + - " version: 1\n" + - " maskPattern: 0\n" + - " matrix:\n" + - " 1 1 1 1 1 1 1 0 1 1 1 1 0 0 1 1 1 1 1 1 1\n" + - " 1 0 0 0 0 0 1 0 0 1 1 1 0 0 1 0 0 0 0 0 1\n" + - " 1 0 1 1 1 0 1 0 0 1 0 1 1 0 1 0 1 1 1 0 1\n" + - " 1 0 1 1 1 0 1 0 1 1 1 0 1 0 1 0 1 1 1 0 1\n" + - " 1 0 1 1 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1\n" + - " 1 0 0 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 1\n" + - " 1 1 1 1 1 1 1 0 1 0 1 0 1 0 1 1 1 1 1 1 1\n" + - " 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0\n" + - " 0 0 1 0 1 1 1 0 1 1 0 0 1 1 0 0 0 1 0 0 1\n" + - " 1 0 1 1 1 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0\n" + - " 0 0 1 1 0 0 1 0 1 0 0 0 1 0 1 0 1 0 1 1 0\n" + - " 1 1 0 1 0 1 0 1 1 1 0 1 0 1 0 0 0 0 0 1 0\n" + - " 0 0 1 1 0 1 1 1 1 0 0 0 1 0 1 0 1 1 1 1 0\n" + - " 0 0 0 0 0 0 0 0 1 0 0 1 1 1 0 1 0 1 0 0 0\n" + - " 1 1 1 1 1 1 1 0 0 0 1 0 1 0 1 1 0 0 0 0 1\n" + - " 1 0 0 0 0 0 1 0 1 1 1 1 0 1 0 1 1 1 1 0 1\n" + - " 1 0 1 1 1 0 1 0 1 0 1 1 0 1 0 1 0 0 0 0 1\n" + - " 1 0 1 1 1 0 1 0 0 1 1 0 1 1 1 1 0 1 0 1 0\n" + - " 1 0 1 1 1 0 1 0 1 0 0 0 1 0 1 0 1 1 1 0 1\n" + - " 1 0 0 0 0 0 1 0 0 1 1 0 1 1 0 1 0 0 0 1 1\n" + - " 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 1 0 1 0 1\n" + - ">>\n"; + String expected = """ + << + mode: ALPHANUMERIC + ecLevel: H + version: 1 + maskPattern: 0 + matrix: + 1 1 1 1 1 1 1 0 1 1 1 1 0 0 1 1 1 1 1 1 1 + 1 0 0 0 0 0 1 0 0 1 1 1 0 0 1 0 0 0 0 0 1 + 1 0 1 1 1 0 1 0 0 1 0 1 1 0 1 0 1 1 1 0 1 + 1 0 1 1 1 0 1 0 1 1 1 0 1 0 1 0 1 1 1 0 1 + 1 0 1 1 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 + 1 0 0 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 1 + 1 1 1 1 1 1 1 0 1 0 1 0 1 0 1 1 1 1 1 1 1 + 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 + 0 0 1 0 1 1 1 0 1 1 0 0 1 1 0 0 0 1 0 0 1 + 1 0 1 1 1 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 + 0 0 1 1 0 0 1 0 1 0 0 0 1 0 1 0 1 0 1 1 0 + 1 1 0 1 0 1 0 1 1 1 0 1 0 1 0 0 0 0 0 1 0 + 0 0 1 1 0 1 1 1 1 0 0 0 1 0 1 0 1 1 1 1 0 + 0 0 0 0 0 0 0 0 1 0 0 1 1 1 0 1 0 1 0 0 0 + 1 1 1 1 1 1 1 0 0 0 1 0 1 0 1 1 0 0 0 0 1 + 1 0 0 0 0 0 1 0 1 1 1 1 0 1 0 1 1 1 1 0 1 + 1 0 1 1 1 0 1 0 1 0 1 1 0 1 0 1 0 0 0 0 1 + 1 0 1 1 1 0 1 0 0 1 1 0 1 1 1 1 0 1 0 1 0 + 1 0 1 1 1 0 1 0 1 0 0 0 1 0 1 0 1 1 1 0 1 + 1 0 0 0 0 0 1 0 0 1 1 0 1 1 0 1 0 0 0 1 1 + 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 1 0 1 0 1 + >> + """; assertEquals(expected, qrCode.toString()); } @@ -148,34 +150,36 @@ public final class EncoderTestCase extends Assert { Map hints = new EnumMap<>(EncodeHintType.class); hints.put(EncodeHintType.CHARACTER_SET, "UTF8"); QRCode qrCode = Encoder.encode("hello", ErrorCorrectionLevel.H, hints); - String expected = "<<\n" + - " mode: BYTE\n" + - " ecLevel: H\n" + - " version: 1\n" + - " maskPattern: 3\n" + - " matrix:\n" + - " 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 1 1 1 1 1\n" + - " 1 0 0 0 0 0 1 0 0 0 1 0 1 0 1 0 0 0 0 0 1\n" + - " 1 0 1 1 1 0 1 0 0 1 0 1 0 0 1 0 1 1 1 0 1\n" + - " 1 0 1 1 1 0 1 0 0 1 1 0 1 0 1 0 1 1 1 0 1\n" + - " 1 0 1 1 1 0 1 0 1 0 1 0 1 0 1 0 1 1 1 0 1\n" + - " 1 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 1\n" + - " 1 1 1 1 1 1 1 0 1 0 1 0 1 0 1 1 1 1 1 1 1\n" + - " 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0\n" + - " 0 0 1 1 0 0 1 1 1 1 0 0 0 1 1 0 1 0 0 0 0\n" + - " 0 0 1 1 1 0 0 0 0 0 1 1 0 0 0 1 0 1 1 1 0\n" + - " 0 1 0 1 0 1 1 1 0 1 0 1 0 0 0 0 0 1 1 1 1\n" + - " 1 1 0 0 1 0 0 1 1 0 0 1 1 1 1 0 1 0 1 1 0\n" + - " 0 0 0 0 1 0 1 1 1 1 0 0 0 0 0 1 0 0 1 0 0\n" + - " 0 0 0 0 0 0 0 0 1 1 1 1 0 0 1 1 1 0 0 0 1\n" + - " 1 1 1 1 1 1 1 0 1 1 1 0 1 0 1 1 0 0 1 0 0\n" + - " 1 0 0 0 0 0 1 0 0 0 1 0 0 1 1 1 1 1 1 0 1\n" + - " 1 0 1 1 1 0 1 0 0 1 0 0 0 0 1 1 0 0 0 0 0\n" + - " 1 0 1 1 1 0 1 0 1 1 1 0 1 0 0 0 1 1 0 0 0\n" + - " 1 0 1 1 1 0 1 0 1 1 0 0 0 1 0 0 1 0 0 0 0\n" + - " 1 0 0 0 0 0 1 0 0 0 0 1 1 0 1 0 1 0 1 1 0\n" + - " 1 1 1 1 1 1 1 0 0 1 0 1 1 1 0 1 1 0 0 0 0\n" + - ">>\n"; + String expected = """ + << + mode: BYTE + ecLevel: H + version: 1 + maskPattern: 3 + matrix: + 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 1 1 1 1 1 + 1 0 0 0 0 0 1 0 0 0 1 0 1 0 1 0 0 0 0 0 1 + 1 0 1 1 1 0 1 0 0 1 0 1 0 0 1 0 1 1 1 0 1 + 1 0 1 1 1 0 1 0 0 1 1 0 1 0 1 0 1 1 1 0 1 + 1 0 1 1 1 0 1 0 1 0 1 0 1 0 1 0 1 1 1 0 1 + 1 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 1 + 1 1 1 1 1 1 1 0 1 0 1 0 1 0 1 1 1 1 1 1 1 + 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 + 0 0 1 1 0 0 1 1 1 1 0 0 0 1 1 0 1 0 0 0 0 + 0 0 1 1 1 0 0 0 0 0 1 1 0 0 0 1 0 1 1 1 0 + 0 1 0 1 0 1 1 1 0 1 0 1 0 0 0 0 0 1 1 1 1 + 1 1 0 0 1 0 0 1 1 0 0 1 1 1 1 0 1 0 1 1 0 + 0 0 0 0 1 0 1 1 1 1 0 0 0 0 0 1 0 0 1 0 0 + 0 0 0 0 0 0 0 0 1 1 1 1 0 0 1 1 1 0 0 0 1 + 1 1 1 1 1 1 1 0 1 1 1 0 1 0 1 1 0 0 1 0 0 + 1 0 0 0 0 0 1 0 0 0 1 0 0 1 1 1 1 1 1 0 1 + 1 0 1 1 1 0 1 0 0 1 0 0 0 0 1 1 0 0 0 0 0 + 1 0 1 1 1 0 1 0 1 1 1 0 1 0 0 0 1 1 0 0 0 + 1 0 1 1 1 0 1 0 1 1 0 0 0 1 0 0 1 0 0 0 0 + 1 0 0 0 0 0 1 0 0 0 0 1 1 0 1 0 1 0 1 1 0 + 1 1 1 1 1 1 1 0 0 1 0 1 1 1 0 1 1 0 0 0 0 + >> + """; assertEquals(expected, qrCode.toString()); } @@ -185,34 +189,36 @@ public final class EncoderTestCase extends Assert { hints.put(EncodeHintType.CHARACTER_SET, "Shift_JIS"); // Nihon in Kanji QRCode qrCode = Encoder.encode("\u65e5\u672c", ErrorCorrectionLevel.M, hints); - String expected = "<<\n" + - " mode: KANJI\n" + - " ecLevel: M\n" + - " version: 1\n" + - " maskPattern: 4\n" + - " matrix:\n" + - " 1 1 1 1 1 1 1 0 1 1 1 1 0 0 1 1 1 1 1 1 1\n" + - " 1 0 0 0 0 0 1 0 0 0 0 1 1 0 1 0 0 0 0 0 1\n" + - " 1 0 1 1 1 0 1 0 0 0 1 0 0 0 1 0 1 1 1 0 1\n" + - " 1 0 1 1 1 0 1 0 1 0 1 0 1 0 1 0 1 1 1 0 1\n" + - " 1 0 1 1 1 0 1 0 1 1 0 1 1 0 1 0 1 1 1 0 1\n" + - " 1 0 0 0 0 0 1 0 1 0 1 0 1 0 1 0 0 0 0 0 1\n" + - " 1 1 1 1 1 1 1 0 1 0 1 0 1 0 1 1 1 1 1 1 1\n" + - " 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0\n" + - " 1 0 0 0 1 0 1 1 1 0 0 0 1 1 1 1 1 1 0 0 1\n" + - " 0 1 1 0 0 1 0 1 1 0 1 0 1 1 1 0 0 0 1 0 1\n" + - " 1 1 1 1 0 1 1 1 0 0 1 0 1 1 0 0 0 0 1 1 1\n" + - " 1 0 1 0 1 1 0 0 0 0 1 1 1 0 0 1 0 0 1 1 0\n" + - " 0 0 1 0 1 1 1 1 1 1 1 1 0 0 1 1 1 1 0 1 1\n" + - " 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 1 0 1 0 0 0\n" + - " 1 1 1 1 1 1 1 0 1 1 0 1 0 0 1 1 1 1 1 1 0\n" + - " 1 0 0 0 0 0 1 0 0 0 0 0 0 1 1 0 1 0 1 0 1\n" + - " 1 0 1 1 1 0 1 0 1 0 1 0 1 1 1 0 0 0 1 1 1\n" + - " 1 0 1 1 1 0 1 0 0 1 0 0 1 1 1 0 0 0 1 1 1\n" + - " 1 0 1 1 1 0 1 0 0 1 1 0 1 1 0 0 0 1 0 0 0\n" + - " 1 0 0 0 0 0 1 0 0 0 1 1 1 0 0 1 0 1 0 0 0\n" + - " 1 1 1 1 1 1 1 0 1 1 1 1 0 0 1 1 1 0 1 1 0\n" + - ">>\n"; + String expected = """ + << + mode: KANJI + ecLevel: M + version: 1 + maskPattern: 4 + matrix: + 1 1 1 1 1 1 1 0 1 1 1 1 0 0 1 1 1 1 1 1 1 + 1 0 0 0 0 0 1 0 0 0 0 1 1 0 1 0 0 0 0 0 1 + 1 0 1 1 1 0 1 0 0 0 1 0 0 0 1 0 1 1 1 0 1 + 1 0 1 1 1 0 1 0 1 0 1 0 1 0 1 0 1 1 1 0 1 + 1 0 1 1 1 0 1 0 1 1 0 1 1 0 1 0 1 1 1 0 1 + 1 0 0 0 0 0 1 0 1 0 1 0 1 0 1 0 0 0 0 0 1 + 1 1 1 1 1 1 1 0 1 0 1 0 1 0 1 1 1 1 1 1 1 + 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 + 1 0 0 0 1 0 1 1 1 0 0 0 1 1 1 1 1 1 0 0 1 + 0 1 1 0 0 1 0 1 1 0 1 0 1 1 1 0 0 0 1 0 1 + 1 1 1 1 0 1 1 1 0 0 1 0 1 1 0 0 0 0 1 1 1 + 1 0 1 0 1 1 0 0 0 0 1 1 1 0 0 1 0 0 1 1 0 + 0 0 1 0 1 1 1 1 1 1 1 1 0 0 1 1 1 1 0 1 1 + 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 1 0 1 0 0 0 + 1 1 1 1 1 1 1 0 1 1 0 1 0 0 1 1 1 1 1 1 0 + 1 0 0 0 0 0 1 0 0 0 0 0 0 1 1 0 1 0 1 0 1 + 1 0 1 1 1 0 1 0 1 0 1 0 1 1 1 0 0 0 1 1 1 + 1 0 1 1 1 0 1 0 0 1 0 0 1 1 1 0 0 0 1 1 1 + 1 0 1 1 1 0 1 0 0 1 1 0 1 1 0 0 0 1 0 0 0 + 1 0 0 0 0 0 1 0 0 0 1 1 1 0 0 1 0 1 0 0 0 + 1 1 1 1 1 1 1 0 1 1 1 1 0 0 1 1 1 0 1 1 0 + >> + """; assertEquals(expected, qrCode.toString()); } @@ -221,34 +227,36 @@ public final class EncoderTestCase extends Assert { Map hints = new EnumMap<>(EncodeHintType.class); hints.put(EncodeHintType.CHARACTER_SET, "Shift_JIS"); QRCode qrCode = Encoder.encode("0123", ErrorCorrectionLevel.M, hints); - String expected = "<<\n" + - " mode: NUMERIC\n" + - " ecLevel: M\n" + - " version: 1\n" + - " maskPattern: 0\n" + - " matrix:\n" + - " 1 1 1 1 1 1 1 0 0 0 0 0 1 0 1 1 1 1 1 1 1\n" + - " 1 0 0 0 0 0 1 0 1 1 0 1 0 0 1 0 0 0 0 0 1\n" + - " 1 0 1 1 1 0 1 0 0 1 1 0 0 0 1 0 1 1 1 0 1\n" + - " 1 0 1 1 1 0 1 0 0 0 1 0 0 0 1 0 1 1 1 0 1\n" + - " 1 0 1 1 1 0 1 0 1 0 1 1 1 0 1 0 1 1 1 0 1\n" + - " 1 0 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 1\n" + - " 1 1 1 1 1 1 1 0 1 0 1 0 1 0 1 1 1 1 1 1 1\n" + - " 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0\n" + - " 1 0 1 0 1 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0\n" + - " 0 0 0 0 0 0 0 1 1 0 1 1 0 1 0 1 0 1 0 1 0\n" + - " 0 1 0 1 0 1 1 1 1 0 0 1 0 1 1 1 0 1 0 1 0\n" + - " 0 1 1 1 0 0 0 0 0 0 1 1 1 1 0 1 1 1 0 1 0\n" + - " 0 0 0 1 1 1 1 1 1 1 1 1 0 1 1 1 0 0 1 0 1\n" + - " 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 0 0 0 1 1 0\n" + - " 1 1 1 1 1 1 1 0 0 1 0 0 1 0 0 0 1 0 0 0 1\n" + - " 1 0 0 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 1 0 0\n" + - " 1 0 1 1 1 0 1 0 1 1 0 0 1 0 1 0 1 0 1 0 1\n" + - " 1 0 1 1 1 0 1 0 0 1 1 1 0 1 0 1 0 1 0 1 0\n" + - " 1 0 1 1 1 0 1 0 1 0 1 1 0 1 1 1 0 1 1 0 1\n" + - " 1 0 0 0 0 0 1 0 0 0 1 1 1 1 0 1 1 1 0 0 0\n" + - " 1 1 1 1 1 1 1 0 1 0 1 1 0 1 1 1 0 1 1 0 1\n" + - ">>\n"; + String expected = """ + << + mode: NUMERIC + ecLevel: M + version: 1 + maskPattern: 0 + matrix: + 1 1 1 1 1 1 1 0 0 0 0 0 1 0 1 1 1 1 1 1 1 + 1 0 0 0 0 0 1 0 1 1 0 1 0 0 1 0 0 0 0 0 1 + 1 0 1 1 1 0 1 0 0 1 1 0 0 0 1 0 1 1 1 0 1 + 1 0 1 1 1 0 1 0 0 0 1 0 0 0 1 0 1 1 1 0 1 + 1 0 1 1 1 0 1 0 1 0 1 1 1 0 1 0 1 1 1 0 1 + 1 0 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 1 + 1 1 1 1 1 1 1 0 1 0 1 0 1 0 1 1 1 1 1 1 1 + 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 + 1 0 1 0 1 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 + 0 0 0 0 0 0 0 1 1 0 1 1 0 1 0 1 0 1 0 1 0 + 0 1 0 1 0 1 1 1 1 0 0 1 0 1 1 1 0 1 0 1 0 + 0 1 1 1 0 0 0 0 0 0 1 1 1 1 0 1 1 1 0 1 0 + 0 0 0 1 1 1 1 1 1 1 1 1 0 1 1 1 0 0 1 0 1 + 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 0 0 0 1 1 0 + 1 1 1 1 1 1 1 0 0 1 0 0 1 0 0 0 1 0 0 0 1 + 1 0 0 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 1 0 0 + 1 0 1 1 1 0 1 0 1 1 0 0 1 0 1 0 1 0 1 0 1 + 1 0 1 1 1 0 1 0 0 1 1 1 0 1 0 1 0 1 0 1 0 + 1 0 1 1 1 0 1 0 1 0 1 1 0 1 1 1 0 1 1 0 1 + 1 0 0 0 0 0 1 0 0 0 1 1 1 1 0 1 1 1 0 0 0 + 1 1 1 1 1 1 1 0 1 0 1 1 0 1 1 1 0 1 1 0 1 + >> + """; assertEquals(expected, qrCode.toString()); } @@ -290,34 +298,36 @@ public final class EncoderTestCase extends Assert { hints.put(EncodeHintType.CHARACTER_SET, "UTF8"); hints.put(EncodeHintType.GS1_FORMAT, true); QRCode qrCode = Encoder.encode("hello", ErrorCorrectionLevel.H, hints); - String expected = "<<\n" + - " mode: BYTE\n" + - " ecLevel: H\n" + - " version: 1\n" + - " maskPattern: 6\n" + - " matrix:\n" + - " 1 1 1 1 1 1 1 0 0 0 1 1 0 0 1 1 1 1 1 1 1\n" + - " 1 0 0 0 0 0 1 0 0 1 1 0 0 0 1 0 0 0 0 0 1\n" + - " 1 0 1 1 1 0 1 0 1 1 0 0 0 0 1 0 1 1 1 0 1\n" + - " 1 0 1 1 1 0 1 0 1 1 0 1 0 0 1 0 1 1 1 0 1\n" + - " 1 0 1 1 1 0 1 0 0 0 1 1 0 0 1 0 1 1 1 0 1\n" + - " 1 0 0 0 0 0 1 0 0 1 0 0 1 0 1 0 0 0 0 0 1\n" + - " 1 1 1 1 1 1 1 0 1 0 1 0 1 0 1 1 1 1 1 1 1\n" + - " 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0\n" + - " 0 0 0 1 1 0 1 1 0 1 0 0 0 0 0 0 0 1 1 0 0\n" + - " 0 1 0 1 1 0 0 1 0 1 1 1 1 1 1 0 1 1 1 0 1\n" + - " 0 1 1 1 1 0 1 0 0 1 0 1 0 1 1 1 0 0 1 0 1\n" + - " 1 1 1 1 1 0 0 1 0 0 0 1 1 0 0 1 0 0 1 0 0\n" + - " 1 0 0 1 0 0 1 1 0 1 1 0 1 0 1 0 0 1 0 0 1\n" + - " 0 0 0 0 0 0 0 0 1 1 1 1 1 1 0 0 1 0 0 0 1\n" + - " 1 1 1 1 1 1 1 0 1 0 0 1 0 1 1 0 1 0 1 0 0\n" + - " 1 0 0 0 0 0 1 0 0 1 0 0 0 0 1 0 1 1 1 0 0\n" + - " 1 0 1 1 1 0 1 0 1 1 0 1 1 0 0 0 1 1 0 0 0\n" + - " 1 0 1 1 1 0 1 0 1 0 1 1 1 1 1 0 0 0 1 1 0\n" + - " 1 0 1 1 1 0 1 0 0 0 1 0 0 1 0 0 1 0 1 1 1\n" + - " 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 1 0 0\n" + - " 1 1 1 1 1 1 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0\n" + - ">>\n"; + String expected = """ + << + mode: BYTE + ecLevel: H + version: 1 + maskPattern: 6 + matrix: + 1 1 1 1 1 1 1 0 0 0 1 1 0 0 1 1 1 1 1 1 1 + 1 0 0 0 0 0 1 0 0 1 1 0 0 0 1 0 0 0 0 0 1 + 1 0 1 1 1 0 1 0 1 1 0 0 0 0 1 0 1 1 1 0 1 + 1 0 1 1 1 0 1 0 1 1 0 1 0 0 1 0 1 1 1 0 1 + 1 0 1 1 1 0 1 0 0 0 1 1 0 0 1 0 1 1 1 0 1 + 1 0 0 0 0 0 1 0 0 1 0 0 1 0 1 0 0 0 0 0 1 + 1 1 1 1 1 1 1 0 1 0 1 0 1 0 1 1 1 1 1 1 1 + 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 + 0 0 0 1 1 0 1 1 0 1 0 0 0 0 0 0 0 1 1 0 0 + 0 1 0 1 1 0 0 1 0 1 1 1 1 1 1 0 1 1 1 0 1 + 0 1 1 1 1 0 1 0 0 1 0 1 0 1 1 1 0 0 1 0 1 + 1 1 1 1 1 0 0 1 0 0 0 1 1 0 0 1 0 0 1 0 0 + 1 0 0 1 0 0 1 1 0 1 1 0 1 0 1 0 0 1 0 0 1 + 0 0 0 0 0 0 0 0 1 1 1 1 1 1 0 0 1 0 0 0 1 + 1 1 1 1 1 1 1 0 1 0 0 1 0 1 1 0 1 0 1 0 0 + 1 0 0 0 0 0 1 0 0 1 0 0 0 0 1 0 1 1 1 0 0 + 1 0 1 1 1 0 1 0 1 1 0 1 1 0 0 0 1 1 0 0 0 + 1 0 1 1 1 0 1 0 1 0 1 1 1 1 1 0 0 0 1 1 0 + 1 0 1 1 1 0 1 0 0 0 1 0 0 1 0 0 1 0 1 1 1 + 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 1 0 0 + 1 1 1 1 1 1 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 + >> + """; assertEquals(expected, qrCode.toString()); } @@ -913,70 +923,74 @@ public final class EncoderTestCase extends Assert { } private static void verifyGS1EncodedData(QRCode qrCode) { - String expected = "<<\n" + - " mode: ALPHANUMERIC\n" + - " ecLevel: H\n" + - " version: 2\n" + - " maskPattern: 2\n" + - " matrix:\n" + - " 1 1 1 1 1 1 1 0 1 0 1 1 1 1 0 1 1 0 1 1 1 1 1 1 1\n" + - " 1 0 0 0 0 0 1 0 1 0 0 0 0 1 1 0 1 0 1 0 0 0 0 0 1\n" + - " 1 0 1 1 1 0 1 0 1 0 1 1 0 1 1 0 0 0 1 0 1 1 1 0 1\n" + - " 1 0 1 1 1 0 1 0 0 1 1 0 1 0 1 1 1 0 1 0 1 1 1 0 1\n" + - " 1 0 1 1 1 0 1 0 0 1 1 1 1 1 1 1 1 0 1 0 1 1 1 0 1\n" + - " 1 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 0 0 1 0 0 0 0 0 1\n" + - " 1 1 1 1 1 1 1 0 1 0 1 0 1 0 1 0 1 0 1 1 1 1 1 1 1\n" + - " 0 0 0 0 0 0 0 0 1 1 1 0 0 0 1 1 1 0 0 0 0 0 0 0 0\n" + - " 0 0 1 1 1 0 1 0 1 1 1 1 0 1 1 0 1 1 1 1 0 0 1 1 1\n" + - " 0 0 0 1 1 1 0 1 0 0 1 0 0 1 0 0 1 1 1 0 0 1 0 0 1\n" + - " 1 0 1 1 0 0 1 0 1 1 0 0 0 0 1 0 1 1 1 0 0 1 0 0 1\n" + - " 0 0 1 1 0 1 0 1 1 1 1 0 0 1 1 1 1 0 0 0 1 1 0 1 1\n" + - " 0 0 1 0 0 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 1 1 0 1 0\n" + - " 1 1 1 0 1 1 0 1 0 0 0 0 0 0 0 1 1 0 1 1 0 1 0 0 0\n" + - " 1 0 1 0 1 0 1 1 0 1 0 1 0 1 1 0 0 0 0 0 1 1 0 0 1\n" + - " 1 0 0 1 0 1 0 1 0 0 0 1 1 1 1 0 1 0 1 0 0 1 0 0 1\n" + - " 1 0 1 0 0 1 1 1 0 1 1 0 0 1 0 0 1 1 1 1 1 1 0 0 0\n" + - " 0 0 0 0 0 0 0 0 1 0 0 1 0 1 1 0 1 0 0 0 1 0 0 1 0\n" + - " 1 1 1 1 1 1 1 0 0 0 0 1 0 0 1 1 1 0 1 0 1 0 1 1 1\n" + - " 1 0 0 0 0 0 1 0 0 1 1 1 1 1 0 1 1 0 0 0 1 0 0 0 1\n" + - " 1 0 1 1 1 0 1 0 1 0 1 0 0 1 1 1 1 1 1 1 1 0 0 0 1\n" + - " 1 0 1 1 1 0 1 0 1 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0\n" + - " 1 0 1 1 1 0 1 0 1 0 0 0 1 1 0 1 0 0 1 1 1 0 1 0 1\n" + - " 1 0 0 0 0 0 1 0 0 1 0 1 0 1 1 1 0 1 0 0 1 1 1 1 1\n" + - " 1 1 1 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 0 0 0 1 0 1 1\n" + - ">>\n"; + String expected = """ + << + mode: ALPHANUMERIC + ecLevel: H + version: 2 + maskPattern: 2 + matrix: + 1 1 1 1 1 1 1 0 1 0 1 1 1 1 0 1 1 0 1 1 1 1 1 1 1 + 1 0 0 0 0 0 1 0 1 0 0 0 0 1 1 0 1 0 1 0 0 0 0 0 1 + 1 0 1 1 1 0 1 0 1 0 1 1 0 1 1 0 0 0 1 0 1 1 1 0 1 + 1 0 1 1 1 0 1 0 0 1 1 0 1 0 1 1 1 0 1 0 1 1 1 0 1 + 1 0 1 1 1 0 1 0 0 1 1 1 1 1 1 1 1 0 1 0 1 1 1 0 1 + 1 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 0 0 1 0 0 0 0 0 1 + 1 1 1 1 1 1 1 0 1 0 1 0 1 0 1 0 1 0 1 1 1 1 1 1 1 + 0 0 0 0 0 0 0 0 1 1 1 0 0 0 1 1 1 0 0 0 0 0 0 0 0 + 0 0 1 1 1 0 1 0 1 1 1 1 0 1 1 0 1 1 1 1 0 0 1 1 1 + 0 0 0 1 1 1 0 1 0 0 1 0 0 1 0 0 1 1 1 0 0 1 0 0 1 + 1 0 1 1 0 0 1 0 1 1 0 0 0 0 1 0 1 1 1 0 0 1 0 0 1 + 0 0 1 1 0 1 0 1 1 1 1 0 0 1 1 1 1 0 0 0 1 1 0 1 1 + 0 0 1 0 0 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 1 1 0 1 0 + 1 1 1 0 1 1 0 1 0 0 0 0 0 0 0 1 1 0 1 1 0 1 0 0 0 + 1 0 1 0 1 0 1 1 0 1 0 1 0 1 1 0 0 0 0 0 1 1 0 0 1 + 1 0 0 1 0 1 0 1 0 0 0 1 1 1 1 0 1 0 1 0 0 1 0 0 1 + 1 0 1 0 0 1 1 1 0 1 1 0 0 1 0 0 1 1 1 1 1 1 0 0 0 + 0 0 0 0 0 0 0 0 1 0 0 1 0 1 1 0 1 0 0 0 1 0 0 1 0 + 1 1 1 1 1 1 1 0 0 0 0 1 0 0 1 1 1 0 1 0 1 0 1 1 1 + 1 0 0 0 0 0 1 0 0 1 1 1 1 1 0 1 1 0 0 0 1 0 0 0 1 + 1 0 1 1 1 0 1 0 1 0 1 0 0 1 1 1 1 1 1 1 1 0 0 0 1 + 1 0 1 1 1 0 1 0 1 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 + 1 0 1 1 1 0 1 0 1 0 0 0 1 1 0 1 0 0 1 1 1 0 1 0 1 + 1 0 0 0 0 0 1 0 0 1 0 1 0 1 1 1 0 1 0 0 1 1 1 1 1 + 1 1 1 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 0 0 0 1 0 1 1 + >> + """; assertEquals(expected, qrCode.toString()); } private static void verifyNotGS1EncodedData(QRCode qrCode) { - String expected = "<<\n" + - " mode: ALPHANUMERIC\n" + - " ecLevel: H\n" + - " version: 1\n" + - " maskPattern: 0\n" + - " matrix:\n" + - " 1 1 1 1 1 1 1 0 1 1 1 1 0 0 1 1 1 1 1 1 1\n" + - " 1 0 0 0 0 0 1 0 0 1 1 1 0 0 1 0 0 0 0 0 1\n" + - " 1 0 1 1 1 0 1 0 0 1 0 1 1 0 1 0 1 1 1 0 1\n" + - " 1 0 1 1 1 0 1 0 1 1 1 0 1 0 1 0 1 1 1 0 1\n" + - " 1 0 1 1 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1\n" + - " 1 0 0 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 1\n" + - " 1 1 1 1 1 1 1 0 1 0 1 0 1 0 1 1 1 1 1 1 1\n" + - " 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0\n" + - " 0 0 1 0 1 1 1 0 1 1 0 0 1 1 0 0 0 1 0 0 1\n" + - " 1 0 1 1 1 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0\n" + - " 0 0 1 1 0 0 1 0 1 0 0 0 1 0 1 0 1 0 1 1 0\n" + - " 1 1 0 1 0 1 0 1 1 1 0 1 0 1 0 0 0 0 0 1 0\n" + - " 0 0 1 1 0 1 1 1 1 0 0 0 1 0 1 0 1 1 1 1 0\n" + - " 0 0 0 0 0 0 0 0 1 0 0 1 1 1 0 1 0 1 0 0 0\n" + - " 1 1 1 1 1 1 1 0 0 0 1 0 1 0 1 1 0 0 0 0 1\n" + - " 1 0 0 0 0 0 1 0 1 1 1 1 0 1 0 1 1 1 1 0 1\n" + - " 1 0 1 1 1 0 1 0 1 0 1 1 0 1 0 1 0 0 0 0 1\n" + - " 1 0 1 1 1 0 1 0 0 1 1 0 1 1 1 1 0 1 0 1 0\n" + - " 1 0 1 1 1 0 1 0 1 0 0 0 1 0 1 0 1 1 1 0 1\n" + - " 1 0 0 0 0 0 1 0 0 1 1 0 1 1 0 1 0 0 0 1 1\n" + - " 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 1 0 1 0 1\n" + - ">>\n"; + String expected = """ + << + mode: ALPHANUMERIC + ecLevel: H + version: 1 + maskPattern: 0 + matrix: + 1 1 1 1 1 1 1 0 1 1 1 1 0 0 1 1 1 1 1 1 1 + 1 0 0 0 0 0 1 0 0 1 1 1 0 0 1 0 0 0 0 0 1 + 1 0 1 1 1 0 1 0 0 1 0 1 1 0 1 0 1 1 1 0 1 + 1 0 1 1 1 0 1 0 1 1 1 0 1 0 1 0 1 1 1 0 1 + 1 0 1 1 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 + 1 0 0 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 1 + 1 1 1 1 1 1 1 0 1 0 1 0 1 0 1 1 1 1 1 1 1 + 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 + 0 0 1 0 1 1 1 0 1 1 0 0 1 1 0 0 0 1 0 0 1 + 1 0 1 1 1 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 + 0 0 1 1 0 0 1 0 1 0 0 0 1 0 1 0 1 0 1 1 0 + 1 1 0 1 0 1 0 1 1 1 0 1 0 1 0 0 0 0 0 1 0 + 0 0 1 1 0 1 1 1 1 0 0 0 1 0 1 0 1 1 1 1 0 + 0 0 0 0 0 0 0 0 1 0 0 1 1 1 0 1 0 1 0 0 0 + 1 1 1 1 1 1 1 0 0 0 1 0 1 0 1 1 0 0 0 0 1 + 1 0 0 0 0 0 1 0 1 1 1 1 0 1 0 1 1 1 1 0 1 + 1 0 1 1 1 0 1 0 1 0 1 1 0 1 0 1 0 0 0 0 1 + 1 0 1 1 1 0 1 0 0 1 1 0 1 1 1 1 0 1 0 1 0 + 1 0 1 1 1 0 1 0 1 0 0 0 1 0 1 0 1 1 1 0 1 + 1 0 0 0 0 0 1 0 0 1 1 0 1 1 0 1 0 0 0 1 1 + 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 1 0 1 0 1 + >> + """; assertEquals(expected, qrCode.toString()); } diff --git a/core/src/test/java/com/google/zxing/qrcode/encoder/MatrixUtilTestCase.java b/core/src/test/java/com/google/zxing/qrcode/encoder/MatrixUtilTestCase.java index fb9de596a..26e559155 100644 --- a/core/src/test/java/com/google/zxing/qrcode/encoder/MatrixUtilTestCase.java +++ b/core/src/test/java/com/google/zxing/qrcode/encoder/MatrixUtilTestCase.java @@ -62,27 +62,29 @@ public final class MatrixUtilTestCase extends Assert { MatrixUtil.clearMatrix(matrix); MatrixUtil.embedBasicPatterns(Version.getVersionForNumber(1), matrix); String expected = - " 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1\n" + - " 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 1\n" + - " 1 0 1 1 1 0 1 0 0 1 0 1 1 1 0 1\n" + - " 1 0 1 1 1 0 1 0 0 1 0 1 1 1 0 1\n" + - " 1 0 1 1 1 0 1 0 0 1 0 1 1 1 0 1\n" + - " 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 1\n" + - " 1 1 1 1 1 1 1 0 1 0 1 0 1 0 1 1 1 1 1 1 1\n" + - " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n" + - " 1 \n" + - " 0 \n" + - " 1 \n" + - " 0 \n" + - " 1 \n" + - " 0 0 0 0 0 0 0 0 1 \n" + - " 1 1 1 1 1 1 1 0 \n" + - " 1 0 0 0 0 0 1 0 \n" + - " 1 0 1 1 1 0 1 0 \n" + - " 1 0 1 1 1 0 1 0 \n" + - " 1 0 1 1 1 0 1 0 \n" + - " 1 0 0 0 0 0 1 0 \n" + - " 1 1 1 1 1 1 1 0 \n"; + """ + 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 + 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 1 + 1 0 1 1 1 0 1 0 0 1 0 1 1 1 0 1 + 1 0 1 1 1 0 1 0 0 1 0 1 1 1 0 1 + 1 0 1 1 1 0 1 0 0 1 0 1 1 1 0 1 + 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 1 + 1 1 1 1 1 1 1 0 1 0 1 0 1 0 1 1 1 1 1 1 1 + 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + 1 \s + 0 \s + 1 \s + 0 \s + 1 \s + 0 0 0 0 0 0 0 0 1 \s + 1 1 1 1 1 1 1 0 \s + 1 0 0 0 0 0 1 0 \s + 1 0 1 1 1 0 1 0 \s + 1 0 1 1 1 0 1 0 \s + 1 0 1 1 1 0 1 0 \s + 1 0 0 0 0 0 1 0 \s + 1 1 1 1 1 1 1 0 \s + """; assertEquals(expected, matrix.toString()); } @@ -94,31 +96,33 @@ public final class MatrixUtilTestCase extends Assert { MatrixUtil.clearMatrix(matrix); MatrixUtil.embedBasicPatterns(Version.getVersionForNumber(2), matrix); String expected = - " 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1\n" + - " 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 1\n" + - " 1 0 1 1 1 0 1 0 0 1 0 1 1 1 0 1\n" + - " 1 0 1 1 1 0 1 0 0 1 0 1 1 1 0 1\n" + - " 1 0 1 1 1 0 1 0 0 1 0 1 1 1 0 1\n" + - " 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 1\n" + - " 1 1 1 1 1 1 1 0 1 0 1 0 1 0 1 0 1 0 1 1 1 1 1 1 1\n" + - " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n" + - " 1 \n" + - " 0 \n" + - " 1 \n" + - " 0 \n" + - " 1 \n" + - " 0 \n" + - " 1 \n" + - " 0 \n" + - " 1 1 1 1 1 1 \n" + - " 0 0 0 0 0 0 0 0 1 1 0 0 0 1 \n" + - " 1 1 1 1 1 1 1 0 1 0 1 0 1 \n" + - " 1 0 0 0 0 0 1 0 1 0 0 0 1 \n" + - " 1 0 1 1 1 0 1 0 1 1 1 1 1 \n" + - " 1 0 1 1 1 0 1 0 \n" + - " 1 0 1 1 1 0 1 0 \n" + - " 1 0 0 0 0 0 1 0 \n" + - " 1 1 1 1 1 1 1 0 \n"; + """ + 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 + 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 1 + 1 0 1 1 1 0 1 0 0 1 0 1 1 1 0 1 + 1 0 1 1 1 0 1 0 0 1 0 1 1 1 0 1 + 1 0 1 1 1 0 1 0 0 1 0 1 1 1 0 1 + 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 1 + 1 1 1 1 1 1 1 0 1 0 1 0 1 0 1 0 1 0 1 1 1 1 1 1 1 + 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + 1 \s + 0 \s + 1 \s + 0 \s + 1 \s + 0 \s + 1 \s + 0 \s + 1 1 1 1 1 1 \s + 0 0 0 0 0 0 0 0 1 1 0 0 0 1 \s + 1 1 1 1 1 1 1 0 1 0 1 0 1 \s + 1 0 0 0 0 0 1 0 1 0 0 0 1 \s + 1 0 1 1 1 0 1 0 1 1 1 1 1 \s + 1 0 1 1 1 0 1 0 \s + 1 0 1 1 1 0 1 0 \s + 1 0 0 0 0 0 1 0 \s + 1 1 1 1 1 1 1 0 \s + """; assertEquals(expected, matrix.toString()); } @@ -129,27 +133,29 @@ public final class MatrixUtilTestCase extends Assert { MatrixUtil.clearMatrix(matrix); MatrixUtil.embedTypeInfo(ErrorCorrectionLevel.M, 5, matrix); String expected = - " 0 \n" + - " 1 \n" + - " 1 \n" + - " 1 \n" + - " 0 \n" + - " 0 \n" + - " \n" + - " 1 \n" + - " 1 0 0 0 0 0 0 1 1 1 0 0 1 1 1 0\n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " 0 \n" + - " 0 \n" + - " 0 \n" + - " 0 \n" + - " 0 \n" + - " 0 \n" + - " 1 \n"; + """ + 0 \s + 1 \s + 1 \s + 1 \s + 0 \s + 0 \s + \s + 1 \s + 1 0 0 0 0 0 0 1 1 1 0 0 1 1 1 0 + \s + \s + \s + \s + \s + 0 \s + 0 \s + 0 \s + 0 \s + 0 \s + 0 \s + 1 \s + """; assertEquals(expected, matrix.toString()); } @@ -162,27 +168,29 @@ public final class MatrixUtilTestCase extends Assert { MatrixUtil.clearMatrix(matrix); MatrixUtil.maybeEmbedVersionInfo(Version.getVersionForNumber(7), matrix); String expected = - " 0 0 1 \n" + - " 0 1 0 \n" + - " 0 1 0 \n" + - " 0 1 1 \n" + - " 1 1 1 \n" + - " 0 0 0 \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " 0 0 0 0 1 0 \n" + - " 0 1 1 1 1 0 \n" + - " 1 0 0 1 1 0 \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n"; + """ + 0 0 1 \s + 0 1 0 \s + 0 1 0 \s + 0 1 1 \s + 1 1 1 \s + 0 0 0 \s + \s + \s + \s + \s + 0 0 0 0 1 0 \s + 0 1 1 1 1 0 \s + 1 0 0 1 1 0 \s + \s + \s + \s + \s + \s + \s + \s + \s + """; assertEquals(expected, matrix.toString()); } @@ -195,27 +203,29 @@ public final class MatrixUtilTestCase extends Assert { BitArray bits = new BitArray(); MatrixUtil.embedDataBits(bits, -1, matrix); String expected = - " 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 1 1 1 1 1\n" + - " 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1\n" + - " 1 0 1 1 1 0 1 0 0 0 0 0 0 0 1 0 1 1 1 0 1\n" + - " 1 0 1 1 1 0 1 0 0 0 0 0 0 0 1 0 1 1 1 0 1\n" + - " 1 0 1 1 1 0 1 0 0 0 0 0 0 0 1 0 1 1 1 0 1\n" + - " 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1\n" + - " 1 1 1 1 1 1 1 0 1 0 1 0 1 0 1 1 1 1 1 1 1\n" + - " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n" + - " 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n" + - " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n" + - " 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n" + - " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n" + - " 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n" + - " 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0\n" + - " 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n" + - " 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n" + - " 1 0 1 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n" + - " 1 0 1 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n" + - " 1 0 1 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n" + - " 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n" + - " 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n"; + """ + 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 1 1 1 1 1 + 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1 + 1 0 1 1 1 0 1 0 0 0 0 0 0 0 1 0 1 1 1 0 1 + 1 0 1 1 1 0 1 0 0 0 0 0 0 0 1 0 1 1 1 0 1 + 1 0 1 1 1 0 1 0 0 0 0 0 0 0 1 0 1 1 1 0 1 + 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1 + 1 1 1 1 1 1 1 0 1 0 1 0 1 0 1 1 1 1 1 1 1 + 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 + 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + 1 0 1 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + 1 0 1 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + 1 0 1 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + """; assertEquals(expected, matrix.toString()); } @@ -236,27 +246,29 @@ public final class MatrixUtilTestCase extends Assert { 3, // Mask pattern 3 matrix); String expected = - " 1 1 1 1 1 1 1 0 0 1 1 0 0 0 1 1 1 1 1 1 1\n" + - " 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1\n" + - " 1 0 1 1 1 0 1 0 0 0 0 1 0 0 1 0 1 1 1 0 1\n" + - " 1 0 1 1 1 0 1 0 0 1 1 0 0 0 1 0 1 1 1 0 1\n" + - " 1 0 1 1 1 0 1 0 1 1 0 0 1 0 1 0 1 1 1 0 1\n" + - " 1 0 0 0 0 0 1 0 0 0 1 1 1 0 1 0 0 0 0 0 1\n" + - " 1 1 1 1 1 1 1 0 1 0 1 0 1 0 1 1 1 1 1 1 1\n" + - " 0 0 0 0 0 0 0 0 1 1 0 1 1 0 0 0 0 0 0 0 0\n" + - " 0 0 1 1 0 0 1 1 1 0 0 1 1 1 1 0 1 0 0 0 0\n" + - " 1 0 1 0 1 0 0 0 0 0 1 1 1 0 0 1 0 1 1 1 0\n" + - " 1 1 1 1 0 1 1 0 1 0 1 1 1 0 0 1 1 1 0 1 0\n" + - " 1 0 1 0 1 1 0 1 1 1 0 0 1 1 1 0 0 1 0 1 0\n" + - " 0 0 1 0 0 1 1 1 0 0 0 0 0 0 1 0 1 1 1 1 1\n" + - " 0 0 0 0 0 0 0 0 1 1 0 1 0 0 0 0 0 1 0 1 1\n" + - " 1 1 1 1 1 1 1 0 1 1 1 1 0 0 0 0 1 0 1 1 0\n" + - " 1 0 0 0 0 0 1 0 0 0 0 1 0 1 1 1 0 0 0 0 0\n" + - " 1 0 1 1 1 0 1 0 0 1 0 0 1 1 0 0 1 0 0 1 1\n" + - " 1 0 1 1 1 0 1 0 1 1 0 1 0 0 0 0 0 1 1 1 0\n" + - " 1 0 1 1 1 0 1 0 1 1 1 1 0 0 0 0 1 1 1 0 0\n" + - " 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0\n" + - " 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 0 1 0 0 1 0\n"; + """ + 1 1 1 1 1 1 1 0 0 1 1 0 0 0 1 1 1 1 1 1 1 + 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1 + 1 0 1 1 1 0 1 0 0 0 0 1 0 0 1 0 1 1 1 0 1 + 1 0 1 1 1 0 1 0 0 1 1 0 0 0 1 0 1 1 1 0 1 + 1 0 1 1 1 0 1 0 1 1 0 0 1 0 1 0 1 1 1 0 1 + 1 0 0 0 0 0 1 0 0 0 1 1 1 0 1 0 0 0 0 0 1 + 1 1 1 1 1 1 1 0 1 0 1 0 1 0 1 1 1 1 1 1 1 + 0 0 0 0 0 0 0 0 1 1 0 1 1 0 0 0 0 0 0 0 0 + 0 0 1 1 0 0 1 1 1 0 0 1 1 1 1 0 1 0 0 0 0 + 1 0 1 0 1 0 0 0 0 0 1 1 1 0 0 1 0 1 1 1 0 + 1 1 1 1 0 1 1 0 1 0 1 1 1 0 0 1 1 1 0 1 0 + 1 0 1 0 1 1 0 1 1 1 0 0 1 1 1 0 0 1 0 1 0 + 0 0 1 0 0 1 1 1 0 0 0 0 0 0 1 0 1 1 1 1 1 + 0 0 0 0 0 0 0 0 1 1 0 1 0 0 0 0 0 1 0 1 1 + 1 1 1 1 1 1 1 0 1 1 1 1 0 0 0 0 1 0 1 1 0 + 1 0 0 0 0 0 1 0 0 0 0 1 0 1 1 1 0 0 0 0 0 + 1 0 1 1 1 0 1 0 0 1 0 0 1 1 0 0 1 0 0 1 1 + 1 0 1 1 1 0 1 0 1 1 0 1 0 0 0 0 0 1 1 1 0 + 1 0 1 1 1 0 1 0 1 1 1 1 0 0 0 0 1 1 1 0 0 + 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 + 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 0 1 0 0 1 0 + """; assertEquals(expected, matrix.toString()); } diff --git a/core/src/test/java/com/google/zxing/qrcode/encoder/QRCodeTestCase.java b/core/src/test/java/com/google/zxing/qrcode/encoder/QRCodeTestCase.java index dc198d589..3204afdbc 100644 --- a/core/src/test/java/com/google/zxing/qrcode/encoder/QRCodeTestCase.java +++ b/core/src/test/java/com/google/zxing/qrcode/encoder/QRCodeTestCase.java @@ -62,13 +62,15 @@ public final class QRCodeTestCase extends Assert { public void testToString1() { QRCode qrCode = new QRCode(); String expected = - "<<\n" + - " mode: null\n" + - " ecLevel: null\n" + - " version: null\n" + - " maskPattern: -1\n" + - " matrix: null\n" + - ">>\n"; + """ + << + mode: null + ecLevel: null + version: null + maskPattern: -1 + matrix: null + >> + """; assertEquals(expected, qrCode.toString()); } @@ -86,34 +88,36 @@ public final class QRCodeTestCase extends Assert { } } qrCode.setMatrix(matrix); - String expected = "<<\n" + - " mode: BYTE\n" + - " ecLevel: H\n" + - " version: 1\n" + - " maskPattern: 3\n" + - " matrix:\n" + - " 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0\n" + - " 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1\n" + - " 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0\n" + - " 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1\n" + - " 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0\n" + - " 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1\n" + - " 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0\n" + - " 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1\n" + - " 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0\n" + - " 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1\n" + - " 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0\n" + - " 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1\n" + - " 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0\n" + - " 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1\n" + - " 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0\n" + - " 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1\n" + - " 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0\n" + - " 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1\n" + - " 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0\n" + - " 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1\n" + - " 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0\n" + - ">>\n"; + String expected = """ + << + mode: BYTE + ecLevel: H + version: 1 + maskPattern: 3 + matrix: + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 + 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 + 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 + 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 + 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 + 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 + 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 + 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 + 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 + 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 + 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 + >> + """; assertEquals(expected, qrCode.toString()); } diff --git a/javase/pom.xml b/javase/pom.xml index 29cf63029..cdc14def9 100644 --- a/javase/pom.xml +++ b/javase/pom.xml @@ -20,6 +20,9 @@ javase 3.5.4-SNAPSHOT jar + + 17 + diff --git a/javase/src/main/java/com/google/zxing/client/j2se/CommandLineEncoder.java b/javase/src/main/java/com/google/zxing/client/j2se/CommandLineEncoder.java index 58f738add..c039ba4db 100644 --- a/javase/src/main/java/com/google/zxing/client/j2se/CommandLineEncoder.java +++ b/javase/src/main/java/com/google/zxing/client/j2se/CommandLineEncoder.java @@ -22,7 +22,7 @@ import com.google.zxing.common.BitMatrix; import com.beust.jcommander.JCommander; -import java.nio.file.Paths; +import java.nio.file.Path; import java.util.EnumMap; import java.util.Locale; import java.util.Map; @@ -59,7 +59,7 @@ public final class CommandLineEncoder { config.contents.get(0), config.barcodeFormat, config.width, config.height, hints); MatrixToImageWriter.writeToPath(matrix, config.imageFormat, - Paths.get(outFileString)); + Path.of(outFileString)); } } diff --git a/javase/src/main/java/com/google/zxing/client/j2se/CommandLineRunner.java b/javase/src/main/java/com/google/zxing/client/j2se/CommandLineRunner.java index 388747d21..aff667028 100644 --- a/javase/src/main/java/com/google/zxing/client/j2se/CommandLineRunner.java +++ b/javase/src/main/java/com/google/zxing/client/j2se/CommandLineRunner.java @@ -23,7 +23,6 @@ import java.net.URISyntaxException; import java.nio.file.DirectoryStream; import java.nio.file.Files; import java.nio.file.Path; -import java.nio.file.Paths; import java.util.ArrayList; import java.util.Collection; import java.util.List; @@ -64,7 +63,7 @@ public final class CommandLineRunner { uri = new URI(inputPath); } catch (URISyntaxException use) { // Assume it must be a file - if (!Files.exists(Paths.get(inputPath))) { + if (!Files.exists(Path.of(inputPath))) { throw use; } uri = new URI("file", inputPath, null); @@ -109,7 +108,7 @@ public final class CommandLineRunner { List expanded = new ArrayList<>(); for (URI input : inputs) { if (isFileOrDir(input)) { - Path inputPath = Paths.get(input); + Path inputPath = Path.of(input); if (Files.isDirectory(inputPath)) { try (DirectoryStream childPaths = Files.newDirectoryStream(inputPath)) { for (Path childPath : childPaths) { @@ -126,7 +125,7 @@ public final class CommandLineRunner { for (int i = 0; i < expanded.size(); i++) { URI input = expanded.get(i); if (input.getScheme() == null) { - expanded.set(i, Paths.get(input.getRawPath()).toUri()); + expanded.set(i, Path.of(input.getRawPath()).toUri()); } } return expanded; @@ -137,7 +136,7 @@ public final class CommandLineRunner { for (URI input : inputs) { boolean retain; if (isFileOrDir(input)) { - Path inputPath = Paths.get(input); + Path inputPath = Path.of(input); retain = !inputPath.getFileName().toString().startsWith(".") && (recursive || !Files.isDirectory(inputPath)); @@ -153,7 +152,7 @@ public final class CommandLineRunner { private static boolean isExpandable(Iterable inputs) { for (URI input : inputs) { - if (isFileOrDir(input) && Files.isDirectory(Paths.get(input))) { + if (isFileOrDir(input) && Files.isDirectory(Path.of(input))) { return true; } } diff --git a/javase/src/main/java/com/google/zxing/client/j2se/DecodeWorker.java b/javase/src/main/java/com/google/zxing/client/j2se/DecodeWorker.java index 4e1948a55..f05c60394 100644 --- a/javase/src/main/java/com/google/zxing/client/j2se/DecodeWorker.java +++ b/javase/src/main/java/com/google/zxing/client/j2se/DecodeWorker.java @@ -39,7 +39,6 @@ import java.net.URI; import java.nio.charset.StandardCharsets; import java.nio.file.Files; import java.nio.file.Path; -import java.nio.file.Paths; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; @@ -88,11 +87,11 @@ final class DecodeWorker implements Callable { Path outDir; String inputFileName; if ("file".equals(input.getScheme())) { - Path inputPath = Paths.get(input); + Path inputPath = Path.of(input); outDir = inputPath.getParent(); inputFileName = inputPath.getFileName().toString(); } else { - outDir = Paths.get(".").toRealPath(); + outDir = Path.of(".").toRealPath(); String path = input.getPath(); if (path == null) { inputFileName = "input"; @@ -172,7 +171,7 @@ final class DecodeWorker implements Callable { if (rawBytes != null) { for (byte b : rawBytes) { - rawData.append(String.format("%02X", b & 0xff)); + rawData.append("%02X".formatted(b & 0xff)); rawData.append(" "); } rawData.setLength(rawData.length() - 1); // chop off final space diff --git a/javase/src/main/java/com/google/zxing/client/j2se/HtmlAssetTranslator.java b/javase/src/main/java/com/google/zxing/client/j2se/HtmlAssetTranslator.java index 661f157b0..9492c3dcc 100644 --- a/javase/src/main/java/com/google/zxing/client/j2se/HtmlAssetTranslator.java +++ b/javase/src/main/java/com/google/zxing/client/j2se/HtmlAssetTranslator.java @@ -35,7 +35,6 @@ import java.nio.charset.StandardCharsets; import java.nio.file.DirectoryStream; import java.nio.file.Files; import java.nio.file.Path; -import java.nio.file.Paths; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; @@ -77,7 +76,7 @@ public final class HtmlAssetTranslator { "(all|lang1[,lang2 ...]) (all|file1.html[ file2.html ...])"); return; } - Path assetsDir = Paths.get(args[0]); + Path assetsDir = Path.of(args[0]); Collection languagesToTranslate = parseLanguagesToTranslate(assetsDir, args[1]); List restOfArgs = Arrays.asList(args).subList(2, args.length); Collection fileNamesToTranslate = parseFileNamesToTranslate(assetsDir, restOfArgs); diff --git a/javase/src/main/java/com/google/zxing/client/j2se/StringsResourceTranslator.java b/javase/src/main/java/com/google/zxing/client/j2se/StringsResourceTranslator.java index 84fd6ab89..41ce0fd99 100644 --- a/javase/src/main/java/com/google/zxing/client/j2se/StringsResourceTranslator.java +++ b/javase/src/main/java/com/google/zxing/client/j2se/StringsResourceTranslator.java @@ -27,7 +27,6 @@ import java.nio.charset.StandardCharsets; import java.nio.file.DirectoryStream; import java.nio.file.Files; import java.nio.file.Path; -import java.nio.file.Paths; import java.nio.file.StandardCopyOption; import java.util.Arrays; import java.util.Collection; @@ -92,7 +91,7 @@ public final class StringsResourceTranslator { private StringsResourceTranslator() {} public static void main(String[] args) throws IOException { - Path resDir = Paths.get(args[0]); + Path resDir = Path.of(args[0]); Path valueDir = resDir.resolve("values"); Path stringsFile = valueDir.resolve("strings.xml"); Collection forceRetranslation = Arrays.asList(args).subList(1, args.length); diff --git a/pom.xml b/pom.xml index 57741b485..fed6835c5 100644 --- a/pom.xml +++ b/pom.xml @@ -64,7 +64,7 @@ UTF-8 UTF-8 - 1.8 + 17 ${env.ANDROID_HOME} 2.6.1 @@ -74,6 +74,23 @@ + + org.openrewrite.maven + rewrite-maven-plugin + 5.42.0 + + + org.openrewrite.java.migrate.UpgradeToJava17 + + + + + org.openrewrite.recipe + rewrite-migrate-java + 2.26.1 + + + org.apache.maven.plugins maven-javadoc-plugin @@ -140,12 +157,11 @@ maven-compiler-plugin 3.13.0 - ${java.version} - ${java.version} -Xlint:all -Xlint:-serial + ${java.version} @@ -395,7 +411,7 @@ org.apache.maven.plugins maven-checkstyle-plugin - 3.4.0 + 3.5.0 src/checkstyle/checkstyle.xml true diff --git a/zxing.appspot.com/pom.xml b/zxing.appspot.com/pom.xml index 02ec7a0d9..761551a84 100644 --- a/zxing.appspot.com/pom.xml +++ b/zxing.appspot.com/pom.xml @@ -38,6 +38,7 @@ 2.10.0 + 17