private void testShort(TestHarness harness)
{
harness.checkPoint("(short[], short[])");
short[] data = {105, 104, 103, 102, 101, 100};
ShortLookupTable t = new ShortLookupTable(100, data);
// check 1-band source with 1-band lookup table
short[] src = new short[] {100};
short[] dst = t.lookupPixel(src, null);
harness.check(dst[0], 105);
src = new short[] {101};
dst = new short[] {0};
dst = t.lookupPixel(src, dst);
harness.check(dst[0], 104);
// check 3-band source with 1-band lookup table
src = new short[] {100, 101, 102};
try {
dst = t.lookupPixel(src, null);
harness.check(dst[0], 105);
harness.check(dst[1], 104);
harness.check(dst[2], 103);
}
catch (Exception e) { // don't allow a failure to
harness.check(false); // disrupt remaining checks
harness.debug(e);
}
src = new short[] {102, 103, 104};
dst = new short[] {0, 0, 0};
try {
dst = t.lookupPixel(src, dst);
harness.check(dst[0], 103);
harness.check(dst[1], 102);
harness.check(dst[2], 101);
}
catch (Exception e) { // don't allow a failure to
harness.check(false); // disrupt remaining checks
harness.debug(e);
}
// check 3-band source with 3-band lookup table
short[][] data2 = {
{105, 104, 103, 102, 101, 100},
{115, 114, 113, 112, 111, 110},
{125, 124, 123, 122, 121, 120}
};
ShortLookupTable t2 = new ShortLookupTable(100, data2);
short[] src2 = {100, 101, 102};
dst = t2.lookupPixel(src2, null);
harness.check(dst[0], 105);
harness.check(dst[1], 114);
harness.check(dst[2], 123);
src2 = new short[] {103, 104, 105};
dst = new short[] {0, 0, 0};
dst = t2.lookupPixel(src2, dst);
harness.check(dst[0], 102);
harness.check(dst[1], 111);
harness.check(dst[2], 120);
// check 1-band source with 2-band lookup table
short[][] data3 = {
{105, 104, 103, 102, 101, 100},
{115, 114, 113, 112, 111, 110},
};
ShortLookupTable t3 = new ShortLookupTable(100, data3);
src = new short[] {100};
dst = t3.lookupPixel(src, null);
harness.check(dst[0], 105);
src = new short[] {101};
dst = new short[1];
dst = t3.lookupPixel(src, dst);
harness.check(dst[0], 104);
// check 3 band source, 2 band lookup table
try {
dst = t3.lookupPixel(src2, null);
harness.check(false);
}
catch (ArrayIndexOutOfBoundsException e) {
harness.check(true);
}
dst = new short[3];
try {
dst = t3.lookupPixel(src2, dst);
harness.check(false);
}
catch (ArrayIndexOutOfBoundsException e) {
harness.check(true);
}