@Test public void testSpecialPixelsInterleaved() throws Exception { int nSeries = 2; int rgb = 3; int sizeC = 3; int effSizeC = sizeC / rgb; int sizeZ = 4; int sizeT = 5; reader.setId(String.format( "foo&series=%s&sizeZ=%s&sizeC=%s&sizeT=%s&rgb=%d&interleaved=true.fake", nSeries, sizeZ, sizeC, sizeT, rgb)); reader.setSeries(1); int no = effSizeC * sizeZ * sizeT - 1; byte[] plane = reader.openBytes(no); int[] exp = new int[] {1, no, sizeZ - 1, effSizeC - 1, sizeT - 1}; assertEquals(FakeReader.readSpecialPixels( plane, FormatTools.UINT8, true, rgb, true), exp); }
@Test public void testSpecialPixelsIndexed() throws Exception { int nSeries = 2; int sizeC = 3; int sizeZ = 4; int sizeT = 5; reader.setId(String.format( "foo&series=%s&sizeZ=%s&sizeC=%s&sizeT=%s&indexed=true.fake", nSeries, sizeZ, sizeC, sizeT)); reader.setSeries(1); int no = sizeC * sizeZ * sizeT - 1; byte[] plane = reader.openBytes(no); int[] exp = new int[] {1, no, sizeZ - 1, sizeC - 1, sizeT - 1}; int[] indices = FakeReader.readSpecialPixels(plane); assertEquals(indices.length, exp.length); int[] specialPixels = new int[indices.length]; byte[][] lut = reader.get8BitLookupTable(); for (int i = 0; i < indices.length; i++) { specialPixels[i] = lut[0][(int)indices[i]]; } assertEquals(specialPixels, exp); }
@Test(dataProvider = "pixelFeatures") public void testSpecialPixels(int pixelType, boolean little) throws Exception { String pt = FormatTools.getPixelTypeString(pixelType); int nSeries = 2; int sizeC = 3; int sizeZ = 4; int sizeT = 5; reader.setId(String.format( "foo&pixelType=%s&series=%s&sizeZ=%s&sizeC=%s&sizeT=%s&little=%s.fake", pt, nSeries, sizeZ, sizeC, sizeT, little)); reader.setSeries(1); int no = sizeC * sizeZ * sizeT - 1; byte[] plane = reader.openBytes(no); int[] exp = new int[] {1, no, sizeZ - 1, sizeC - 1, sizeT - 1}; assertEquals(FakeReader.readSpecialPixels(plane, pixelType, little), exp); if (pixelType == FormatTools.UINT8) { assertEquals(FakeReader.readSpecialPixels(plane), exp); } }