/*-
* 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.diffraction.powder;
import java.util.List;
import org.eclipse.dawnsci.analysis.api.io.IDataHolder;
import org.eclipse.january.dataset.Dataset;
import org.eclipse.january.dataset.IDataset;
import org.eclipse.january.dataset.Maths;
import org.eclipse.dawnsci.analysis.api.metadata.IDiffractionMetadata;
import org.junit.Assert;
import org.junit.Test;
import uk.ac.diamond.scisoft.analysis.io.LoaderFactory;
import uk.ac.diamond.scisoft.analysis.roi.XAxis;
public class PixelIntegrationCompare1D extends AbstractPixelIntegrationTestBase {
final static String pathPyFAINonSplitting = "testfiles/pyfai_non_splitting.dat";
final static String pathPyFAISplitting = "testfiles/pyfai_split.dat";
@Test
public void compareNonSplitting() {
IDataset data = getData();
if (data == null) {
Assert.fail("Could not load test data");
return;
}
IDiffractionMetadata meta = getDiffractionMetadata();
NonPixelSplittingIntegration npsi = new NonPixelSplittingIntegration(meta, 2000);
npsi.setAxisType(XAxis.ANGLE);
List<Dataset> out = npsi.integrate(data);
IDataHolder dh;
try {
dh = LoaderFactory.getData(pathPyFAINonSplitting);
} catch (Exception e) {
Assert.fail("Could not load test reduced data");
return;
}
IDataset x = dh.getDataset("Column_1");
IDataset y = dh.getDataset("Column_2");
Dataset difx = Maths.subtract(x, out.get(0));
Dataset dify = Maths.subtract(y, out.get(1));
double xm = difx.max().doubleValue();
double ym = dify.max().doubleValue();
//Check results are not too different
Assert.assertEquals(0, xm, 0.00001);
Assert.assertTrue(ym < 60);
}
@Test
public void compareSplitting() {
IDataset data = getData();
if (data == null) {
Assert.fail("Could not load test data");
return;
}
IDiffractionMetadata meta = getDiffractionMetadata();
PixelSplittingIntegration npsi = new PixelSplittingIntegration(meta, 2000);
List<Dataset> out = npsi.integrate(data);
IDataHolder dh;
try {
dh = LoaderFactory.getData(pathPyFAISplitting);
} catch (Exception e) {
Assert.fail("Could not load test reduced data");
return;
}
IDataset x = dh.getDataset("Column_1");
IDataset y = dh.getDataset("Column_2");
Dataset difx = Maths.subtract(x, out.get(0));
Dataset dify = Maths.subtract(y, out.get(1));
double xm = difx.max().doubleValue();
double ym = dify.max().doubleValue();
//Check results are not too different
Assert.assertEquals(0, xm, 0.00001);
Assert.assertTrue(ym < 60);
}
}