/*- * 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.dataset.function; import static org.junit.Assert.assertEquals; import org.eclipse.january.dataset.BooleanDataset; import org.eclipse.january.dataset.Dataset; import org.eclipse.january.dataset.DatasetFactory; import org.junit.Before; import org.junit.Test; /** * */ public class MapToRotatedCartesianAndIntegrateTest { Dataset d = DatasetFactory.zeros(new int[] {500, 500}, Dataset.FLOAT64); /** */ @Before public void setUp() { d.fill(1.); } /** * */ @Test public void testMapToRotatedCartesianAndIntegrate() { MapToRotatedCartesianAndIntegrate mp = new MapToRotatedCartesianAndIntegrate(100,70,50,30,45.); Dataset pd = mp.value(d).get(0); double answer = 50.*30; assertEquals(answer, ((Number) pd.sum()).doubleValue(), answer*1e-4); // within 0.01% accuracy } /** * */ @Test public void testMapToRotatedCartesianAndIntegrateMasked() { MapToRotatedCartesianAndIntegrate mp = new MapToRotatedCartesianAndIntegrate(100,70,50,30,45.); BooleanDataset m = DatasetFactory.zeros(BooleanDataset.class, d.getShape()); m.fill(true); mp.setMask(m); Dataset pd = mp.value(d).get(0); double answer = 50.*30; assertEquals(answer, ((Number) pd.sum()).doubleValue(), answer*1e-4); // within 0.01% accuracy m.fill(false); mp.setMask(m); pd = mp.value(d).get(0); assertEquals(0, ((Number) pd.sum()).doubleValue(), 1e-4); // within 0.01% accuracy m.fill(true); m.setSlice(false, new int[] {0, 108}, null, null); pd = mp.value(d).get(0); answer = 0.5*50.*30; assertEquals(answer, ((Number) pd.sum()).doubleValue(), answer*3e-2); // within 3% accuracy } }