public void testArrayInterpolation1D() { final double[] dimension = new double[]{0, 1}; final double[] values = new double[]{0, 2, 1, 3}; final VectorLookupTable lut = new VectorLookupTable(2, values, dimension); assertEquals(1, lut.getDimensionCount()); assertEquals(0.0, lut.getDimension(0).getMin(), 0.0); assertEquals(1.0, lut.getDimension(0).getMax(), 0.0); assertTrue(Arrays.equals(new double[]{0.0, 2.0}, lut.getValues(0.0))); assertTrue(Arrays.equals(new double[]{1.0, 3.0}, lut.getValues(1.0))); assertTrue(Arrays.equals(new double[]{0.5, 2.5}, lut.getValues(0.5))); }
public void testArrayInterpolation2D() { final double[][] dimensions = new double[][]{{0, 1}, {0, 1}}; final double[] values = new double[]{0, 4, 1, 5, 2, 6, 3, 7}; final VectorLookupTable lut = new VectorLookupTable(2, values, dimensions); assertEquals(2, lut.getDimensionCount()); assertEquals(0.0, lut.getDimension(0).getMin(), 0.0); assertEquals(1.0, lut.getDimension(0).getMax(), 0.0); assertEquals(0.0, lut.getDimension(1).getMin(), 0.0); assertEquals(1.0, lut.getDimension(1).getMax(), 0.0); assertTrue(Arrays.equals(new double[]{0.0, 4.0}, lut.getValues(0.0, 0.0))); assertTrue(Arrays.equals(new double[]{1.0, 5.0}, lut.getValues(0.0, 1.0))); assertTrue(Arrays.equals(new double[]{2.0, 6.0}, lut.getValues(1.0, 0.0))); assertTrue(Arrays.equals(new double[]{3.0, 7.0}, lut.getValues(1.0, 1.0))); assertTrue(Arrays.equals(new double[]{0.5, 4.5}, lut.getValues(0.0, 0.5))); assertTrue(Arrays.equals(new double[]{1.5, 5.5}, lut.getValues(0.5, 0.5))); assertTrue(Arrays.equals(new double[]{2.5, 6.5}, lut.getValues(1.0, 0.5))); }
r[j] = rng.nextDouble() * (lut.getDimension(j).getMax() - lut.getDimension(j).getMin()); x[j] = r[j] + lut.getDimension(j).getMin();
public void testInterpolation1D() { final double[] dimension = new double[]{0, 1}; final double[] values = new double[]{0, 1}; final LookupTable lut = new LookupTable(values, dimension); assertEquals(1, lut.getDimensionCount()); assertEquals(0.0, lut.getDimension(0).getMin(), 0.0); assertEquals(1.0, lut.getDimension(0).getMax(), 0.0); assertEquals(0.0, lut.getValue(0.0), 0.0); assertEquals(1.0, lut.getValue(1.0), 0.0); assertEquals(0.5, lut.getValue(0.5), 0.0); }
public void testInterpolation2D() { final double[][] dimensions = new double[][]{{0, 1}, {0, 1}}; final double[] values = new double[]{0, 1, 2, 3}; final LookupTable lut = new LookupTable(values, dimensions); assertEquals(2, lut.getDimensionCount()); assertEquals(0.0, lut.getDimension(0).getMin(), 0.0); assertEquals(1.0, lut.getDimension(0).getMax(), 0.0); assertEquals(0.0, lut.getDimension(1).getMin(), 0.0); assertEquals(1.0, lut.getDimension(1).getMax(), 0.0); assertEquals(0.0, lut.getValue(0.0, 0.0), 0.0); assertEquals(1.0, lut.getValue(0.0, 1.0), 0.0); assertEquals(2.0, lut.getValue(1.0, 0.0), 0.0); assertEquals(3.0, lut.getValue(1.0, 1.0), 0.0); assertEquals(0.5, lut.getValue(0.0, 0.5), 0.0); assertEquals(1.5, lut.getValue(0.5, 0.5), 0.0); assertEquals(2.5, lut.getValue(1.0, 0.5), 0.0); }