/* * Copyright 2006 Jeremias Maerki * * 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.datamatrix.encoder; import com.google.zxing.Dimension; import org.junit.Assert; import org.junit.Test; /** * Tests the SymbolInfo class. */ public final class SymbolInfoTestCase extends Assert { @Test public void testSymbolInfo() { SymbolInfo info = SymbolInfo.lookup(3); assertEquals(5, info.getErrorCodewords()); assertEquals(8, info.matrixWidth); assertEquals(8, info.matrixHeight); assertEquals(10, info.getSymbolWidth()); assertEquals(10, info.getSymbolHeight()); info = SymbolInfo.lookup(3, SymbolShapeHint.FORCE_RECTANGLE); assertEquals(7, info.getErrorCodewords()); assertEquals(16, info.matrixWidth); assertEquals(6, info.matrixHeight); assertEquals(18, info.getSymbolWidth()); assertEquals(8, info.getSymbolHeight()); info = SymbolInfo.lookup(9); assertEquals(11, info.getErrorCodewords()); assertEquals(14, info.matrixWidth); assertEquals(6, info.matrixHeight); assertEquals(32, info.getSymbolWidth()); assertEquals(8, info.getSymbolHeight()); info = SymbolInfo.lookup(9, SymbolShapeHint.FORCE_SQUARE); assertEquals(12, info.getErrorCodewords()); assertEquals(14, info.matrixWidth); assertEquals(14, info.matrixHeight); assertEquals(16, info.getSymbolWidth()); assertEquals(16, info.getSymbolHeight()); try { SymbolInfo.lookup(1559); fail("There's no rectangular symbol for more than 1558 data codewords"); } catch (IllegalArgumentException iae) { //expected } try { SymbolInfo.lookup(50, SymbolShapeHint.FORCE_RECTANGLE); fail("There's no rectangular symbol for 50 data codewords"); } catch (IllegalArgumentException iae) { //expected } info = SymbolInfo.lookup(35); assertEquals(24, info.getSymbolWidth()); assertEquals(24, info.getSymbolHeight()); Dimension fixedSize = new Dimension(26, 26); info = SymbolInfo.lookup(35, SymbolShapeHint.FORCE_NONE, fixedSize, fixedSize, false); assertNotNull(info); assertEquals(26, info.getSymbolWidth()); assertEquals(26, info.getSymbolHeight()); info = SymbolInfo.lookup(45, SymbolShapeHint.FORCE_NONE, fixedSize, fixedSize, false); assertNull(info); Dimension minSize = fixedSize; Dimension maxSize = new Dimension(32, 32); info = SymbolInfo.lookup(35, SymbolShapeHint.FORCE_NONE, minSize, maxSize, false); assertNotNull(info); assertEquals(26, info.getSymbolWidth()); assertEquals(26, info.getSymbolHeight()); info = SymbolInfo.lookup(40, SymbolShapeHint.FORCE_NONE, minSize, maxSize, false); assertNotNull(info); assertEquals(26, info.getSymbolWidth()); assertEquals(26, info.getSymbolHeight()); info = SymbolInfo.lookup(45, SymbolShapeHint.FORCE_NONE, minSize, maxSize, false); assertNotNull(info); assertEquals(32, info.getSymbolWidth()); assertEquals(32, info.getSymbolHeight()); info = SymbolInfo.lookup(63, SymbolShapeHint.FORCE_NONE, minSize, maxSize, false); assertNull(info); } }