/*
* Copyright (c) 2012 Diamond Light Source Ltd.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*/
package uk.ac.diamond.scisoft.analysis.processing.test;
import java.io.File;
import org.eclipse.dawnsci.analysis.api.processing.IOperation;
import org.eclipse.dawnsci.analysis.api.processing.IOperationContext;
import org.eclipse.dawnsci.analysis.api.processing.IOperationService;
import org.eclipse.dawnsci.analysis.dataset.roi.RectangularROI;
import org.eclipse.dawnsci.hdf.object.operation.HierarchicalFileExecutionVisitor;
import org.eclipse.january.dataset.Dataset;
import org.eclipse.january.dataset.DatasetFactory;
import org.eclipse.january.dataset.IDataset;
import org.eclipse.january.dataset.ILazyDataset;
import org.eclipse.january.dataset.Random;
import org.eclipse.january.metadata.AxesMetadata;
import org.eclipse.january.metadata.MetadataFactory;
import org.junit.BeforeClass;
import org.junit.Test;
import uk.ac.diamond.scisoft.analysis.processing.Activator;
import uk.ac.diamond.scisoft.analysis.processing.operations.RotatedCartesianBox;
import uk.ac.diamond.scisoft.analysis.processing.operations.RotatedCartesianBoxModel;
public class RotatedCartesianBoxToFileTest {
private static IOperationService service;
/**
* Manually creates the service so that no extension points have to be read.
*
* We do this use annotations
* @throws Exception
*/
@BeforeClass
public static void before() throws Exception {
service = (IOperationService)Activator.getService(IOperationService.class);
// Just read all these operations.
service.createOperations(service.getClass().getClassLoader(), "uk.ac.diamond.scisoft.analysis.processing.operations");
}
@Test
public void testIntegration() throws Exception {
int[] dsShape = new int[]{100, 100, 100};
ILazyDataset lz = Random.lazyRand("test", dsShape);
final IOperationContext context = service.createContext();
context.setData(lz);
// context.setSlicing(sliceMap); //
context.setDataDimensions(new int[]{1,2});
final IDataset axDataset1 = DatasetFactory.createRange(100,Dataset.INT16);
axDataset1.setShape(new int[] {100,1,1});
axDataset1.setName("z");
final IDataset axDataset2 = DatasetFactory.createRange(100,Dataset.INT32);
axDataset2.setShape(new int[] {1,100,1});
axDataset2.setName("y");
final IDataset axDataset3 = DatasetFactory.createRange(100,Dataset.INT32);
axDataset3.setShape(new int[] {1,1,100});
axDataset3.setName("x");
AxesMetadata am = MetadataFactory.createMetadata(AxesMetadata.class, 3);
am.addAxis(0, axDataset1);
am.addAxis(1, axDataset2);
am.addAxis(2, axDataset3);
lz.addMetadata(am);
//pixel integration
final IOperation rotatedCartesianBox = new RotatedCartesianBox();
RotatedCartesianBoxModel parameters = new RotatedCartesianBoxModel();
parameters.setRoi(new RectangularROI(30,30,40,40,0.0));
rotatedCartesianBox.setModel(parameters);
try {
final File tmp = File.createTempFile("Test", ".h5");
tmp.deleteOnExit();
tmp.createNewFile();
long time = System.currentTimeMillis();
context.setSeries(rotatedCartesianBox);
context.setVisitor(new HierarchicalFileExecutionVisitor(tmp.getAbsolutePath()));
service.execute(context);
System.out.println( System.currentTimeMillis() - time);
} catch (Exception e) {
e.printStackTrace();
}
System.out.println("debug");
}
}