create changelog entry
[debian/openrocket] / core / test / net / sf / openrocket / util / PolyInterpolatorTest.java
1 package net.sf.openrocket.util;
2
3 import static org.junit.Assert.assertEquals;
4
5 import org.junit.Test;
6
7 public class PolyInterpolatorTest {
8
9         @Test
10         public void oldMainTest() {
11                 {
12                         PolyInterpolator p0 = new PolyInterpolator(
13                                         new double[] {0.6, 1.1},
14                                         new double[] {0.6, 1.1}
15                                         );
16                         double[] r0 = p0.interpolator(1.5, 1.6, 2, -3);
17                         double[] answer0 = new double[] {
18                                         /* x=0.60*/  1.4999999999999987, 
19                                         /* x=0.61*/  1.5199143999999984, 
20                                         /* x=0.62*/  1.5396351999999984, 
21                                         /* x=0.63*/  1.5591287999999988, 
22                                         /* x=0.64*/  1.578361599999998, 
23                                         /* x=0.65*/  1.597299999999998, 
24                                         /* x=0.66*/  1.6159103999999977, 
25                                         /* x=0.67*/  1.6341591999999976, 
26                                         /* x=0.68*/  1.6520127999999976, 
27                                         /* x=0.69*/  1.669437599999997, 
28                                         /* x=0.70*/  1.6863999999999977, 
29                                         /* x=0.71*/  1.702866399999997, 
30                                         /* x=0.72*/  1.7188031999999964, 
31                                         /* x=0.73*/  1.7341767999999966, 
32                                         /* x=0.74*/  1.7489535999999957, 
33                                         /* x=0.75*/  1.7630999999999966, 
34                                         /* x=0.76*/  1.7765823999999952, 
35                                         /* x=0.77*/  1.7893671999999965, 
36                                         /* x=0.78*/  1.8014207999999958, 
37                                         /* x=0.79*/  1.8127095999999945, 
38                                         /* x=0.80*/  1.8231999999999942, 
39                                         /* x=0.81*/  1.8328583999999952, 
40                                         /* x=0.82*/  1.841651199999994, 
41                                         /* x=0.83*/  1.849544799999994, 
42                                         /* x=0.84*/  1.856505599999993, 
43                                         /* x=0.85*/  1.8624999999999927, 
44                                         /* x=0.86*/  1.8674943999999924, 
45                                         /* x=0.87*/  1.8714551999999918, 
46                                         /* x=0.88*/  1.8743487999999924, 
47                                         /* x=0.89*/  1.876141599999992, 
48                                         /* x=0.90*/  1.8767999999999914, 
49                                         /* x=0.91*/  1.8762903999999914, 
50                                         /* x=0.92*/  1.8745791999999906, 
51                                         /* x=0.93*/  1.8716327999999898, 
52                                         /* x=0.94*/  1.8674175999999907, 
53                                         /* x=0.95*/  1.8618999999999888, 
54                                         /* x=0.96*/  1.8550463999999902, 
55                                         /* x=0.97*/  1.8468231999999887, 
56                                         /* x=0.98*/  1.8371967999999885, 
57                                         /* x=0.99*/  1.826133599999988, 
58                                         /* x=1.00*/  1.8135999999999868, 
59                                         /* x=1.01*/  1.7995623999999868, 
60                                         /* x=1.02*/  1.783987199999987, 
61                                         /* x=1.03*/  1.7668407999999873, 
62                                         /* x=1.04*/  1.748089599999986, 
63                                         /* x=1.05*/  1.7276999999999854, 
64                                         /* x=1.06*/  1.7056383999999847, 
65                                         /* x=1.07*/  1.6818711999999838, 
66                                         /* x=1.08*/  1.6563647999999844, 
67                                         /* x=1.09*/  1.629085599999983, 
68                                         /* x=1.10*/  1.5999999999999837
69                         };
70                         double x=0.6;
71                         for (int i=0; i<answer0.length; i++) {
72                                 assertEquals("r0 different at x=" + x, PolyInterpolator.eval(x, r0), answer0[i],0.00001);
73                                 x+=0.01;
74                         }
75                 }
76
77                 {
78                         PolyInterpolator p1 = new PolyInterpolator(
79                                         new double[] {0.6, 1.1},
80                                         new double[] {0.6, 1.1},
81                                         new double[] {0.6}
82                                         );
83                         double[] r1 = p1.interpolator(1.5, 1.6, 2, -3, 0);
84                         double[] answer1 = new double[] {
85                                         /* x=0.60*/  1.4999999999999907, 
86                                         /* x=0.61*/  1.5199912319999909, 
87                                         /* x=0.62*/  1.5399301119999906, 
88                                         /* x=0.63*/  1.5597649919999914, 
89                                         /* x=0.64*/  1.5794449919999898, 
90                                         /* x=0.65*/  1.5989199999999888, 
91                                         /* x=0.66*/  1.6181406719999905, 
92                                         /* x=0.67*/  1.6370584319999903, 
93                                         /* x=0.68*/  1.655625471999989, 
94                                         /* x=0.69*/  1.6737947519999874, 
95                                         /* x=0.70*/  1.691519999999989, 
96                                         /* x=0.71*/  1.7087557119999883, 
97                                         /* x=0.72*/  1.7254571519999873, 
98                                         /* x=0.73*/  1.741580351999988, 
99                                         /* x=0.74*/  1.7570821119999884, 
100                                         /* x=0.75*/  1.7719199999999875, 
101                                         /* x=0.76*/  1.7860523519999871, 
102                                         /* x=0.77*/  1.7994382719999862, 
103                                         /* x=0.78*/  1.8120376319999876, 
104                                         /* x=0.79*/  1.8238110719999838, 
105                                         /* x=0.80*/  1.8347199999999855, 
106                                         /* x=0.81*/  1.8447265919999851, 
107                                         /* x=0.82*/  1.8537937919999865, 
108                                         /* x=0.83*/  1.861885311999986, 
109                                         /* x=0.84*/  1.8689656319999832, 
110                                         /* x=0.85*/  1.8749999999999836, 
111                                         /* x=0.86*/  1.8799544319999804, 
112                                         /* x=0.87*/  1.8837957119999817, 
113                                         /* x=0.88*/  1.8864913919999804, 
114                                         /* x=0.89*/  1.8880097919999814, 
115                                         /* x=0.90*/  1.8883199999999807, 
116                                         /* x=0.91*/  1.8873918719999794, 
117                                         /* x=0.92*/  1.88519603199998, 
118                                         /* x=0.93*/  1.8817038719999788, 
119                                         /* x=0.94*/  1.8768875519999786, 
120                                         /* x=0.95*/  1.8707199999999764, 
121                                         /* x=0.96*/  1.8631749119999794, 
122                                         /* x=0.97*/  1.8542267519999784, 
123                                         /* x=0.98*/  1.8438507519999745, 
124                                         /* x=0.99*/  1.832022911999974, 
125                                         /* x=1.00*/  1.8187199999999768, 
126                                         /* x=1.01*/  1.8039195519999738, 
127                                         /* x=1.02*/  1.7875998719999755, 
128                                         /* x=1.03*/  1.7697400319999765, 
129                                         /* x=1.04*/  1.7503198719999729, 
130                                         /* x=1.05*/  1.7293199999999675, 
131                                         /* x=1.06*/  1.7067217919999687, 
132                                         /* x=1.07*/  1.6825073919999713, 
133                                         /* x=1.08*/  1.656659711999966, 
134                                         /* x=1.09*/  1.629162431999962, 
135                                         /* x=1.10*/  1.5999999999999686
136                         };
137                         double x=0.6;
138                         for (int i=0; i<answer1.length; i++) {
139                                 assertEquals("r1 different at x=" + x, PolyInterpolator.eval(x, r1), answer1[i],0.00001);
140                                 x+=0.01;
141                         }
142                 }
143                 {
144                         PolyInterpolator p2 = new PolyInterpolator(
145                                         new double[] {0.6, 1.1},
146                                         new double[] {0.6, 1.1},
147                                         new double[] {0.6, 1.1}
148                                         );
149                         double[] r2 = p2.interpolator(1.5, 1.6, 2, -3, 0, 0);
150                         double[] answer2 = new double[] {
151                                         /* x=0.60*/  1.5000000000000844, 
152                                         /* x=0.61*/  1.520007366720093, 
153                                         /* x=0.62*/  1.5400539750400783, 
154                                         /* x=0.63*/  1.5601657929600794, 
155                                         /* x=0.64*/  1.58035504128011, 
156                                         /* x=0.65*/  1.6006210000000962, 
157                                         /* x=0.66*/  1.620950814720107, 
158                                         /* x=0.67*/  1.641320303040109, 
159                                         /* x=0.68*/  1.6616947609601311, 
160                                         /* x=0.69*/  1.682029769280133, 
161                                         /* x=0.70*/  1.7022720000001055, 
162                                         /* x=0.71*/  1.7223600227201015, 
163                                         /* x=0.72*/  1.7422251110400993, 
164                                         /* x=0.73*/  1.7617920489601087, 
165                                         /* x=0.74*/  1.7809799372800814, 
166                                         /* x=0.75*/  1.7997030000000898, 
167                                         /* x=0.76*/  1.8178713907201, 
168                                         /* x=0.77*/  1.8353919990401195, 
169                                         /* x=0.78*/  1.85216925696011, 
170                                         /* x=0.79*/  1.8681059452800994, 
171                                         /* x=0.80*/  1.8831040000000847, 
172                                         /* x=0.81*/  1.897065318720074, 
173                                         /* x=0.82*/  1.9098925670401137, 
174                                         /* x=0.83*/  1.921489984960104, 
175                                         /* x=0.84*/  1.931764193280106, 
176                                         /* x=0.85*/  1.940625000000086, 
177                                         /* x=0.86*/  1.9479862067200955, 
178                                         /* x=0.87*/  1.9537664150401213, 
179                                         /* x=0.88*/  1.9578898329600989, 
180                                         /* x=0.89*/  1.9602870812801143, 
181                                         /* x=0.90*/  1.960896000000119, 
182                                         /* x=0.91*/  1.9596624547200818, 
183                                         /* x=0.92*/  1.9565411430400914, 
184                                         /* x=0.93*/  1.9514964009601528, 
185                                         /* x=0.94*/  1.9445030092801048, 
186                                         /* x=0.95*/  1.9355470000001276, 
187                                         /* x=0.96*/  1.92462646272012, 
188                                         /* x=0.97*/  1.9117523510400858, 
189                                         /* x=0.98*/  1.8969492889601298, 
190                                         /* x=0.99*/  1.8802563772801548, 
191                                         /* x=1.00*/  1.86172800000017, 
192                                         /* x=1.01*/  1.8414346307201441, 
193                                         /* x=1.02*/  1.8194636390400944, 
194                                         /* x=1.03*/  1.7959200969601596, 
195                                         /* x=1.04*/  1.7709275852801198, 
196                                         /* x=1.05*/  1.7446290000001738, 
197                                         /* x=1.06*/  1.7171873587201247, 
198                                         /* x=1.07*/  1.6887866070401714, 
199                                         /* x=1.08*/  1.659632424960222, 
200                                         /* x=1.09*/  1.6299530332800884, 
201                                         /* x=1.10*/  1.6000000000001648
202                         };
203
204                         double x=0.6;
205                         for (int i=0; i<answer2.length; i++) {
206                                 assertEquals("r2 different at x=" + x, PolyInterpolator.eval(x, r2), answer2[i],0.00001);
207                                 x+=0.01;
208                         }
209
210                 }
211         }
212 }