in java/TJUnitTest.java [1014:1112]
public static void main(String[] argv) {
try {
String testName = "javatest";
for (int i = 0; i < argv.length; i++) {
if (argv[i].equalsIgnoreCase("-yuv"))
doYUV = true;
else if (argv[i].equalsIgnoreCase("-noyuvpad"))
yuvAlign = 1;
else if (argv[i].equalsIgnoreCase("-lossless"))
lossless = true;
else if (argv[i].equalsIgnoreCase("-bi")) {
bi = true;
testName = "javabitest";
} else if (argv[i].equalsIgnoreCase("-precision") &&
i < argv.length - 1) {
int tempi = -1;
try {
tempi = Integer.parseInt(argv[++i]);
} catch (NumberFormatException e) {}
if (tempi != 8 && tempi != 12 && tempi != 16)
usage();
precision = tempi;
if (precision == 16)
lossless = true;
} else
usage();
}
if (lossless && doYUV)
throw new Exception("Lossless JPEG and YUV encoding/decoding are incompatible.");
if (precision != 8 && doYUV)
throw new Exception("YUV encoding/decoding requires 8-bit data precision.");
if (precision != 8 && bi)
throw new Exception("BufferedImage support requires 8-bit data precision.");
System.out.format("Testing %d-bit precision\n", precision);
sampleSize = (precision == 8 ? 1 : 2);
maxSample = (1 << precision) - 1;
tolerance = (lossless ? 0 : (precision > 8 ? 2 : 1));
redToY = (19595 * maxSample) >> 16;
yellowToY = (58065 * maxSample) >> 16;
if (doYUV)
FORMATS_4SAMPLE[4] = -1;
overflowTest();
doTest(35, 39, bi ? FORMATS_3BYTEBI : FORMATS_3SAMPLE, TJ.SAMP_444,
testName);
doTest(39, 41, bi ? FORMATS_4BYTEBI : FORMATS_4SAMPLE, TJ.SAMP_444,
testName);
doTest(41, 35, bi ? FORMATS_3BYTEBI : FORMATS_3SAMPLE, TJ.SAMP_422,
testName);
if (!lossless) {
doTest(35, 39, bi ? FORMATS_4BYTEBI : FORMATS_4SAMPLE, TJ.SAMP_422,
testName);
doTest(39, 41, bi ? FORMATS_3BYTEBI : FORMATS_3SAMPLE, TJ.SAMP_420,
testName);
doTest(41, 35, bi ? FORMATS_4BYTEBI : FORMATS_4SAMPLE, TJ.SAMP_420,
testName);
doTest(35, 39, bi ? FORMATS_3BYTEBI : FORMATS_3SAMPLE, TJ.SAMP_440,
testName);
doTest(39, 41, bi ? FORMATS_4BYTEBI : FORMATS_4SAMPLE, TJ.SAMP_440,
testName);
doTest(41, 35, bi ? FORMATS_3BYTEBI : FORMATS_3SAMPLE, TJ.SAMP_411,
testName);
doTest(35, 39, bi ? FORMATS_4BYTEBI : FORMATS_4SAMPLE, TJ.SAMP_411,
testName);
doTest(39, 41, bi ? FORMATS_3BYTEBI : FORMATS_3SAMPLE, TJ.SAMP_441,
testName);
doTest(41, 35, bi ? FORMATS_4BYTEBI : FORMATS_4SAMPLE, TJ.SAMP_441,
testName);
}
doTest(39, 41, bi ? FORMATS_GRAYBI : FORMATS_GRAY, TJ.SAMP_GRAY,
testName);
if (!lossless) {
doTest(41, 35, bi ? FORMATS_3BYTEBI : FORMATS_3SAMPLE, TJ.SAMP_GRAY,
testName);
FORMATS_4SAMPLE[4] = -1;
doTest(35, 39, bi ? FORMATS_4BYTEBI : FORMATS_4SAMPLE, TJ.SAMP_GRAY,
testName);
}
if (!bi)
bufSizeTest();
if (doYUV && !bi) {
System.out.print("\n--------------------\n\n");
doTest(48, 48, FORMATS_RGB, TJ.SAMP_444, "javatest_yuv0");
doTest(48, 48, FORMATS_RGB, TJ.SAMP_422, "javatest_yuv0");
doTest(48, 48, FORMATS_RGB, TJ.SAMP_420, "javatest_yuv0");
doTest(48, 48, FORMATS_RGB, TJ.SAMP_440, "javatest_yuv0");
doTest(48, 48, FORMATS_RGB, TJ.SAMP_411, "javatest_yuv0");
doTest(48, 48, FORMATS_RGB, TJ.SAMP_441, "javatest_yuv0");
doTest(48, 48, FORMATS_RGB, TJ.SAMP_GRAY, "javatest_yuv0");
doTest(48, 48, FORMATS_GRAY, TJ.SAMP_GRAY, "javatest_yuv0");
}
} catch (Exception e) {
e.printStackTrace();
exitStatus = -1;
}
System.exit(exitStatus);
}