/**
* Copyright (C) 2010-14 diirt developers. See COPYRIGHT.TXT
* All rights reserved. Use is subject to license terms. See LICENSE.TXT
*/
package org.diirt.datasource.extra;
/**
* Copyright (C) 2010-12 Brookhaven National Laboratory
* All rights reserved. Use is subject to license terms.
*/
import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.Test;
import static org.junit.Assert.*;
/**
*
* @author carcassi
*/
public class InterpolationsTest {
public InterpolationsTest() {
}
@BeforeClass
public static void setUpClass() throws Exception {
}
@AfterClass
public static void tearDownClass() throws Exception {
}
@Test
public void testNoInterpolation1() {
// Should return the same value
double[] x = new double[] {0.0, 1.0, 2.0};
double[] y = new double[] {3.0, 4.0, 1.0};
double[] result = Interpolations.noInterpolation().interpolate(x, y, 3);
assertEquals(3, result.length);
assertArrayEquals(y, result, 0.000000000001);
}
@Test
public void testNoInterpolation2() {
// Interpolate 2 values
double[] x = new double[] {0.0, 1.0};
double[] y = new double[] {10.0, 4.0};
double[] result = Interpolations.noInterpolation().interpolate(x, y, 4);
assertEquals(4, result.length);
assertArrayEquals(new double[] {10.0, 10.0, 4.0, 4.0}, result, 0.000000000001);
}
@Test
public void testNoInterpolation3() {
// Interpolate 3 values, checks middle value is prolonged in both directions
double[] x = new double[] {0.0, 1.0, 2.0};
double[] y = new double[] {3.0, 4.0, 1.0};
double[] result = Interpolations.noInterpolation().interpolate(x, y, 7);
assertEquals(7, result.length);
assertArrayEquals(new double[] {3.0, 3.0, 4.0, 4.0, 4.0, 1.0, 1.0}, result, 0.000000000001);
}
@Test
public void testNoInterpolation4() {
// 4th value is taken but 2 is interpolated
double[] x = new double[] {0.0, 1.0, 1.5, 2.0};
double[] y = new double[] {3.0, 4.0, 2.0, 1.0};
double[] result = Interpolations.noInterpolation().interpolate(x, y, 5);
assertEquals(5, result.length);
assertArrayEquals(new double[] {3.0, 4.0, 4.0, 2.0, 1.0}, result, 0.000000000001);
}
@Test
public void testNoInterpolation5() {
// Should discard bunch of values
double[] x = new double[] {0.0, 0.1, 1.0, 1.5, 1.9, 2.0};
double[] y = new double[] {3.0, 10.0, 4.0, 2.0, 10.0, 1.0};
double[] result = Interpolations.noInterpolation().interpolate(x, y, 3);
assertEquals(3, result.length);
assertArrayEquals(new double[] {3.0, 4.0, 1.0}, result, 0.000000000001);
}
}