package org.dawnsci.surfacescatter.test; import static org.junit.Assert.*; import org.dawnsci.surfacescatter.VerticalHorizontalSlices; import org.eclipse.dawnsci.analysis.api.roi.IROI; import org.eclipse.dawnsci.analysis.api.roi.IRectangularROI; import org.eclipse.dawnsci.analysis.dataset.roi.RectangularROI; import org.eclipse.dawnsci.plotting.api.IPlottingSystem; import org.eclipse.dawnsci.plotting.api.PlottingFactory; import org.eclipse.dawnsci.plotting.api.region.IRegion; import org.eclipse.dawnsci.plotting.api.region.IRegion.RegionType; import org.eclipse.dawnsci.plotting.api.trace.ILineTrace; import org.eclipse.january.dataset.DatasetFactory; import org.eclipse.january.dataset.IDataset; import org.eclipse.january.dataset.Maths; import org.eclipse.swt.widgets.Composite; import org.junit.Test; public class VerticalHorizontalSlicesTest { private IRectangularROI verticalSliceBounds; private IPlottingSystem<Composite> pS2; private IPlottingSystem<Composite> pS1; private IDataset background; private IDataset originalInput; private IROI green; private IRegion verticalSliceBoundsRegion; private IRegion greenRegion; public void setupInputs(){ background = (IDataset) DatasetFactory.ones(new int[] {500,200}); originalInput= (IDataset) DatasetFactory.ones(new int[] {1000,2000}); originalInput = Maths.multiply(10, originalInput); try { pS2 = PlottingFactory.createPlottingSystem(); pS1 = PlottingFactory.createPlottingSystem(); pS1.createPlot2D(originalInput, null,null); pS2.createPlot2D(background, null,null); verticalSliceBoundsRegion = pS2.createRegion("Test Vertical Slice", RegionType.XAXIS); greenRegion = pS1.createRegion("Region of Interest", RegionType.BOX); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } RectangularROI vertROI = new RectangularROI(100, 0, 100, 200, 0); verticalSliceBoundsRegion.setROI(vertROI); RectangularROI startGreenROI = new RectangularROI(100,100,500,200,0); greenRegion.setROI(startGreenROI); green = greenRegion.getROI(); verticalSliceBounds = verticalSliceBoundsRegion.getROI().getBounds(); } @Test public void testVerticalSlice() { setupInputs(); VerticalHorizontalSlices vhs = new VerticalHorizontalSlices(); @SuppressWarnings("static-access") ILineTrace ltTest= vhs.verticalslice(verticalSliceBounds, background, pS1, green); IDataset xOutput = ltTest.getXData(); assertTrue((double) xOutput.getObject(0) == (double) 0); assertTrue((double) xOutput.getObject(xOutput.getShape()[0]) == (double) 200); boolean r = true; int y = 0; for(int t =0; t<ltTest.getYData().getShape()[0]; t++){ y+=1; if((double) ltTest.getYData().getObject(t) != (double) 100){ r = false; } } assertTrue((r == true) && (y == ltTest.getYData().getShape()[0])); } }