Extract PolyInterpolator.main into Junit test case.
This commit is contained in:
parent
4bdada4aab
commit
f08ad83e5f
@ -228,35 +228,4 @@ public class PolyInterpolator {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
public static void main(String[] arg) {
|
||||
|
||||
PolyInterpolator p0 = new PolyInterpolator(
|
||||
new double[] {0.6, 1.1},
|
||||
new double[] {0.6, 1.1}
|
||||
);
|
||||
double[] r0 = p0.interpolator(1.5, 1.6, 2, -3);
|
||||
|
||||
PolyInterpolator p1 = new PolyInterpolator(
|
||||
new double[] {0.6, 1.1},
|
||||
new double[] {0.6, 1.1},
|
||||
new double[] {0.6}
|
||||
);
|
||||
double[] r1 = p1.interpolator(1.5, 1.6, 2, -3, 0);
|
||||
|
||||
PolyInterpolator p2 = new PolyInterpolator(
|
||||
new double[] {0.6, 1.1},
|
||||
new double[] {0.6, 1.1},
|
||||
new double[] {0.6, 1.1}
|
||||
);
|
||||
double[] r2 = p2.interpolator(1.5, 1.6, 2, -3, 0, 0);
|
||||
|
||||
|
||||
for (double x=0.6; x <= 1.11; x += 0.01) {
|
||||
System.out.println(x + " " + eval(x,r0) + " " + eval(x,r1) + " " + eval(x,r2));
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
212
core/test/net/sf/openrocket/util/PolyInterpolatorTest.java
Normal file
212
core/test/net/sf/openrocket/util/PolyInterpolatorTest.java
Normal file
@ -0,0 +1,212 @@
|
||||
package net.sf.openrocket.util;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
|
||||
import org.junit.Test;
|
||||
|
||||
public class PolyInterpolatorTest {
|
||||
|
||||
@Test
|
||||
public void oldMainTest() {
|
||||
{
|
||||
PolyInterpolator p0 = new PolyInterpolator(
|
||||
new double[] {0.6, 1.1},
|
||||
new double[] {0.6, 1.1}
|
||||
);
|
||||
double[] r0 = p0.interpolator(1.5, 1.6, 2, -3);
|
||||
double[] answer0 = new double[] {
|
||||
/* x=0.60*/ 1.4999999999999987,
|
||||
/* x=0.61*/ 1.5199143999999984,
|
||||
/* x=0.62*/ 1.5396351999999984,
|
||||
/* x=0.63*/ 1.5591287999999988,
|
||||
/* x=0.64*/ 1.578361599999998,
|
||||
/* x=0.65*/ 1.597299999999998,
|
||||
/* x=0.66*/ 1.6159103999999977,
|
||||
/* x=0.67*/ 1.6341591999999976,
|
||||
/* x=0.68*/ 1.6520127999999976,
|
||||
/* x=0.69*/ 1.669437599999997,
|
||||
/* x=0.70*/ 1.6863999999999977,
|
||||
/* x=0.71*/ 1.702866399999997,
|
||||
/* x=0.72*/ 1.7188031999999964,
|
||||
/* x=0.73*/ 1.7341767999999966,
|
||||
/* x=0.74*/ 1.7489535999999957,
|
||||
/* x=0.75*/ 1.7630999999999966,
|
||||
/* x=0.76*/ 1.7765823999999952,
|
||||
/* x=0.77*/ 1.7893671999999965,
|
||||
/* x=0.78*/ 1.8014207999999958,
|
||||
/* x=0.79*/ 1.8127095999999945,
|
||||
/* x=0.80*/ 1.8231999999999942,
|
||||
/* x=0.81*/ 1.8328583999999952,
|
||||
/* x=0.82*/ 1.841651199999994,
|
||||
/* x=0.83*/ 1.849544799999994,
|
||||
/* x=0.84*/ 1.856505599999993,
|
||||
/* x=0.85*/ 1.8624999999999927,
|
||||
/* x=0.86*/ 1.8674943999999924,
|
||||
/* x=0.87*/ 1.8714551999999918,
|
||||
/* x=0.88*/ 1.8743487999999924,
|
||||
/* x=0.89*/ 1.876141599999992,
|
||||
/* x=0.90*/ 1.8767999999999914,
|
||||
/* x=0.91*/ 1.8762903999999914,
|
||||
/* x=0.92*/ 1.8745791999999906,
|
||||
/* x=0.93*/ 1.8716327999999898,
|
||||
/* x=0.94*/ 1.8674175999999907,
|
||||
/* x=0.95*/ 1.8618999999999888,
|
||||
/* x=0.96*/ 1.8550463999999902,
|
||||
/* x=0.97*/ 1.8468231999999887,
|
||||
/* x=0.98*/ 1.8371967999999885,
|
||||
/* x=0.99*/ 1.826133599999988,
|
||||
/* x=1.00*/ 1.8135999999999868,
|
||||
/* x=1.01*/ 1.7995623999999868,
|
||||
/* x=1.02*/ 1.783987199999987,
|
||||
/* x=1.03*/ 1.7668407999999873,
|
||||
/* x=1.04*/ 1.748089599999986,
|
||||
/* x=1.05*/ 1.7276999999999854,
|
||||
/* x=1.06*/ 1.7056383999999847,
|
||||
/* x=1.07*/ 1.6818711999999838,
|
||||
/* x=1.08*/ 1.6563647999999844,
|
||||
/* x=1.09*/ 1.629085599999983,
|
||||
/* x=1.10*/ 1.5999999999999837
|
||||
};
|
||||
double x=0.6;
|
||||
for (int i=0; i<answer0.length; i++) {
|
||||
assertEquals("r0 different at x=" + x, PolyInterpolator.eval(x, r0), answer0[i],0.00001);
|
||||
x+=0.01;
|
||||
}
|
||||
}
|
||||
|
||||
{
|
||||
PolyInterpolator p1 = new PolyInterpolator(
|
||||
new double[] {0.6, 1.1},
|
||||
new double[] {0.6, 1.1},
|
||||
new double[] {0.6}
|
||||
);
|
||||
double[] r1 = p1.interpolator(1.5, 1.6, 2, -3, 0);
|
||||
double[] answer1 = new double[] {
|
||||
/* x=0.60*/ 1.4999999999999907,
|
||||
/* x=0.61*/ 1.5199912319999909,
|
||||
/* x=0.62*/ 1.5399301119999906,
|
||||
/* x=0.63*/ 1.5597649919999914,
|
||||
/* x=0.64*/ 1.5794449919999898,
|
||||
/* x=0.65*/ 1.5989199999999888,
|
||||
/* x=0.66*/ 1.6181406719999905,
|
||||
/* x=0.67*/ 1.6370584319999903,
|
||||
/* x=0.68*/ 1.655625471999989,
|
||||
/* x=0.69*/ 1.6737947519999874,
|
||||
/* x=0.70*/ 1.691519999999989,
|
||||
/* x=0.71*/ 1.7087557119999883,
|
||||
/* x=0.72*/ 1.7254571519999873,
|
||||
/* x=0.73*/ 1.741580351999988,
|
||||
/* x=0.74*/ 1.7570821119999884,
|
||||
/* x=0.75*/ 1.7719199999999875,
|
||||
/* x=0.76*/ 1.7860523519999871,
|
||||
/* x=0.77*/ 1.7994382719999862,
|
||||
/* x=0.78*/ 1.8120376319999876,
|
||||
/* x=0.79*/ 1.8238110719999838,
|
||||
/* x=0.80*/ 1.8347199999999855,
|
||||
/* x=0.81*/ 1.8447265919999851,
|
||||
/* x=0.82*/ 1.8537937919999865,
|
||||
/* x=0.83*/ 1.861885311999986,
|
||||
/* x=0.84*/ 1.8689656319999832,
|
||||
/* x=0.85*/ 1.8749999999999836,
|
||||
/* x=0.86*/ 1.8799544319999804,
|
||||
/* x=0.87*/ 1.8837957119999817,
|
||||
/* x=0.88*/ 1.8864913919999804,
|
||||
/* x=0.89*/ 1.8880097919999814,
|
||||
/* x=0.90*/ 1.8883199999999807,
|
||||
/* x=0.91*/ 1.8873918719999794,
|
||||
/* x=0.92*/ 1.88519603199998,
|
||||
/* x=0.93*/ 1.8817038719999788,
|
||||
/* x=0.94*/ 1.8768875519999786,
|
||||
/* x=0.95*/ 1.8707199999999764,
|
||||
/* x=0.96*/ 1.8631749119999794,
|
||||
/* x=0.97*/ 1.8542267519999784,
|
||||
/* x=0.98*/ 1.8438507519999745,
|
||||
/* x=0.99*/ 1.832022911999974,
|
||||
/* x=1.00*/ 1.8187199999999768,
|
||||
/* x=1.01*/ 1.8039195519999738,
|
||||
/* x=1.02*/ 1.7875998719999755,
|
||||
/* x=1.03*/ 1.7697400319999765,
|
||||
/* x=1.04*/ 1.7503198719999729,
|
||||
/* x=1.05*/ 1.7293199999999675,
|
||||
/* x=1.06*/ 1.7067217919999687,
|
||||
/* x=1.07*/ 1.6825073919999713,
|
||||
/* x=1.08*/ 1.656659711999966,
|
||||
/* x=1.09*/ 1.629162431999962,
|
||||
/* x=1.10*/ 1.5999999999999686
|
||||
};
|
||||
double x=0.6;
|
||||
for (int i=0; i<answer1.length; i++) {
|
||||
assertEquals("r1 different at x=" + x, PolyInterpolator.eval(x, r1), answer1[i],0.00001);
|
||||
x+=0.01;
|
||||
}
|
||||
}
|
||||
{
|
||||
PolyInterpolator p2 = new PolyInterpolator(
|
||||
new double[] {0.6, 1.1},
|
||||
new double[] {0.6, 1.1},
|
||||
new double[] {0.6, 1.1}
|
||||
);
|
||||
double[] r2 = p2.interpolator(1.5, 1.6, 2, -3, 0, 0);
|
||||
double[] answer2 = new double[] {
|
||||
/* x=0.60*/ 1.5000000000000844,
|
||||
/* x=0.61*/ 1.520007366720093,
|
||||
/* x=0.62*/ 1.5400539750400783,
|
||||
/* x=0.63*/ 1.5601657929600794,
|
||||
/* x=0.64*/ 1.58035504128011,
|
||||
/* x=0.65*/ 1.6006210000000962,
|
||||
/* x=0.66*/ 1.620950814720107,
|
||||
/* x=0.67*/ 1.641320303040109,
|
||||
/* x=0.68*/ 1.6616947609601311,
|
||||
/* x=0.69*/ 1.682029769280133,
|
||||
/* x=0.70*/ 1.7022720000001055,
|
||||
/* x=0.71*/ 1.7223600227201015,
|
||||
/* x=0.72*/ 1.7422251110400993,
|
||||
/* x=0.73*/ 1.7617920489601087,
|
||||
/* x=0.74*/ 1.7809799372800814,
|
||||
/* x=0.75*/ 1.7997030000000898,
|
||||
/* x=0.76*/ 1.8178713907201,
|
||||
/* x=0.77*/ 1.8353919990401195,
|
||||
/* x=0.78*/ 1.85216925696011,
|
||||
/* x=0.79*/ 1.8681059452800994,
|
||||
/* x=0.80*/ 1.8831040000000847,
|
||||
/* x=0.81*/ 1.897065318720074,
|
||||
/* x=0.82*/ 1.9098925670401137,
|
||||
/* x=0.83*/ 1.921489984960104,
|
||||
/* x=0.84*/ 1.931764193280106,
|
||||
/* x=0.85*/ 1.940625000000086,
|
||||
/* x=0.86*/ 1.9479862067200955,
|
||||
/* x=0.87*/ 1.9537664150401213,
|
||||
/* x=0.88*/ 1.9578898329600989,
|
||||
/* x=0.89*/ 1.9602870812801143,
|
||||
/* x=0.90*/ 1.960896000000119,
|
||||
/* x=0.91*/ 1.9596624547200818,
|
||||
/* x=0.92*/ 1.9565411430400914,
|
||||
/* x=0.93*/ 1.9514964009601528,
|
||||
/* x=0.94*/ 1.9445030092801048,
|
||||
/* x=0.95*/ 1.9355470000001276,
|
||||
/* x=0.96*/ 1.92462646272012,
|
||||
/* x=0.97*/ 1.9117523510400858,
|
||||
/* x=0.98*/ 1.8969492889601298,
|
||||
/* x=0.99*/ 1.8802563772801548,
|
||||
/* x=1.00*/ 1.86172800000017,
|
||||
/* x=1.01*/ 1.8414346307201441,
|
||||
/* x=1.02*/ 1.8194636390400944,
|
||||
/* x=1.03*/ 1.7959200969601596,
|
||||
/* x=1.04*/ 1.7709275852801198,
|
||||
/* x=1.05*/ 1.7446290000001738,
|
||||
/* x=1.06*/ 1.7171873587201247,
|
||||
/* x=1.07*/ 1.6887866070401714,
|
||||
/* x=1.08*/ 1.659632424960222,
|
||||
/* x=1.09*/ 1.6299530332800884,
|
||||
/* x=1.10*/ 1.6000000000001648
|
||||
};
|
||||
|
||||
double x=0.6;
|
||||
for (int i=0; i<answer2.length; i++) {
|
||||
assertEquals("r2 different at x=" + x, PolyInterpolator.eval(x, r2), answer2[i],0.00001);
|
||||
x+=0.01;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user