/* * $Id$ * * Copyright 2006 University of Dundee. All rights reserved. * Use is subject to license terms supplied in LICENSE.txt */ package ome.io.nio.utests; import static org.testng.AssertJUnit.*; import java.nio.ByteBuffer; import org.testng.annotations.*; import ome.io.nio.RomioPixelBuffer; import ome.model.core.Pixels; import ome.model.enums.PixelsType; import ome.util.checksum.ChecksumProviderFactory; import ome.util.checksum.ChecksumProviderFactoryImpl; import ome.util.checksum.ChecksumType; /** * This tests planar and sub-planar data retrieval using a known good ROMIO * binary repository data file. The data file can be downloaded at: * <a href="http://users.openmicroscopy.org.uk/~callan/100.bz2"/> and its * decompressed MD5 digest is <code>4034ae78a03d74fd27c80681cdf6a695</code>. * * @author Chris Allan <callan@glencoesoftware.com> * */ public class PlanarDataTest { /** Imported tinyTest.d3d.dv binary repository file. */ private static final String PIXELS_PATH = "/OMERO/Pixels/100"; /** Imported tinyTest.d3d.dv pixels ID. */ private static final long PIXELS_ID = 100L; private final ChecksumProviderFactory cpf = new ChecksumProviderFactoryImpl(); private RomioPixelBuffer getRomioPixelBuffer() { PixelsType pType = new PixelsType(); pType.setId(1L); pType.setValue("int16"); Pixels p = new Pixels(); p.setId(PIXELS_ID); p.setSizeX(20); p.setSizeY(20); p.setSizeZ(5); p.setSizeC(1); p.setSizeT(6); p.setPixelsType(pType); RomioPixelBuffer buffer = new RomioPixelBuffer(PIXELS_PATH, p); return buffer; } @Test(groups={"manual"}) public void testFirstPlaneSecondTimepointFirstChannelMd5() throws Exception { RomioPixelBuffer buffer = getRomioPixelBuffer(); ByteBuffer buf = buffer.getPlane(0, 0, 1).getData(); String md = cpf.getProvider(ChecksumType.MD5).putBytes(buf).checksumAsString(); assertEquals("2d1c16c02bece26920ff04ff08985f5e", md); } @Test(groups={"manual"}) public void testFirstPlaneSecondTimepointFirstChannelFirstEightPixelsMd5() throws Exception { RomioPixelBuffer buffer = getRomioPixelBuffer(); byte[] buf = new byte[16]; buffer.getPlaneRegionDirect(0, 0, 1, 8, 0, buf); String md = cpf.getProvider(ChecksumType.MD5).putBytes(buf).checksumAsString(); assertEquals("505c12f3149129adf250ae96af159ea1", md); } @Test(groups={"manual"}) public void testFirstPlaneSecondTimepointFirstChannelSecondEightPixelsMd5() throws Exception { RomioPixelBuffer buffer = getRomioPixelBuffer(); byte[] buf = new byte[16]; buffer.getPlaneRegionDirect(0, 0, 1, 8, 8, buf); String md = cpf.getProvider(ChecksumType.MD5).putBytes(buf).checksumAsString(); assertEquals("ed6a8ba38c61808d5790419c7a33839c", md); } @Test(groups={"manual"}) public void testFirstPlaneSecondTimepointFirstChannelLastEightPixelsMd5() throws Exception { RomioPixelBuffer buffer = getRomioPixelBuffer(); byte[] buf = new byte[16]; buffer.getPlaneRegionDirect(0, 0, 1, 8, 392, buf); String md = cpf.getProvider(ChecksumType.MD5).putBytes(buf).checksumAsString(); assertEquals("ab1786af4395c09f52de23d710e37a7f", md); } }