| /* |
| * Copyright 2008 ZXing authors |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); |
| * you may not use this file except in compliance with the License. |
| * You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| |
| package com.google.zxing.qrcode.encoder; |
| |
| import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel; |
| import com.google.zxing.qrcode.decoder.Mode; |
| import com.google.zxing.qrcode.decoder.Version; |
| import org.junit.Assert; |
| import org.junit.Test; |
| |
| /** |
| * @author satorux@google.com (Satoru Takabayashi) - creator |
| * @author mysen@google.com (Chris Mysen) - ported from C++ |
| */ |
| public final class QRCodeTestCase extends Assert { |
| |
| @Test |
| public void test() { |
| QRCode qrCode = new QRCode(); |
| |
| // First, test simple setters and getters. |
| // We use numbers of version 7-H. |
| qrCode.setMode(Mode.BYTE); |
| qrCode.setECLevel(ErrorCorrectionLevel.H); |
| qrCode.setVersion(Version.getVersionForNumber(7)); |
| qrCode.setMaskPattern(3); |
| |
| assertSame(Mode.BYTE, qrCode.getMode()); |
| assertSame(ErrorCorrectionLevel.H, qrCode.getECLevel()); |
| assertEquals(7, qrCode.getVersion().getVersionNumber()); |
| assertEquals(3, qrCode.getMaskPattern()); |
| |
| // Prepare the matrix. |
| ByteMatrix matrix = new ByteMatrix(45, 45); |
| // Just set bogus zero/one values. |
| for (int y = 0; y < 45; ++y) { |
| for (int x = 0; x < 45; ++x) { |
| matrix.set(x, y, (y + x) % 2); |
| } |
| } |
| |
| // Set the matrix. |
| qrCode.setMatrix(matrix); |
| assertSame(matrix, qrCode.getMatrix()); |
| } |
| |
| @Test |
| 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"; |
| assertEquals(expected, qrCode.toString()); |
| } |
| |
| @Test |
| public void testToString2() { |
| QRCode qrCode = new QRCode(); |
| qrCode.setMode(Mode.BYTE); |
| qrCode.setECLevel(ErrorCorrectionLevel.H); |
| qrCode.setVersion(Version.getVersionForNumber(1)); |
| qrCode.setMaskPattern(3); |
| ByteMatrix matrix = new ByteMatrix(21, 21); |
| for (int y = 0; y < 21; ++y) { |
| for (int x = 0; x < 21; ++x) { |
| matrix.set(x, y, (y + x) % 2); |
| } |
| } |
| 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"; |
| assertEquals(expected, qrCode.toString()); |
| } |
| |
| @Test |
| public void testIsValidMaskPattern() { |
| assertFalse(QRCode.isValidMaskPattern(-1)); |
| assertTrue(QRCode.isValidMaskPattern(0)); |
| assertTrue(QRCode.isValidMaskPattern(7)); |
| assertFalse(QRCode.isValidMaskPattern(8)); |
| } |
| |
| } |