/* * 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.io; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; import org.eclipse.dawnsci.analysis.api.metadata.IDiffractionMetadata; import org.junit.Test; public class NexusDiffractionMetaTest { static String testScratchDirectoryName = null; final static String testFileFolder = "testfiles/gda/analysis/io/NexusDiffractionTest/"; @Test public void testNCDReductionResults1Detector() { NexusDiffractionMetaReader nr = new NexusDiffractionMetaReader(testFileFolder + "results_i22-102527_Pilatus2M_280313_112434.nxs"); IDiffractionMetadata md = nr.getDiffractionMetadataFromNexus(new int[]{1679,1475}); assertTrue(nr.anyValuesRead()); double[] beamCentre = md.getDetector2DProperties().getBeamCentreCoords(); assertEquals(702.2209567198178, beamCentre[0],0.01); assertEquals(94.02399999999989, beamCentre[1],0.01); assertEquals(9660.957924056238, md.getDetector2DProperties().getBeamCentreDistance(),0.01); assertEquals(1, md.getDiffractionCrystalEnvironment().getWavelength(),0.01); } @Test public void testNCDReductionResults2Detectors() { NexusDiffractionMetaReader nr = new NexusDiffractionMetaReader(testFileFolder + "background_i22-119185_HotwaxsPilatus2M_090513_115327.nxs"); IDiffractionMetadata md = nr.getDiffractionMetadataFromNexus(new int[]{1679,1475}); assertTrue(nr.anyValuesRead()); double[] beamCentre = md.getDetector2DProperties().getBeamCentreCoords(); assertEquals(718.46, beamCentre[0],0.01); assertEquals(92.3614931237721, beamCentre[1],0.01); assertEquals(1.5498, md.getDiffractionCrystalEnvironment().getWavelength(),0.01); } @Test public void testI22Nexus() { NexusDiffractionMetaReader nr = new NexusDiffractionMetaReader(testFileFolder + "i22-119583.nxs"); IDiffractionMetadata md = nr.getDiffractionMetadataFromNexus(new int[]{1679,1475}); assertTrue(nr.anyValuesRead()); double[] beamCentre = md.getDetector2DProperties().getBeamCentreCoords(); assertEquals(100.0, beamCentre[0],0.01); assertEquals(100.00, beamCentre[1],0.01); assertEquals(5486.400000000001, md.getDetector2DProperties().getBeamCentreDistance(),0.01); assertEquals(1, md.getDiffractionCrystalEnvironment().getWavelength(),0.01); } @Test public void testPersisted() { NexusDiffractionMetaReader nr = new NexusDiffractionMetaReader(testFileFolder + "persisted.nxs"); IDiffractionMetadata md = nr.getDiffractionMetadataFromNexus(new int[]{2527,2463}); assertTrue(nr.anyValuesRead()); assertTrue(nr.isPartialRead()); assertTrue(nr.isCompleteRead()); double[] beamCentre = md.getDetector2DProperties().getBeamCentreCoords(); assertEquals(1225.28, beamCentre[0],0.01); assertEquals(1223.32, beamCentre[1],0.01); assertEquals(199.9999999999999, md.getDetector2DProperties().getBeamCentreDistance(),0.01); assertEquals(0.9762999999999995, md.getDiffractionCrystalEnvironment().getWavelength(),0.01); } }