/*- * Copyright 2015 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 org.eclipse.dawnsci.analysis.dataset.slicer; import static org.junit.Assert.*; import org.eclipse.dawnsci.analysis.dataset.slicer.SliceInformation; import org.eclipse.january.dataset.Slice; import org.eclipse.january.dataset.SliceND; import org.junit.Test; public class SliceInformationTest { @Test public void testReduceDimension() { int dim = 1; SliceInformation si = getSliceInfo(); int[] osss = si.getSubSampledShape(); Slice[] os = si.getSliceInOutput(); si.reducedDimensionToSingular(dim); int[] sss = si.getSubSampledShape(); Slice[] so = si.getSliceInOutput(); for (int i = 0; i< osss.length; i++) { if (i == dim) { assertEquals(dim,sss[i]); assertEquals(0, so[i].getStart().intValue()); } else{ assertEquals(osss[i],sss[i]); assertEquals(os[i].getStart().intValue(), so[i].getStart().intValue()); } } } @Test public void testgetReducedSlice() { SliceInformation si = getSliceInfo(); SliceND ss = si.getInputSliceWithoutDataDimensions(); assertArrayEquals(new int[]{2,3},ss.getStart()); assertArrayEquals(new int[]{3,4},ss.getStop()); } private SliceInformation getSliceInfo(){ int[] shape = new int[]{4,5,6}; int[] start = new int[]{2,3,0}; int[] stop = new int[]{3,4,5}; int[]step = new int[]{1,1,1}; SliceND c = new SliceND(shape,start.clone(),stop.clone(),step.clone()); SliceND o = new SliceND(shape,start.clone(),stop.clone(),step.clone()); SliceND s = new SliceND(shape); return new SliceInformation(c, o, s, new int[]{2}, 20, 18); } }