+++ /dev/null
-/*
- * Copyright 2007 Google Inc.
- *
- * 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.decoder;
-
-import com.google.zxing.common.BitMatrix;
-import junit.framework.TestCase;
-import junit.textui.TestRunner;
-
-/**
- * @author Sean Owen
- */
-public final class DataMaskTestCase extends TestCase {
-
- public void testMask0() {
- testMaskAcrossDimensions(0, new MaskCondition() {
- public boolean isMasked(int i, int j) {
- return (i + j) % 2 == 0;
- }
- });
- }
-
- public void testMask1() {
- testMaskAcrossDimensions(1, new MaskCondition() {
- public boolean isMasked(int i, int j) {
- return i % 2 == 0;
- }
- });
- }
-
- public void testMask2() {
- testMaskAcrossDimensions(2, new MaskCondition() {
- public boolean isMasked(int i, int j) {
- return j % 3 == 0;
- }
- });
- }
-
- public void testMask3() {
- testMaskAcrossDimensions(3, new MaskCondition() {
- public boolean isMasked(int i, int j) {
- return (i + j) % 3 == 0;
- }
- });
- }
-
- public void testMask4() {
- testMaskAcrossDimensions(4, new MaskCondition() {
- public boolean isMasked(int i, int j) {
- return (i/2 + j/3) % 2 == 0;
- }
- });
- }
-
- public void testMask5() {
- testMaskAcrossDimensions(5, new MaskCondition() {
- public boolean isMasked(int i, int j) {
- return (i*j) % 2 + (i*j) % 3 == 0;
- }
- });
- }
-
- public void testMask6() {
- testMaskAcrossDimensions(6, new MaskCondition() {
- public boolean isMasked(int i, int j) {
- return ((i*j) % 2 + (i*j) % 3) % 2 == 0;
- }
- });
- }
-
- public void testMask7() {
- testMaskAcrossDimensions(7, new MaskCondition() {
- public boolean isMasked(int i, int j) {
- return ((i+j) % 2 + (i*j) % 3) % 2 == 0;
- }
- });
- }
-
- private void testMaskAcrossDimensions(int reference,
- MaskCondition condition) {
- DataMask mask = DataMask.forReference(reference);
- for (int version = 1; version <= 40; version++) {
- int dimension = 17 + 4*version;
- testMask(mask, dimension, condition);
- }
- }
-
- private void testMask(DataMask mask, int dimension, MaskCondition condition) {
- BitMatrix bits = new BitMatrix(dimension);
- mask.unmaskBitMatrix(bits.getBits(), dimension);
- for (int i = 0; i < dimension; i++) {
- for (int j = 0; j < dimension; j++) {
- assertEquals(
- "(" + i + ',' + j + ')',
- condition.isMasked(i, j),
- bits.get(i, j));
- }
- }
- }
-
- private static interface MaskCondition {
- boolean isMasked(int i, int j);
- }
-
- public static void main(String[] args) {
- TestRunner.run(new DataMaskTestCase());
- }
-
-}
+++ /dev/null
-/*
- * Copyright 2007 Google Inc.
- *
- * 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.decoder;
-
-import junit.framework.TestCase;
-import junit.textui.TestRunner;
-
-/**
- * @author Sean Owen
- */
-public final class FormatInformationTestCase extends TestCase {
-
- public void testBitsDiffering() {
- assertEquals(0, FormatInformation.numBitsDiffering(1, 1));
- assertEquals(1, FormatInformation.numBitsDiffering(0, 2));
- assertEquals(2, FormatInformation.numBitsDiffering(1, 2));
- assertEquals(32, FormatInformation.numBitsDiffering(-1,0));
- }
-
- public void testDecode() {
- // Normal case
- FormatInformation expected =
- FormatInformation.decodeFormatInformation(0x2BED ^ 0x5412);
- assertEquals((byte) 0x07, expected.getDataMask());
- assertEquals(ErrorCorrectionLevel.Q, expected.getErrorCorrectionLevel());
- // where the code forgot the mask!
- assertEquals(expected, FormatInformation.decodeFormatInformation(0x2BED));
- // 1,2,3,4 bits difference
- assertEquals(expected, FormatInformation.decodeFormatInformation(
- 0x2BEF ^ 0x5412));
- assertEquals(expected, FormatInformation.decodeFormatInformation(
- 0x2BEE ^ 0x5412));
- assertEquals(expected, FormatInformation.decodeFormatInformation(
- 0x2BEA ^ 0x5412));
- assertNull(FormatInformation.decodeFormatInformation(0x2BE2 ^ 0x5412));
- }
-
- public static void main(String[] args) {
- TestRunner.run(new DataMaskTestCase());
- }
-
-}
\ No newline at end of file