/*
* ome.server.itests.PixelsServiceTest
*
* Copyright 2006 University of Dundee. All rights reserved.
* Use is subject to license terms supplied in LICENSE.txt
*/
package ome.server.itests;
import java.util.Collection;
import ome.api.IPixels;
import ome.api.RawPixelsStore;
import ome.io.nio.RomioPixelBuffer;
import ome.model.core.Channel;
import ome.model.core.Image;
import ome.model.core.Pixels;
import ome.model.display.QuantumDef;
import ome.model.display.RenderingDef;
import ome.model.enums.RenderingModel;
import ome.parameters.Filter;
import ome.parameters.Parameters;
import ome.testing.ObjectFactory;
import omeis.providers.re.RenderingEngine;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
/**
*
* @author Josh Moore <a
* href="mailto:josh.moore@gmx.de">josh.moore@gmx.de</a>
* @since 1.0
*/
@Test(groups = "integration")
public class PixelsServiceTest extends AbstractManagedContextTest {
private static Logger log = LoggerFactory.getLogger(PixelsServiceTest.class);
private IPixels pix;
// =========================================================================
@BeforeClass
protected void setup() throws Exception {
// ome.security.Utils.setUserAuth();
pix = factory.getPixelsService();
}
@Test
public void testPix() {
Parameters param = new Parameters(new Filter().unique().page(0, 1));
Pixels p = (Pixels) iQuery.findByQuery("select p from Pixels p", param);
assertNotNull(p);
Pixels test = pix.retrievePixDescription(p.getId());
assertNotNull(test);
}
@Test(groups = { "broken", "ticket:119" })
public void testLetsSaveADefinition() throws Exception {
Pixels p = pix.retrievePixDescription(1L);
assertNotNull(p);
RenderingDef r = makeRndDef(p);
r = iUpdate.saveAndReturnObject(r);
RenderingDef test = pix.retrieveRndSettings(1L);
assertNotNull(test);
}
// TODO to ObjectFactory
private RenderingDef makeRndDef(Pixels p) {
RenderingDef r = new RenderingDef();
r.setDefaultT(1);
r.setDefaultZ(1);
r.setPixels(p);
RenderingModel m = new RenderingModel();
m.setValue("test");
r.setModel(m);
QuantumDef qd = new QuantumDef();
qd.setBitResolution(1);
qd.setCdStart(1);
qd.setCdEnd(1);
r.setQuantization(qd);
return r;
}
@Test(groups = "ticket:330")
public void testPixelsIsFilled() throws Exception {
Pixels p = ObjectFactory.createPixelGraph(null);
Image i = factory.getUpdateService().saveAndReturnObject(p.getImage());
p = i.getPrimaryPixels();
IPixels pix = factory.getPixelsService();
Pixels t = pix.retrievePixDescription(p.getId());
testPixelsFilled(t);
RenderingEngine re = factory.createRenderingEngine();
re.lookupPixels(p.getId());
t = re.getPixels();
testPixelsFilled(t);
}
private void testPixelsFilled(Pixels t) {
// assertTrue( t.sizeOfPlaneInfo() >= 0 );
Collection<Channel> c = t.unmodifiableChannels();
assertNotNull(c);
assertTrue(c.size() > 0);
for (Channel ch : c) {
assertNotNull(ch.getLogicalChannel());
}
}
@Test
public void testPerformance() {
Pixels pix = ObjectFactory.createPixelGraph(null);
pix.setSizeX(512);
pix.setSizeY(512);
pix.setSizeZ(1);
pix.setSizeT(1);
pix.setSizeC(1);
pix = iUpdate.saveAndReturnObject(pix.getImage()).getPixels(0);
RawPixelsStore raw = this.factory.createRawPixelsStore();
raw.setPixelsId(pix.getId(), false);
raw.calculateMessageDigest();
long size = raw.getPlaneSize();
byte[] data = new byte[RomioPixelBuffer.safeLongToInteger(size)];
raw.setPlane(data, 0, 0, 0);
raw.getPlane(0, 0, 0);
}
}