Code93WriterTestCase.java
/*
* Copyright 2016 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.oned;
import com.google.zxing.BarcodeFormat;
import com.google.zxing.common.BitMatrix;
import com.google.zxing.common.BitMatrixTestCase;
import org.junit.Assert;
import org.junit.Test;
/**
* Tests {@link Code93Writer}.
*/
public final class Code93WriterTestCase extends Assert {
@Test
public void testEncode() {
doTest("ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789",
"000001010111101101010001101001001101000101100101001100100101100010101011010001011001" +
"001011000101001101001000110101010110001010011001010001101001011001000101101101101001" +
"101100101101011001101001101100101101100110101011011001011001101001101101001110101000" +
"101001010010001010001001010000101001010001001001001001000101010100001000100101000010" +
"10100111010101000010101011110100000");
doTest("\u0000\u0001\u001a\u001b\u001f $%+!,09:;@AZ[_`az{\u007f",
"00000" + "101011110" +
"111011010" + "110010110" + "100100110" + "110101000" + // bU aA
"100100110" + "100111010" + "111011010" + "110101000" + // aZ bA
"111011010" + "110010010" + "111010010" + "111001010" + // bE space $
"110101110" + "101110110" + "111010110" + "110101000" + // % + cA
"111010110" + "101011000" + "100010100" + "100001010" + // cL 0 9
"111010110" + "100111010" + "111011010" + "110001010" + // cZ bF
"111011010" + "110011010" + "110101000" + "100111010" + // bV A Z
"111011010" + "100011010" + "111011010" + "100101100" + // bK bO
"111011010" + "101101100" + "100110010" + "110101000" + // bW dA
"100110010" + "100111010" + "111011010" + "100010110" + // dZ bP
"111011010" + "110100110" + // bT
"110100010" + "110101100" + // checksum: 12 28
"101011110" + "100000");
}
private static void doTest(String input, CharSequence expected) {
BitMatrix result = new Code93Writer().encode(input, BarcodeFormat.CODE_93, 0, 0);
assertEquals(expected, BitMatrixTestCase.matrixToString(result));
}
@Test
public void testConvertToExtended() {
// non-extended chars are not changed.
String src = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-. $/+%";
String dst = Code93Writer.convertToExtended(src);
assertEquals(src, dst);
}
}