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 @@
core3.5.4-SNAPSHOTjar
+
+ 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 @@
javase3.5.4-SNAPSHOTjar
+
+ 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-8UTF-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.pluginsmaven-javadoc-plugin
@@ -140,12 +157,11 @@
maven-compiler-plugin3.13.0
- ${java.version}
- ${java.version}-Xlint:all-Xlint:-serial
+ ${java.version}
@@ -395,7 +411,7 @@
org.apache.maven.pluginsmaven-checkstyle-plugin
- 3.4.0
+ 3.5.0src/checkstyle/checkstyle.xmltrue
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