1   
2   
3   
4   
5   
6   
7   
8   
9   
10   
11  
12  package org.jastronomy.jsofa;
13  
14  
15  
16  
17  import static org.jastronomy.jsofa.JSOFA.*;
18  import static org.junit.Assert.*;
19  
20  import org.jastronomy.jsofa.JSOFA.CatalogCoords;
21  import org.jastronomy.jsofa.JSOFA.SphericalCoordinate;
22  import org.jastronomy.jsofa.JSOFAException;
23  import org.jastronomy.jsofa.JSOFAIllegalParameter;
24  import org.jastronomy.jsofa.JSOFAInternalError;
25  import org.junit.Before;
26  import org.junit.BeforeClass;
27  import org.junit.Test;
28  
29  import static java.lang.Math.*;
30  
31  public class JSOFATest {
32  
33      private static boolean verbose;
34  
35      @BeforeClass
36      public static void setUpBeforeClass() throws Exception {
37      }
38  
39      @Before
40      public void setUp() throws Exception {
41      }
42  
43      @Test
44      public void testversion() throws JSOFAIllegalParameter 
45      {
46          assertEquals("sofa release", "2021-05-12", SOFA_RELEASE);
47          assertEquals("sofa revision", "18", SOFA_REVISION);
48          assertEquals("lastleap second", jauCal2jd(2017,1,1), lastLeapSecondDate());        
49          assertEquals("last omitted leap second", jauCal2jd(2021,06,30), latestConfirmedNoLeapSecondChange);
50          assertEquals("Jsofa release",  System.getProperty("SOFAVERSION"), JSOFA_RELEASE); 
51          
52          
53      }
54  
55      
56  
57  
58  
59  
60  
61  
62  
63  
64  
65  
66  
67  
68  
69  
70  
71  
72  
73      
74  
75  
76  
77  
78  
79  
80  
81  
82  
83  
84  
85  
86  
87  
88  
89  
90      private void viv(int ival, int ivalok, String func, String test)
91     {
92         if (ival != ivalok) {
93            System.err.printf("%s failed: %s want %d got %d\n",
94                   func, test, ivalok, ival);
95         } else if (verbose) {
96            System.out.printf("%s passed: %s want %d got %d\n",
97                          func, test, ivalok, ival);
98         }
99         assertEquals(func+" "+test, ivalok, ival);
100        return;
101     }
102 
103     
104 
105 
106 
107 
108 
109 
110 
111 
112 
113 
114 
115 
116 
117 
118 
119 
120 
121     private void vvd(double val, double valok, double dval,
122             String func, String test)
123     {
124        double a, f;   
125 
126 
127        a = val - valok;
128        f = abs(valok / a);
129        String msg = String.format("%s: %s want %.20g got %.20g (1/%.3g)\n",
130                  func, test, valok, val, f); 
131        if (verbose && abs(a) <= dval) {
132           System.out.println("passed: " + msg);
133        }
134        assertTrue(msg, abs(a) <= dval);
135        return;
136     }
137 
138     @Test
139     public void t_a2af()
140     
141 
142 
143 
144 
145 
146 
147 
148 
149 
150 
151     {
152        int idmsf[] = new int[4];
153        char s;
154 
155 
156        s = jauA2af(4, 2.345, idmsf);
157 
158        viv(s, '+', "jauA2af", "s");
159 
160        viv(idmsf[0],  134, "jauA2af", "0");
161        viv(idmsf[1],   21, "jauA2af", "1");
162        viv(idmsf[2],   30, "jauA2af", "2");
163        viv(idmsf[3], 9706, "jauA2af", "3");
164 
165     }
166 
167     @Test
168     public void t_a2tf()
169     
170 
171 
172 
173 
174 
175 
176 
177 
178 
179 
180     {
181        int ihmsf[] = new int[4];
182        char s;
183 
184 
185        s = jauA2tf(4, -3.01234, ihmsf);
186 
187        viv((int)s, '-', "jauA2tf", "s");
188 
189        viv(ihmsf[0],   11, "jauA2tf", "0");
190        viv(ihmsf[1],   30, "jauA2tf", "1");
191        viv(ihmsf[2],   22, "jauA2tf", "2");
192        viv(ihmsf[3], 6484, "jauA2tf", "3");
193 
194     }
195 
196     @Test
197     public void t_anp()
198     
199 
200 
201 
202 
203 
204 
205 
206 
207 
208 
209     {
210        vvd(jauAnp(-0.1), 6.183185307179586477, 1e-12, "jauAnp", "");
211     }
212 
213     @Test
214     public void t_anpm()
215     
216 
217 
218 
219 
220 
221 
222 
223 
224 
225 
226     {
227        vvd(jauAnpm(-4.0), 2.283185307179586477, 1e-12, "jauAnpm", "");
228     }
229 
230     @Test
231     public void t_bi00()
232     
233 
234 
235 
236 
237 
238 
239 
240 
241 
242 
243     {
244 
245        FrameBias ret = jauBi00();
246 
247        vvd(ret.dpsibi, -0.2025309152835086613e-6, 1e-12,"jauBi00", "dpsibi");
248        vvd(ret.depsbi, -0.3306041454222147847e-7, 1e-12,"jauBi00", "depsbi");
249        vvd(ret.dra, -0.7078279744199225506e-7, 1e-12,"jauBi00", "dra");
250     }
251 
252     @Test
253     public void t_bp00()
254     
255 
256 
257 
258 
259 
260 
261 
262 
263 
264 
265     {
266        double rb[][] = new double[3][3], rp[][] = new double[3][3], rbp[][] = new double[3][3];
267 
268 
269        jauBp00(2400000.5, 50123.9999, rb, rp, rbp);
270 
271        vvd(rb[0][0], 0.9999999999999942498, 1e-12,"jauBp00", "rb11");
272        vvd(rb[0][1], -0.7078279744199196626e-7, 1e-16,"jauBp00", "rb12");
273        vvd(rb[0][2], 0.8056217146976134152e-7, 1e-16,"jauBp00", "rb13");
274        vvd(rb[1][0], 0.7078279477857337206e-7, 1e-16,"jauBp00", "rb21");
275        vvd(rb[1][1], 0.9999999999999969484, 1e-12,"jauBp00", "rb22");
276        vvd(rb[1][2], 0.3306041454222136517e-7, 1e-16,"jauBp00", "rb23");
277        vvd(rb[2][0], -0.8056217380986972157e-7, 1e-16,"jauBp00", "rb31");
278        vvd(rb[2][1], -0.3306040883980552500e-7, 1e-16,"jauBp00", "rb32");
279        vvd(rb[2][2], 0.9999999999999962084, 1e-12,"jauBp00", "rb33");
280 
281        vvd(rp[0][0], 0.9999995504864048241, 1e-12,"jauBp00", "rp11");
282        vvd(rp[0][1], 0.8696113836207084411e-3, 1e-14,"jauBp00", "rp12");
283        vvd(rp[0][2], 0.3778928813389333402e-3, 1e-14,"jauBp00", "rp13");
284        vvd(rp[1][0], -0.8696113818227265968e-3, 1e-14,"jauBp00", "rp21");
285        vvd(rp[1][1], 0.9999996218879365258, 1e-12,"jauBp00", "rp22");
286        vvd(rp[1][2], -0.1690679263009242066e-6, 1e-14,"jauBp00", "rp23");
287        vvd(rp[2][0], -0.3778928854764695214e-3, 1e-14,"jauBp00", "rp31");
288        vvd(rp[2][1], -0.1595521004195286491e-6, 1e-14,"jauBp00", "rp32");
289        vvd(rp[2][2], 0.9999999285984682756, 1e-12,"jauBp00", "rp33");
290 
291        vvd(rbp[0][0], 0.9999995505175087260, 1e-12,"jauBp00", "rbp11");
292        vvd(rbp[0][1], 0.8695405883617884705e-3, 1e-14,"jauBp00", "rbp12");
293        vvd(rbp[0][2], 0.3779734722239007105e-3, 1e-14,"jauBp00", "rbp13");
294        vvd(rbp[1][0], -0.8695405990410863719e-3, 1e-14,"jauBp00", "rbp21");
295        vvd(rbp[1][1], 0.9999996219494925900, 1e-12,"jauBp00", "rbp22");
296        vvd(rbp[1][2], -0.1360775820404982209e-6, 1e-14,"jauBp00", "rbp23");
297        vvd(rbp[2][0], -0.3779734476558184991e-3, 1e-14,"jauBp00", "rbp31");
298        vvd(rbp[2][1], -0.1925857585832024058e-6, 1e-14,"jauBp00", "rbp32");
299        vvd(rbp[2][2], 0.9999999285680153377, 1e-12,"jauBp00", "rbp33");
300     }
301 
302     @Test
303     public void t_bp06()
304     
305 
306 
307 
308 
309 
310 
311 
312 
313 
314 
315     {
316        double rb[][] = new double[3][3], rp[][] = new double[3][3], rbp[][] = new double[3][3];
317 
318 
319        jauBp06(2400000.5, 50123.9999, rb, rp, rbp);
320 
321        vvd(rb[0][0], 0.9999999999999942497, 1e-12,"jauBp06", "rb11");
322        vvd(rb[0][1], -0.7078368960971557145e-7, 1e-14,"jauBp06", "rb12");
323        vvd(rb[0][2], 0.8056213977613185606e-7, 1e-14,"jauBp06", "rb13");
324        vvd(rb[1][0], 0.7078368694637674333e-7, 1e-14,"jauBp06", "rb21");
325        vvd(rb[1][1], 0.9999999999999969484, 1e-12,"jauBp06", "rb22");
326        vvd(rb[1][2], 0.3305943742989134124e-7, 1e-14,"jauBp06", "rb23");
327        vvd(rb[2][0], -0.8056214211620056792e-7, 1e-14,"jauBp06", "rb31");
328        vvd(rb[2][1], -0.3305943172740586950e-7, 1e-14,"jauBp06", "rb32");
329        vvd(rb[2][2], 0.9999999999999962084, 1e-12,"jauBp06", "rb33");
330 
331        vvd(rp[0][0], 0.9999995504864960278, 1e-12,"jauBp06", "rp11");
332        vvd(rp[0][1], 0.8696112578855404832e-3, 1e-14,"jauBp06", "rp12");
333        vvd(rp[0][2], 0.3778929293341390127e-3, 1e-14,"jauBp06", "rp13");
334        vvd(rp[1][0], -0.8696112560510186244e-3, 1e-14,"jauBp06", "rp21");
335        vvd(rp[1][1], 0.9999996218880458820, 1e-12,"jauBp06", "rp22");
336        vvd(rp[1][2], -0.1691646168941896285e-6, 1e-14,"jauBp06", "rp23");
337        vvd(rp[2][0], -0.3778929335557603418e-3, 1e-14,"jauBp06", "rp31");
338        vvd(rp[2][1], -0.1594554040786495076e-6, 1e-14,"jauBp06", "rp32");
339        vvd(rp[2][2], 0.9999999285984501222, 1e-12,"jauBp06", "rp33");
340 
341        vvd(rbp[0][0], 0.9999995505176007047, 1e-12,"jauBp06", "rbp11");
342        vvd(rbp[0][1], 0.8695404617348208406e-3, 1e-14,"jauBp06", "rbp12");
343        vvd(rbp[0][2], 0.3779735201865589104e-3, 1e-14,"jauBp06", "rbp13");
344        vvd(rbp[1][0], -0.8695404723772031414e-3, 1e-14,"jauBp06", "rbp21");
345        vvd(rbp[1][1], 0.9999996219496027161, 1e-12,"jauBp06", "rbp22");
346        vvd(rbp[1][2], -0.1361752497080270143e-6, 1e-14,"jauBp06", "rbp23");
347        vvd(rbp[2][0], -0.3779734957034089490e-3, 1e-14,"jauBp06", "rbp31");
348        vvd(rbp[2][1], -0.1924880847894457113e-6, 1e-14,"jauBp06", "rbp32");
349        vvd(rbp[2][2], 0.9999999285679971958, 1e-12,"jauBp06", "rbp33");
350     }
351 
352     @Test
353     public void t_bpn2xy()
354     
355 
356 
357 
358 
359 
360 
361 
362 
363 
364 
365     {
366        double rbpn[][] = new double[3][3];
367 
368 
369        rbpn[0][0] =  9.999962358680738e-1;
370        rbpn[0][1] = -2.516417057665452e-3;
371        rbpn[0][2] = -1.093569785342370e-3;
372 
373        rbpn[1][0] =  2.516462370370876e-3;
374        rbpn[1][1] =  9.999968329010883e-1;
375        rbpn[1][2] =  4.006159587358310e-5;
376 
377        rbpn[2][0] =  1.093465510215479e-3;
378        rbpn[2][1] = -4.281337229063151e-5;
379        rbpn[2][2] =  9.999994012499173e-1;
380 
381        CelestialIntermediatePole ret = jauBpn2xy(rbpn);
382 
383        vvd(ret.x,  1.093465510215479e-3, 1e-12, "jauBpn2xy", "x");
384        vvd(ret.y, -4.281337229063151e-5, 1e-12, "jauBpn2xy", "y");
385 
386     }
387 
388     @Test
389     public void t_c2i00a()
390     
391 
392 
393 
394 
395 
396 
397 
398 
399 
400 
401     {
402        double rc2i[][];
403 
404 
405        rc2i = jauC2i00a(2400000.5, 53736.0);
406 
407        vvd(rc2i[0][0], 0.9999998323037165557, 1e-12,"jauC2i00a", "11");
408        vvd(rc2i[0][1], 0.5581526348992140183e-9, 1e-12,"jauC2i00a", "12");
409        vvd(rc2i[0][2], -0.5791308477073443415e-3, 1e-12,"jauC2i00a", "13");
410 
411        vvd(rc2i[1][0], -0.2384266227870752452e-7, 1e-12,"jauC2i00a", "21");
412        vvd(rc2i[1][1], 0.9999999991917405258, 1e-12,"jauC2i00a", "22");
413        vvd(rc2i[1][2], -0.4020594955028209745e-4, 1e-12,"jauC2i00a", "23");
414 
415        vvd(rc2i[2][0], 0.5791308472168152904e-3, 1e-12,"jauC2i00a", "31");
416        vvd(rc2i[2][1], 0.4020595661591500259e-4, 1e-12,"jauC2i00a", "32");
417        vvd(rc2i[2][2], 0.9999998314954572304, 1e-12,"jauC2i00a", "33");
418 
419     }
420 
421     @Test
422     public void t_c2i00b()
423     
424 
425 
426 
427 
428 
429 
430 
431 
432 
433 
434     {
435        double rc2i[][] = new double[3][3];
436 
437 
438        rc2i = jauC2i00b(2400000.5, 53736.0 );
439 
440        vvd(rc2i[0][0], 0.9999998323040954356, 1e-12,"jauC2i00b", "11");
441        vvd(rc2i[0][1], 0.5581526349131823372e-9, 1e-12,"jauC2i00b", "12");
442        vvd(rc2i[0][2], -0.5791301934855394005e-3, 1e-12,"jauC2i00b", "13");
443 
444        vvd(rc2i[1][0], -0.2384239285499175543e-7, 1e-12,"jauC2i00b", "21");
445        vvd(rc2i[1][1], 0.9999999991917574043, 1e-12,"jauC2i00b", "22");
446        vvd(rc2i[1][2], -0.4020552974819030066e-4, 1e-12,"jauC2i00b", "23");
447 
448        vvd(rc2i[2][0], 0.5791301929950208873e-3, 1e-12,"jauC2i00b", "31");
449        vvd(rc2i[2][1], 0.4020553681373720832e-4, 1e-12,"jauC2i00b", "32");
450        vvd(rc2i[2][2], 0.9999998314958529887, 1e-12,"jauC2i00b", "33");
451 
452     }
453 
454     @Test
455     public void t_c2i06a()
456     
457 
458 
459 
460 
461 
462 
463 
464 
465 
466 
467     {
468        double rc2i[][] = new double[3][3];
469 
470 
471        rc2i = jauC2i06a(2400000.5, 53736.0);
472 
473        vvd(rc2i[0][0], 0.9999998323037159379, 1e-12,"jauC2i06a", "11");
474        vvd(rc2i[0][1], 0.5581121329587613787e-9, 1e-12,"jauC2i06a", "12");
475        vvd(rc2i[0][2], -0.5791308487740529749e-3, 1e-12,"jauC2i06a", "13");
476 
477        vvd(rc2i[1][0], -0.2384253169452306581e-7, 1e-12,"jauC2i06a", "21");
478        vvd(rc2i[1][1], 0.9999999991917467827, 1e-12,"jauC2i06a", "22");
479        vvd(rc2i[1][2], -0.4020579392895682558e-4, 1e-12,"jauC2i06a", "23");
480 
481        vvd(rc2i[2][0], 0.5791308482835292617e-3, 1e-12,"jauC2i06a", "31");
482        vvd(rc2i[2][1], 0.4020580099454020310e-4, 1e-12,"jauC2i06a", "32");
483        vvd(rc2i[2][2], 0.9999998314954628695, 1e-12,"jauC2i06a", "33");
484 
485     }
486 
487     @Test
488     public void t_c2ibpn()
489     
490 
491 
492 
493 
494 
495 
496 
497 
498 
499 
500     {
501        double rbpn[][] = new double[3][3], rc2i[][] = new double[3][3];
502 
503 
504        rbpn[0][0] =  9.999962358680738e-1;
505        rbpn[0][1] = -2.516417057665452e-3;
506        rbpn[0][2] = -1.093569785342370e-3;
507 
508        rbpn[1][0] =  2.516462370370876e-3;
509        rbpn[1][1] =  9.999968329010883e-1;
510        rbpn[1][2] =  4.006159587358310e-5;
511 
512        rbpn[2][0] =  1.093465510215479e-3;
513        rbpn[2][1] = -4.281337229063151e-5;
514        rbpn[2][2] =  9.999994012499173e-1;
515 
516        rc2i = jauC2ibpn(2400000.5, 50123.9999, rbpn );
517 
518        vvd(rc2i[0][0], 0.9999994021664089977, 1e-12,"jauC2ibpn", "11");
519        vvd(rc2i[0][1], -0.3869195948017503664e-8, 1e-12,"jauC2ibpn", "12");
520        vvd(rc2i[0][2], -0.1093465511383285076e-2, 1e-12,"jauC2ibpn", "13");
521 
522        vvd(rc2i[1][0], 0.5068413965715446111e-7, 1e-12,"jauC2ibpn", "21");
523        vvd(rc2i[1][1], 0.9999999990835075686, 1e-12,"jauC2ibpn", "22");
524        vvd(rc2i[1][2], 0.4281334246452708915e-4, 1e-12,"jauC2ibpn", "23");
525 
526        vvd(rc2i[2][0], 0.1093465510215479000e-2, 1e-12,"jauC2ibpn", "31");
527        vvd(rc2i[2][1], -0.4281337229063151000e-4, 1e-12,"jauC2ibpn", "32");
528        vvd(rc2i[2][2], 0.9999994012499173103, 1e-12,"jauC2ibpn", "33");
529 
530     }
531 
532     @Test
533     public void t_c2ixy()
534     
535 
536 
537 
538 
539 
540 
541 
542 
543 
544 
545     {
546        double x, y, rc2i[][] = new double[3][3];
547 
548 
549        x = 0.5791308486706011000e-3;
550        y = 0.4020579816732961219e-4;
551 
552        rc2i = jauC2ixy(2400000.5, 53736, x, y);
553 
554        vvd(rc2i[0][0], 0.9999998323037157138, 1e-12,"jauC2ixy", "11");
555        vvd(rc2i[0][1], 0.5581526349032241205e-9, 1e-12,"jauC2ixy", "12");
556        vvd(rc2i[0][2], -0.5791308491611263745e-3, 1e-12,"jauC2ixy", "13");
557 
558        vvd(rc2i[1][0], -0.2384257057469842953e-7, 1e-12,"jauC2ixy", "21");
559        vvd(rc2i[1][1], 0.9999999991917468964, 1e-12,"jauC2ixy", "22");
560        vvd(rc2i[1][2], -0.4020579110172324363e-4, 1e-12,"jauC2ixy", "23");
561 
562        vvd(rc2i[2][0], 0.5791308486706011000e-3, 1e-12,"jauC2ixy", "31");
563        vvd(rc2i[2][1], 0.4020579816732961219e-4, 1e-12,"jauC2ixy", "32");
564        vvd(rc2i[2][2], 0.9999998314954627590, 1e-12,"jauC2ixy", "33");
565 
566     }
567 
568     @Test
569     public void t_c2ixys()
570     
571 
572 
573 
574 
575 
576 
577 
578 
579 
580 
581     {
582        double x, y, s, rc2i[][] = new double[3][3];
583 
584 
585        x =  0.5791308486706011000e-3;
586        y =  0.4020579816732961219e-4;
587        s = -0.1220040848472271978e-7;
588 
589        rc2i = jauC2ixys(x, y, s);
590 
591        vvd(rc2i[0][0], 0.9999998323037157138, 1e-12,"jauC2ixys", "11");
592        vvd(rc2i[0][1], 0.5581984869168499149e-9, 1e-12,"jauC2ixys", "12");
593        vvd(rc2i[0][2], -0.5791308491611282180e-3, 1e-12,"jauC2ixys", "13");
594 
595        vvd(rc2i[1][0], -0.2384261642670440317e-7, 1e-12,"jauC2ixys", "21");
596        vvd(rc2i[1][1], 0.9999999991917468964, 1e-12,"jauC2ixys", "22");
597        vvd(rc2i[1][2], -0.4020579110169668931e-4, 1e-12,"jauC2ixys", "23");
598 
599        vvd(rc2i[2][0], 0.5791308486706011000e-3, 1e-12,"jauC2ixys", "31");
600        vvd(rc2i[2][1], 0.4020579816732961219e-4, 1e-12,"jauC2ixys", "32");
601        vvd(rc2i[2][2], 0.9999998314954627590, 1e-12,"jauC2ixys", "33");
602 
603     }
604 
605     @Test
606     public void t_c2s()
607     
608 
609 
610 
611 
612 
613 
614 
615 
616 
617 
618     {
619        double p[] = new double[3];
620 
621 
622        p[0] = 100.0;
623        p[1] = -50.0;
624        p[2] =  25.0;
625 
626        SphericalCoordinate ret = jauC2s(p);
627 
628        vvd(ret.alpha, -0.4636476090008061162, 1e-14, "jauC2s", "theta");
629        vvd(ret.delta, 0.2199879773954594463, 1e-14, "jauC2s", "phi");
630 
631     }
632 
633     @Test
634     public void t_c2t00a()
635     
636 
637 
638 
639 
640 
641 
642 
643 
644 
645 
646     {
647        double tta, ttb, uta, utb, xp, yp, rc2t[][] = new double[3][3];
648 
649 
650        tta = 2400000.5;
651        uta = 2400000.5;
652        ttb = 53736.0;
653        utb = 53736.0;
654        xp = 2.55060238e-7;
655        yp = 1.860359247e-6;
656 
657        rc2t = jauC2t00a(tta, ttb, uta, utb, xp, yp);
658 
659        vvd(rc2t[0][0], -0.1810332128307182668, 1e-12,"jauC2t00a", "11");
660        vvd(rc2t[0][1], 0.9834769806938457836, 1e-12,"jauC2t00a", "12");
661        vvd(rc2t[0][2], 0.6555535638688341725e-4, 1e-12,"jauC2t00a", "13");
662 
663        vvd(rc2t[1][0], -0.9834768134135984552, 1e-12,"jauC2t00a", "21");
664        vvd(rc2t[1][1], -0.1810332203649520727, 1e-12,"jauC2t00a", "22");
665        vvd(rc2t[1][2], 0.5749801116141056317e-3, 1e-12,"jauC2t00a", "23");
666 
667        vvd(rc2t[2][0], 0.5773474014081406921e-3, 1e-12,"jauC2t00a", "31");
668        vvd(rc2t[2][1], 0.3961832391770163647e-4, 1e-12,"jauC2t00a", "32");
669        vvd(rc2t[2][2], 0.9999998325501692289, 1e-12,"jauC2t00a", "33");
670 
671     }
672 
673     @Test
674     public void t_c2t00b()
675     
676 
677 
678 
679 
680 
681 
682 
683 
684 
685 
686     {
687        double tta, ttb, uta, utb, xp, yp, rc2t[][] = new double[3][3];
688 
689 
690        tta = 2400000.5;
691        uta = 2400000.5;
692        ttb = 53736.0;
693        utb = 53736.0;
694        xp = 2.55060238e-7;
695        yp = 1.860359247e-6;
696 
697        rc2t = jauC2t00b(tta, ttb, uta, utb, xp, yp);
698 
699        vvd(rc2t[0][0], -0.1810332128439678965, 1e-12,"jauC2t00b", "11");
700        vvd(rc2t[0][1], 0.9834769806913872359, 1e-12,"jauC2t00b", "12");
701        vvd(rc2t[0][2], 0.6555565082458415611e-4, 1e-12,"jauC2t00b", "13");
702 
703        vvd(rc2t[1][0], -0.9834768134115435923, 1e-12,"jauC2t00b", "21");
704        vvd(rc2t[1][1], -0.1810332203784001946, 1e-12,"jauC2t00b", "22");
705        vvd(rc2t[1][2], 0.5749793922030017230e-3, 1e-12,"jauC2t00b", "23");
706 
707        vvd(rc2t[2][0], 0.5773467471863534901e-3, 1e-12,"jauC2t00b", "31");
708        vvd(rc2t[2][1], 0.3961790411549945020e-4, 1e-12,"jauC2t00b", "32");
709        vvd(rc2t[2][2], 0.9999998325505635738, 1e-12,"jauC2t00b", "33");
710 
711     }
712 
713     @Test
714     public void t_c2t06a()
715     
716 
717 
718 
719 
720 
721 
722 
723 
724 
725 
726     {
727        double tta, ttb, uta, utb, xp, yp, rc2t[][] = new double[3][3];
728 
729 
730        tta = 2400000.5;
731        uta = 2400000.5;
732        ttb = 53736.0;
733        utb = 53736.0;
734        xp = 2.55060238e-7;
735        yp = 1.860359247e-6;
736 
737        rc2t = jauC2t06a(tta, ttb, uta, utb, xp, yp);
738 
739        vvd(rc2t[0][0], -0.1810332128305897282, 1e-12,"jauC2t06a", "11");
740        vvd(rc2t[0][1], 0.9834769806938592296, 1e-12,"jauC2t06a", "12");
741        vvd(rc2t[0][2], 0.6555550962998436505e-4, 1e-12,"jauC2t06a", "13");
742 
743        vvd(rc2t[1][0], -0.9834768134136214897, 1e-12,"jauC2t06a", "21");
744        vvd(rc2t[1][1], -0.1810332203649130832, 1e-12,"jauC2t06a", "22");
745        vvd(rc2t[1][2], 0.5749800844905594110e-3, 1e-12,"jauC2t06a", "23");
746 
747        vvd(rc2t[2][0], 0.5773474024748545878e-3, 1e-12,"jauC2t06a", "31");
748        vvd(rc2t[2][1], 0.3961816829632690581e-4, 1e-12,"jauC2t06a", "32");
749        vvd(rc2t[2][2], 0.9999998325501747785, 1e-12,"jauC2t06a", "33");
750 
751     }
752 
753     @Test
754     public void t_c2tcio()
755     
756 
757 
758 
759 
760 
761 
762 
763 
764 
765 
766     {
767        double rc2i[][] = new double[3][3], era, rpom[][] = new double[3][3], rc2t[][] = new double[3][3];
768 
769 
770        rc2i[0][0] =  0.9999998323037164738;
771        rc2i[0][1] =  0.5581526271714303683e-9;
772        rc2i[0][2] = -0.5791308477073443903e-3;
773 
774        rc2i[1][0] = -0.2384266227524722273e-7;
775        rc2i[1][1] =  0.9999999991917404296;
776        rc2i[1][2] = -0.4020594955030704125e-4;
777 
778        rc2i[2][0] =  0.5791308472168153320e-3;
779        rc2i[2][1] =  0.4020595661593994396e-4;
780        rc2i[2][2] =  0.9999998314954572365;
781 
782        era = 1.75283325530307;
783 
784        rpom[0][0] =  0.9999999999999674705;
785        rpom[0][1] = -0.1367174580728847031e-10;
786        rpom[0][2] =  0.2550602379999972723e-6;
787 
788        rpom[1][0] =  0.1414624947957029721e-10;
789        rpom[1][1] =  0.9999999999982694954;
790        rpom[1][2] = -0.1860359246998866338e-5;
791 
792        rpom[2][0] = -0.2550602379741215275e-6;
793        rpom[2][1] =  0.1860359247002413923e-5;
794        rpom[2][2] =  0.9999999999982369658;
795 
796 
797        rc2t = jauC2tcio(rc2i, era, rpom);
798 
799        vvd(rc2t[0][0], -0.1810332128307110439, 1e-12,"jauC2tcio", "11");
800        vvd(rc2t[0][1], 0.9834769806938470149, 1e-12,"jauC2tcio", "12");
801        vvd(rc2t[0][2], 0.6555535638685466874e-4, 1e-12,"jauC2tcio", "13");
802 
803        vvd(rc2t[1][0], -0.9834768134135996657, 1e-12,"jauC2tcio", "21");
804        vvd(rc2t[1][1], -0.1810332203649448367, 1e-12,"jauC2tcio", "22");
805        vvd(rc2t[1][2], 0.5749801116141106528e-3, 1e-12,"jauC2tcio", "23");
806 
807        vvd(rc2t[2][0], 0.5773474014081407076e-3, 1e-12,"jauC2tcio", "31");
808        vvd(rc2t[2][1], 0.3961832391772658944e-4, 1e-12,"jauC2tcio", "32");
809        vvd(rc2t[2][2], 0.9999998325501691969, 1e-12,"jauC2tcio", "33");
810 
811     }
812 
813     @Test
814     public void t_c2teqx()
815     
816 
817 
818 
819 
820 
821 
822 
823 
824 
825 
826     {
827        double rbpn[][] = new double[3][3], gst, rpom[][] = new double[3][3], rc2t[][] = new double[3][3];
828 
829 
830        rbpn[0][0] =  0.9999989440476103608;
831        rbpn[0][1] = -0.1332881761240011518e-2;
832        rbpn[0][2] = -0.5790767434730085097e-3;
833 
834        rbpn[1][0] =  0.1332858254308954453e-2;
835        rbpn[1][1] =  0.9999991109044505944;
836        rbpn[1][2] = -0.4097782710401555759e-4;
837 
838        rbpn[2][0] =  0.5791308472168153320e-3;
839        rbpn[2][1] =  0.4020595661593994396e-4;
840        rbpn[2][2] =  0.9999998314954572365;
841 
842        gst = 1.754166138040730516;
843 
844        rpom[0][0] =  0.9999999999999674705;
845        rpom[0][1] = -0.1367174580728847031e-10;
846        rpom[0][2] =  0.2550602379999972723e-6;
847 
848        rpom[1][0] =  0.1414624947957029721e-10;
849        rpom[1][1] =  0.9999999999982694954;
850        rpom[1][2] = -0.1860359246998866338e-5;
851 
852        rpom[2][0] = -0.2550602379741215275e-6;
853        rpom[2][1] =  0.1860359247002413923e-5;
854        rpom[2][2] =  0.9999999999982369658;
855 
856        rc2t = jauC2teqx(rbpn, gst, rpom);
857 
858        vvd(rc2t[0][0], -0.1810332128528685730, 1e-12,"jauC2teqx", "11");
859        vvd(rc2t[0][1], 0.9834769806897685071, 1e-12,"jauC2teqx", "12");
860        vvd(rc2t[0][2], 0.6555535639982634449e-4, 1e-12,"jauC2teqx", "13");
861 
862        vvd(rc2t[1][0], -0.9834768134095211257, 1e-12,"jauC2teqx", "21");
863        vvd(rc2t[1][1], -0.1810332203871023800, 1e-12,"jauC2teqx", "22");
864        vvd(rc2t[1][2], 0.5749801116126438962e-3, 1e-12,"jauC2teqx", "23");
865 
866        vvd(rc2t[2][0], 0.5773474014081539467e-3, 1e-12,"jauC2teqx", "31");
867        vvd(rc2t[2][1], 0.3961832391768640871e-4, 1e-12,"jauC2teqx", "32");
868        vvd(rc2t[2][2], 0.9999998325501691969, 1e-12,"jauC2teqx", "33");
869 
870     }
871 
872     @Test
873     public void t_c2tpe()
874     
875 
876 
877 
878 
879 
880 
881 
882 
883 
884 
885     {
886        double tta, ttb, uta, utb, dpsi, deps, xp, yp, rc2t[][] = new double[3][3];
887 
888 
889        tta = 2400000.5;
890        uta = 2400000.5;
891        ttb = 53736.0;
892        utb = 53736.0;
893        deps =  0.4090789763356509900;
894        dpsi = -0.9630909107115582393e-5;
895        xp = 2.55060238e-7;
896        yp = 1.860359247e-6;
897 
898        rc2t = jauC2tpe(tta, ttb, uta, utb, dpsi, deps, xp, yp);
899 
900        vvd(rc2t[0][0], -0.1813677995763029394, 1e-12,"jauC2tpe", "11");
901        vvd(rc2t[0][1], 0.9023482206891683275, 1e-12,"jauC2tpe", "12");
902        vvd(rc2t[0][2], -0.3909902938641085751, 1e-12,"jauC2tpe", "13");
903 
904        vvd(rc2t[1][0], -0.9834147641476804807, 1e-12,"jauC2tpe", "21");
905        vvd(rc2t[1][1], -0.1659883635434995121, 1e-12,"jauC2tpe", "22");
906        vvd(rc2t[1][2], 0.7309763898042819705e-1, 1e-12,"jauC2tpe", "23");
907 
908        vvd(rc2t[2][0], 0.1059685430673215247e-2, 1e-12,"jauC2tpe", "31");
909        vvd(rc2t[2][1], 0.3977631855605078674, 1e-12,"jauC2tpe", "32");
910        vvd(rc2t[2][2], 0.9174875068792735362, 1e-12,"jauC2tpe", "33");
911 
912     }
913 
914     @Test
915     public void t_c2txy()
916     
917 
918 
919 
920 
921 
922 
923 
924 
925 
926 
927     {
928        double tta, ttb, uta, utb, x, y, xp, yp, rc2t[][] = new double[3][3];
929 
930 
931        tta = 2400000.5;
932        uta = 2400000.5;
933        ttb = 53736.0;
934        utb = 53736.0;
935        x = 0.5791308486706011000e-3;
936        y = 0.4020579816732961219e-4;
937        xp = 2.55060238e-7;
938        yp = 1.860359247e-6;
939 
940        rc2t = jauC2txy(tta, ttb, uta, utb, x, y, xp, yp);
941 
942        vvd(rc2t[0][0], -0.1810332128306279253, 1e-12,"jauC2txy", "11");
943        vvd(rc2t[0][1], 0.9834769806938520084, 1e-12,"jauC2txy", "12");
944        vvd(rc2t[0][2], 0.6555551248057665829e-4, 1e-12,"jauC2txy", "13");
945 
946        vvd(rc2t[1][0], -0.9834768134136142314, 1e-12,"jauC2txy", "21");
947        vvd(rc2t[1][1], -0.1810332203649529312, 1e-12,"jauC2txy", "22");
948        vvd(rc2t[1][2], 0.5749800843594139912e-3, 1e-12,"jauC2txy", "23");
949 
950        vvd(rc2t[2][0], 0.5773474028619264494e-3, 1e-12,"jauC2txy", "31");
951        vvd(rc2t[2][1], 0.3961816546911624260e-4, 1e-12,"jauC2txy", "32");
952        vvd(rc2t[2][2], 0.9999998325501746670, 1e-12,"jauC2txy", "33");
953 
954     }
955 
956     @Test
957     public void t_cal2jd()
958     
959 
960 
961 
962 
963 
964 
965 
966 
967 
968 
969     {
970 
971 
972        try {
973         JulianDate jd = jauCal2jd(2003, 06, 01);
974 
975            vvd(jd.djm0, 2400000.5, 0.0, "jauCal2jd", "djm0");
976            vvd(jd.djm1,    52791.0, 0.0, "jauCal2jd", "djm");
977     } catch (JSOFAIllegalParameter e) {
978         fail("jauCal2jd should not throw execption");
979     }
980 
981      
982 
983     }
984 
985     @Test
986     public void t_cp()
987     
988 
989 
990 
991 
992 
993 
994 
995 
996 
997 
998     {
999        double p[] = new double[3], c[] = new double[3];
1000 
1001 
1002        p[0] =  0.3;
1003        p[1] =  1.2;
1004        p[2] = -2.5;
1005 
1006        jauCp(p, c);
1007 
1008        vvd(c[0],  0.3, 0.0, "jauCp", "1");
1009        vvd(c[1],  1.2, 0.0, "jauCp", "2");
1010        vvd(c[2], -2.5, 0.0, "jauCp", "3");
1011     }
1012 
1013     @Test
1014     public void t_cpv()
1015     
1016 
1017 
1018 
1019 
1020 
1021 
1022 
1023 
1024 
1025 
1026     {
1027        double pv[][] = new double[2][3], c[][] = new double[2][3];
1028 
1029 
1030        pv[0][0] =  0.3;
1031        pv[0][1] =  1.2;
1032        pv[0][2] = -2.5;
1033 
1034        pv[1][0] = -0.5;
1035        pv[1][1] =  3.1;
1036        pv[1][2] =  0.9;
1037 
1038        jauCpv(pv, c);
1039 
1040        vvd(c[0][0],  0.3, 0.0, "jauCpv", "p1");
1041        vvd(c[0][1],  1.2, 0.0, "jauCpv", "p2");
1042        vvd(c[0][2], -2.5, 0.0, "jauCpv", "p3");
1043 
1044        vvd(c[1][0], -0.5, 0.0, "jauCpv", "v1");
1045        vvd(c[1][1],  3.1, 0.0, "jauCpv", "v2");
1046        vvd(c[1][2],  0.9, 0.0, "jauCpv", "v3");
1047 
1048     }
1049 
1050     @Test
1051     public void t_cr()
1052     
1053 
1054 
1055 
1056 
1057 
1058 
1059 
1060 
1061 
1062 
1063     {
1064        double r[][] = new double[3][3], c[][] = new double[3][3];
1065 
1066 
1067        r[0][0] = 2.0;
1068        r[0][1] = 3.0;
1069        r[0][2] = 2.0;
1070 
1071        r[1][0] = 3.0;
1072        r[1][1] = 2.0;
1073        r[1][2] = 3.0;
1074 
1075        r[2][0] = 3.0;
1076        r[2][1] = 4.0;
1077        r[2][2] = 5.0;
1078 
1079        jauCr(r, c);
1080 
1081        vvd(c[0][0], 2.0, 0.0, "jauCr", "11");
1082        vvd(c[0][1], 3.0, 0.0, "jauCr", "12");
1083        vvd(c[0][2], 2.0, 0.0, "jauCr", "13");
1084 
1085        vvd(c[1][0], 3.0, 0.0, "jauCr", "21");
1086        vvd(c[1][1], 2.0, 0.0, "jauCr", "22");
1087        vvd(c[1][2], 3.0, 0.0, "jauCr", "23");
1088 
1089        vvd(c[2][0], 3.0, 0.0, "jauCr", "31");
1090        vvd(c[2][1], 4.0, 0.0, "jauCr", "32");
1091        vvd(c[2][2], 5.0, 0.0, "jauCr", "33");
1092     }
1093 
1094     @Test
1095     public void t_d2tf()
1096     
1097 
1098 
1099 
1100 
1101 
1102 
1103 
1104 
1105 
1106 
1107     {
1108        int ihmsf[] = new int[4];
1109        char s;
1110 
1111 
1112        s = jauD2tf(4, -0.987654321, ihmsf);
1113 
1114        viv((int)s, '-', "jauD2tf", "s");
1115 
1116        viv(ihmsf[0], 23, "jauD2tf", "0");
1117        viv(ihmsf[1], 42, "jauD2tf", "1");
1118        viv(ihmsf[2], 13, "jauD2tf", "2");
1119        viv(ihmsf[3], 3333, "jauD2tf", "3");
1120 
1121     }
1122 
1123     @Test
1124     public void t_dat()
1125     
1126 
1127 
1128 
1129 
1130 
1131 
1132 
1133 
1134 
1135 
1136     {
1137        double deltat;
1138       int nls = leapSeconds.length;
1139       viv(nls, 42, "jauDat", "number of leap second entries");
1140       viv(leapSeconds[nls-1].iyear, 2017, "jauDat", "year of last leap second");
1141       viv(leapSeconds[nls-1].month, 1, "jauDat", "month of last leap second");
1142        try {
1143            deltat = jauDat(2003, 6, 1, 0.0);
1144 
1145            vvd(deltat, 32.0, 0.0, "jauDat", "d1");
1146        } catch (Exception e) {
1147            fail("jauDat j1");
1148        }
1149 
1150        try {
1151            deltat = jauDat(2008, 1, 17, 0.0);
1152 
1153            vvd(deltat, 33.0, 0.0, "jauDat", "d2");
1154        } catch (Exception e) {
1155            fail("jauDat j2");
1156        }
1157 
1158        try {
1159            deltat = jauDat(2017, 9, 1, 0.0 );
1160            vvd(deltat, 37.0, 0.0, "jauDat", "d3");
1161 
1162        } catch (Exception e) {
1163            fail("jauDat j3");
1164        }
1165        
1166     }
1167 
1168     @Test
1169     public void t_dtdb()
1170     
1171 
1172 
1173 
1174 
1175 
1176 
1177 
1178 
1179 
1180 
1181     {
1182        double dtdb;
1183 
1184 
1185        dtdb = jauDtdb(2448939.5, 0.123, 0.76543, 5.0123, 5525.242, 3190.0);
1186 
1187        vvd(dtdb, -0.1280368005936998991e-2, 1e-15, "jauDtdb", "");
1188 
1189     }
1190 
1191     @Test
1192     public void t_ee00()
1193     
1194 
1195 
1196 
1197 
1198 
1199 
1200 
1201 
1202 
1203 
1204     {
1205        double epsa, dpsi, ee;
1206 
1207 
1208        epsa =  0.4090789763356509900;
1209        dpsi = -0.9630909107115582393e-5;
1210 
1211        ee = jauEe00(2400000.5, 53736.0, epsa, dpsi);
1212 
1213        vvd(ee, -0.8834193235367965479e-5, 1e-18, "jauEe00", "");
1214 
1215     }
1216 
1217     @Test
1218     public void t_ee00a()
1219     
1220 
1221 
1222 
1223 
1224 
1225 
1226 
1227 
1228 
1229 
1230     {
1231        double ee;
1232 
1233 
1234        ee = jauEe00a(2400000.5, 53736.0);
1235 
1236        vvd(ee, -0.8834192459222588227e-5, 1e-18, "jauEe00a", "");
1237 
1238     }
1239 
1240     @Test
1241     public void t_ee00b()
1242     
1243 
1244 
1245 
1246 
1247 
1248 
1249 
1250 
1251 
1252 
1253     {
1254        double ee;
1255 
1256 
1257        ee = jauEe00b(2400000.5, 53736.0);
1258 
1259        vvd(ee, -0.8835700060003032831e-5, 1e-18, "jauEe00b", "");
1260 
1261     }
1262 
1263     @Test
1264     public void t_ee06a()
1265     
1266 
1267 
1268 
1269 
1270 
1271 
1272 
1273 
1274 
1275 
1276     {
1277        double ee;
1278 
1279 
1280        ee = jauEe06a(2400000.5, 53736.0);
1281 
1282        vvd(ee, -0.8834195072043790156e-5, 1e-15, "jauEe06a", "");
1283     }
1284 
1285     @Test
1286     public void t_eect00()
1287     
1288 
1289 
1290 
1291 
1292 
1293 
1294 
1295 
1296 
1297 
1298     {
1299        double eect;
1300 
1301 
1302        eect = jauEect00(2400000.5, 53736.0);
1303 
1304        vvd(eect, 0.2046085004885125264e-8, 1e-20, "jauEect00", "");
1305 
1306     }
1307 
1308     @Test
1309     public void t_eform()
1310     
1311 
1312 
1313 
1314 
1315 
1316 
1317 
1318 
1319 
1320 
1321     {
1322         ReferenceEllipsoid ef;
1323 
1324         try {
1325             ef = jauEform( 0 );
1326             fail("jauEform should throw exception for illegal identifier");
1327         } catch (JSOFAIllegalParameter e) {
1328         }
1329 
1330 
1331         try {
1332             ef = jauEform( 1 );
1333 
1334             vvd(ef.a, 6378137.0, 1e-10, "jauEform", "a");
1335             vvd(ef.f, 0.0033528106647474807, 1e-18, "jauEform", "f");
1336 
1337             ef = jauEform( 2 );
1338 
1339             vvd(ef.a, 6378137.0, 1e-10, "jauEform", "a");
1340             vvd(ef.f, 0.0033528106811823189, 1e-18, "jauEform", "f");
1341 
1342             ef = jauEform( 3 );
1343 
1344             vvd(ef.a, 6378135.0, 1e-10, "jauEform", "a");
1345             vvd(ef.f, 0.0033527794541675049, 1e-18, "jauEform", "f");
1346         } catch (JSOFAIllegalParameter e) {
1347             fail("jauEform should not throw exception for legal identifier");
1348         }
1349 
1350         try {
1351             ef = jauEform( 4 );
1352             fail("jauEform should throw exception for illegal identifier");
1353         } catch (JSOFAIllegalParameter e) {
1354 
1355         }
1356     }
1357 
1358     @Test
1359     public void t_eo06a()
1360     
1361 
1362 
1363 
1364 
1365 
1366 
1367 
1368 
1369 
1370 
1371     {
1372        double eo;
1373 
1374 
1375        eo = jauEo06a(2400000.5, 53736.0);
1376 
1377        vvd(eo, -0.1332882371941833644e-2, 1e-15, "jauEo06a", "");
1378 
1379     }
1380 
1381     @Test
1382     public void t_eors()
1383     
1384 
1385 
1386 
1387 
1388 
1389 
1390 
1391 
1392 
1393 
1394     {
1395        double rnpb[][] = new double[3][3], s, eo;
1396 
1397 
1398        rnpb[0][0] =  0.9999989440476103608;
1399        rnpb[0][1] = -0.1332881761240011518e-2;
1400        rnpb[0][2] = -0.5790767434730085097e-3;
1401 
1402        rnpb[1][0] =  0.1332858254308954453e-2;
1403        rnpb[1][1] =  0.9999991109044505944;
1404        rnpb[1][2] = -0.4097782710401555759e-4;
1405 
1406        rnpb[2][0] =  0.5791308472168153320e-3;
1407        rnpb[2][1] =  0.4020595661593994396e-4;
1408        rnpb[2][2] =  0.9999998314954572365;
1409 
1410        s = -0.1220040848472271978e-7;
1411 
1412        eo = jauEors(rnpb, s);
1413 
1414        vvd(eo, -0.1332882715130744606e-2, 1e-14, "jauEors", "");
1415 
1416     }
1417 
1418     @Test
1419     public void t_epb()
1420     
1421 
1422 
1423 
1424 
1425 
1426 
1427 
1428 
1429 
1430 
1431     {
1432        double epb;
1433 
1434 
1435        epb = jauEpb(2415019.8135, 30103.18648);
1436 
1437        vvd(epb, 1982.418424159278580, 1e-12, "jauEpb", "");
1438 
1439     }
1440 
1441     @Test
1442     public void t_epb2jd()
1443     
1444 
1445 
1446 
1447 
1448 
1449 
1450 
1451 
1452 
1453 
1454     {
1455        double epb;
1456 
1457 
1458        epb = 1957.3;
1459 
1460        JulianDate jd = jauEpb2jd(epb);
1461 
1462        vvd(jd.djm0, 2400000.5, 1e-9, "jauEpb2jd", "djm0");
1463        vvd(jd.djm1, 35948.1915101513, 1e-9, "jauEpb2jd", "mjd");
1464 
1465     }
1466 
1467     @Test
1468     public void t_epj()
1469     
1470 
1471 
1472 
1473 
1474 
1475 
1476 
1477 
1478 
1479 
1480     {
1481        double epj;
1482 
1483 
1484        epj = jauEpj(2451545, -7392.5);
1485 
1486        vvd(epj, 1979.760438056125941, 1e-12, "jauEpj", "");
1487 
1488     }
1489 
1490     @Test
1491     public void t_epj2jd()
1492     
1493 
1494 
1495 
1496 
1497 
1498 
1499 
1500 
1501 
1502 
1503     {
1504        double epj;
1505 
1506 
1507        epj = 1996.8;
1508 
1509        JulianDate jd = jauEpj2jd(epj);
1510 
1511        vvd(jd.djm0, 2400000.5, 1e-9, "jauEpj2jd", "djm0");
1512        vvd(jd.djm1,    50375.7, 1e-9, "jauEpj2jd", "mjd");
1513 
1514     }
1515 
1516     @Test
1517     public void t_epv00()
1518     
1519 
1520 
1521 
1522 
1523 
1524 
1525 
1526 
1527 
1528 
1529     {
1530        double pvh[][] = new double[2][3], pvb[][] = new double[2][3];
1531     
1532 
1533 
1534        int j = jauEpv00(2400000.5, 53411.52501161, pvh, pvb);
1535 
1536        vvd(pvh[0][0], -0.7757238809297706813, 1e-14,
1537            "jauEpv00", "ph(x)");
1538        vvd(pvh[0][1], 0.5598052241363340596, 1e-14,
1539            "jauEpv00", "ph(y)");
1540        vvd(pvh[0][2], 0.2426998466481686993, 1e-14,
1541            "jauEpv00", "ph(z)");
1542 
1543        vvd(pvh[1][0], -0.1091891824147313846e-1, 1e-15,
1544            "jauEpv00", "vh(x)");
1545        vvd(pvh[1][1], -0.1247187268440845008e-1, 1e-15,
1546            "jauEpv00", "vh(y)");
1547        vvd(pvh[1][2], -0.5407569418065039061e-2, 1e-15,
1548            "jauEpv00", "vh(z)");
1549 
1550        vvd(pvb[0][0], -0.7714104440491111971, 1e-14,
1551            "jauEpv00", "pb(x)");
1552        vvd(pvb[0][1], 0.5598412061824171323, 1e-14,
1553            "jauEpv00", "pb(y)");
1554        vvd(pvb[0][2], 0.2425996277722452400, 1e-14,
1555            "jauEpv00", "pb(z)");
1556 
1557        vvd(pvb[1][0], -0.1091874268116823295e-1, 1e-15,
1558            "jauEpv00", "vb(x)");
1559        vvd(pvb[1][1], -0.1246525461732861538e-1, 1e-15,
1560            "jauEpv00", "vb(y)");
1561        vvd(pvb[1][2], -0.5404773180966231279e-2, 1e-15,
1562            "jauEpv00", "vb(z)");
1563 
1564        viv(j, 0, "jauEpv00", "j");
1565 
1566     }
1567 
1568     @Test
1569     public void t_eqeq94()
1570     
1571 
1572 
1573 
1574 
1575 
1576 
1577 
1578 
1579 
1580 
1581     {
1582        double eqeq;
1583 
1584 
1585        eqeq = jauEqeq94(2400000.5, 41234.0);
1586 
1587        vvd(eqeq, 0.5357758254609256894e-4, 1e-17, "jauEqeq94", "");
1588 
1589     }
1590 
1591     @Test
1592     public void t_era00()
1593     
1594 
1595 
1596 
1597 
1598 
1599 
1600 
1601 
1602 
1603 
1604     {
1605        double era00;
1606 
1607 
1608        era00 = jauEra00(2400000.5, 54388.0);
1609 
1610        vvd(era00, 0.4022837240028158102, 1e-12, "jauEra00", "");
1611 
1612     }
1613 
1614     @Test
1615     public void t_fad03()
1616     
1617 
1618 
1619 
1620 
1621 
1622 
1623 
1624 
1625 
1626 
1627     {
1628        vvd(jauFad03(0.80), 1.946709205396925672, 1e-12,
1629            "jauFad03", "");
1630     }
1631 
1632     @Test
1633     public void t_fae03()
1634     
1635 
1636 
1637 
1638 
1639 
1640 
1641 
1642 
1643 
1644 
1645     {
1646        vvd(jauFae03(0.80), 1.744713738913081846, 1e-12,
1647            "jauFae03", "");
1648     }
1649 
1650     @Test
1651     public void t_faf03()
1652     
1653 
1654 
1655 
1656 
1657 
1658 
1659 
1660 
1661 
1662 
1663     {
1664        vvd(jauFaf03(0.80), 0.2597711366745499518, 1e-12,
1665            "jauFaf03", "");
1666     }
1667 
1668     @Test
1669     public void t_faju03()
1670     
1671 
1672 
1673 
1674 
1675 
1676 
1677 
1678 
1679 
1680 
1681     {
1682        vvd(jauFaju03(0.80), 5.275711665202481138, 1e-12,
1683            "jauFaju03", "");
1684     }
1685 
1686     @Test
1687     public void t_fal03()
1688     
1689 
1690 
1691 
1692 
1693 
1694 
1695 
1696 
1697 
1698 
1699     {
1700        vvd(jauFal03(0.80), 5.132369751108684150, 1e-12,
1701            "jauFal03", "");
1702     }
1703 
1704     @Test
1705     public void t_falp03()
1706     
1707 
1708 
1709 
1710 
1711 
1712 
1713 
1714 
1715 
1716 
1717     {
1718        vvd(jauFalp03(0.80), 6.226797973505507345, 1e-12,
1719           "jauFalp03", "");
1720     }
1721 
1722     @Test
1723     public void t_fama03()
1724     
1725 
1726 
1727 
1728 
1729 
1730 
1731 
1732 
1733 
1734 
1735     {
1736        vvd(jauFama03(0.80), 3.275506840277781492, 1e-12,
1737            "jauFama03", "");
1738     }
1739 
1740     @Test
1741     public void t_fame03()
1742     
1743 
1744 
1745 
1746 
1747 
1748 
1749 
1750 
1751 
1752 
1753     {
1754        vvd(jauFame03(0.80), 5.417338184297289661, 1e-12,
1755            "jauFame03", "");
1756     }
1757 
1758     @Test
1759     public void t_fane03()
1760     
1761 
1762 
1763 
1764 
1765 
1766 
1767 
1768 
1769 
1770 
1771     {
1772        vvd(jauFane03(0.80), 2.079343830860413523, 1e-12,
1773            "jauFane03", "");
1774     }
1775 
1776     @Test
1777     public void t_faom03()
1778     
1779 
1780 
1781 
1782 
1783 
1784 
1785 
1786 
1787 
1788 
1789     {
1790        vvd(jauFaom03(0.80), -5.973618440951302183, 1e-12,
1791            "jauFaom03", "");
1792     }
1793 
1794     @Test
1795     public void t_fapa03()
1796     
1797 
1798 
1799 
1800 
1801 
1802 
1803 
1804 
1805 
1806 
1807     {
1808        vvd(jauFapa03(0.80), 0.1950884762240000000e-1, 1e-12,
1809            "jauFapa03", "");
1810     }
1811 
1812     @Test
1813     public void t_fasa03()
1814     
1815 
1816 
1817 
1818 
1819 
1820 
1821 
1822 
1823 
1824 
1825     {
1826        vvd(jauFasa03(0.80), 5.371574539440827046, 1e-12,
1827            "jauFasa03", "");
1828     }
1829 
1830     @Test
1831     public void t_faur03()
1832     
1833 
1834 
1835 
1836 
1837 
1838 
1839 
1840 
1841 
1842 
1843     {
1844        vvd(jauFaur03(0.80), 5.180636450180413523, 1e-12,
1845            "jauFaur03", "");
1846     }
1847 
1848     @Test
1849     public void t_fave03()
1850     
1851 
1852 
1853 
1854 
1855 
1856 
1857 
1858 
1859 
1860 
1861     {
1862        vvd(jauFave03(0.80), 3.424900460533758000, 1e-12,
1863            "jauFave03", "");
1864     }
1865 
1866     @Test
1867     public void t_fk52h()
1868     
1869 
1870 
1871 
1872 
1873 
1874 
1875 
1876 
1877 
1878 
1879     {
1880        double r5, d5, dr5, dd5, px5, rv5;
1881 
1882 
1883        r5  =  1.76779433;
1884        d5  = -0.2917517103;
1885        dr5 = -1.91851572e-7;
1886        dd5 = -5.8468475e-6;
1887        px5 =  0.379210;
1888        rv5 = -7.6;
1889 
1890       CatalogCoords cat = jauFk52h(r5, d5, dr5, dd5, px5, rv5);
1891 
1892        vvd(cat.pos.alpha, 1.767794226299947632, 1e-14,"jauFk52h", "ra");
1893        vvd(cat.pos.delta,  -0.2917516070530391757, 1e-14,"jauFk52h", "dec");
1894        vvd(cat.pm.alpha, -0.1961874125605721270e-6,1e-19,"jauFk52h", "dr5");
1895        vvd(cat.pm.delta, -0.58459905176693911e-5, 1e-19,"jauFk52h", "dd5");
1896        vvd(cat.px,  0.37921, 1e-14,"jauFk52h", "px");
1897        vvd(cat.rv, -7.6000000940000254, 1e-11,"jauFk52h", "rv");
1898 
1899     }
1900 
1901     @Test
1902     public void t_fk5hip()
1903     
1904 
1905 
1906 
1907 
1908 
1909 
1910 
1911 
1912 
1913 
1914     {
1915        double r5h[][] = new double[3][3], s5h[] = new double[3];
1916 
1917 
1918        jauFk5hip(r5h, s5h);
1919 
1920        vvd(r5h[0][0], 0.9999999999999928638, 1e-14,"jauFk5hip", "11");
1921        vvd(r5h[0][1], 0.1110223351022919694e-6, 1e-17,"jauFk5hip", "12");
1922        vvd(r5h[0][2], 0.4411803962536558154e-7, 1e-17,"jauFk5hip", "13");
1923        vvd(r5h[1][0], -0.1110223308458746430e-6, 1e-17,"jauFk5hip", "21");
1924        vvd(r5h[1][1], 0.9999999999999891830, 1e-14,"jauFk5hip", "22");
1925        vvd(r5h[1][2], -0.9647792498984142358e-7, 1e-17,"jauFk5hip", "23");
1926        vvd(r5h[2][0], -0.4411805033656962252e-7, 1e-17,"jauFk5hip", "31");
1927        vvd(r5h[2][1], 0.9647792009175314354e-7, 1e-17,"jauFk5hip", "32");
1928        vvd(r5h[2][2], 0.9999999999999943728, 1e-14,"jauFk5hip", "33");
1929        vvd(s5h[0], -0.1454441043328607981e-8, 1e-17,"jauFk5hip", "s1");
1930        vvd(s5h[1], 0.2908882086657215962e-8, 1e-17,"jauFk5hip", "s2");
1931        vvd(s5h[2], 0.3393695767766751955e-8, 1e-17,"jauFk5hip", "s3");
1932 
1933     }
1934 
1935     @Test
1936     public void t_fk5hz()
1937     
1938 
1939 
1940 
1941 
1942 
1943 
1944 
1945 
1946 
1947 
1948     {
1949        double r5, d5;
1950 
1951 
1952        r5 =  1.76779433;
1953        d5 = -0.2917517103;
1954 
1955        SphericalCoordinate pos = jauFk5hz(r5, d5, 2400000.5, 54479.0);
1956 
1957        vvd(pos.alpha,  1.767794191464423978, 1e-12, "jauFk5hz", "ra");
1958        vvd(pos.delta, -0.2917516001679884419, 1e-12, "jauFk5hz", "dec");
1959 
1960     }
1961 
1962     @Test
1963     public void t_fw2m()
1964     
1965 
1966 
1967 
1968 
1969 
1970 
1971 
1972 
1973 
1974 
1975     {
1976        double gamb, phib, psi, eps, r[][] = new double[3][3];
1977 
1978 
1979        gamb = -0.2243387670997992368e-5;
1980        phib =  0.4091014602391312982;
1981        psi  = -0.9501954178013015092e-3;
1982        eps  =  0.4091014316587367472;
1983 
1984        r = jauFw2m(gamb, phib, psi, eps);
1985 
1986        vvd(r[0][0], 0.9999995505176007047, 1e-12,"jauFw2m", "11");
1987        vvd(r[0][1], 0.8695404617348192957e-3, 1e-12,"jauFw2m", "12");
1988        vvd(r[0][2], 0.3779735201865582571e-3, 1e-12,"jauFw2m", "13");
1989 
1990        vvd(r[1][0], -0.8695404723772016038e-3, 1e-12,"jauFw2m", "21");
1991        vvd(r[1][1], 0.9999996219496027161, 1e-12,"jauFw2m", "22");
1992        vvd(r[1][2], -0.1361752496887100026e-6, 1e-12,"jauFw2m", "23");
1993 
1994        vvd(r[2][0], -0.3779734957034082790e-3, 1e-12,"jauFw2m", "31");
1995        vvd(r[2][1], -0.1924880848087615651e-6, 1e-12,"jauFw2m", "32");
1996        vvd(r[2][2], 0.9999999285679971958, 1e-12,"jauFw2m", "33");
1997 
1998     }
1999 
2000     @Test
2001     public void t_fw2xy()
2002     
2003 
2004 
2005 
2006 
2007 
2008 
2009 
2010 
2011 
2012 
2013     {
2014        double gamb, phib, psi, eps;
2015 
2016 
2017        gamb = -0.2243387670997992368e-5;
2018        phib =  0.4091014602391312982;
2019        psi  = -0.9501954178013015092e-3;
2020        eps  =  0.4091014316587367472;
2021 
2022        CelestialIntermediatePole cip = jauFw2xy(gamb, phib, psi, eps);
2023 
2024        vvd(cip.x, -0.3779734957034082790e-3, 1e-14, "jauFw2xy", "x");
2025        vvd(cip.y, -0.1924880848087615651e-6, 1e-14, "jauFw2xy", "y");
2026 
2027     }
2028 
2029     @Test
2030     public void t_gc2gd()
2031     
2032 
2033 
2034 
2035 
2036 
2037 
2038 
2039 
2040 
2041 
2042     {
2043         double xyz[] = {2e6, 3e6, 5.244e6};
2044         GeodeticCoord geo;
2045         try {
2046             geo = jauGc2gd( 0, xyz);
2047             fail("jauGc2gd should thow exception for illegal parameter");
2048         } catch (JSOFAIllegalParameter e1) {
2049 
2050         }
2051         try {
2052             geo = jauGc2gd( 1, xyz );
2053 
2054             vvd(geo.elong, 0.98279372324732907, 1e-14, "jauGc2gd", "e1");
2055             vvd(geo.phi, 0.97160184819075459, 1e-14, "jauGc2gd", "p1");
2056             vvd(geo.height, 331.41724614260599, 1e-8, "jauGc2gd", "h1");
2057 
2058             geo = jauGc2gd( 2, xyz );
2059             vvd(geo.elong, 0.98279372324732907, 1e-14, "jauGc2gd", "e2");
2060             vvd(geo.phi, 0.97160184820607853, 1e-14, "jauGc2gd", "p2");
2061             vvd(geo.height, 331.41731754844348, 1e-8, "jauGc2gd", "h2");
2062             
2063             geo = jauGc2gd( 3, xyz );
2064             vvd(geo.elong, 0.98279372324732907, 1e-14, "jauGc2gd", "e3");
2065             vvd(geo.phi, 0.97160181811015119, 1e-14, "jauGc2gd", "p3");
2066             vvd(geo.height, 333.27707261303181, 1e-8, "jauGc2gd", "h3");
2067             
2068         } catch (JSOFAIllegalParameter e1) {
2069             fail("jauGc2gd should not thow exception for legal parameter");
2070         }
2071 
2072         try {
2073             geo = jauGc2gd( 4, xyz );
2074             fail("jauGc2gd should thow exception for illegal parameter");
2075         } catch (JSOFAIllegalParameter e1) {
2076         }
2077 
2078      }
2079 
2080     @Test
2081     public void t_gc2gde()
2082     
2083 
2084 
2085 
2086 
2087 
2088 
2089 
2090 
2091 
2092 
2093     {
2094         double a = 6378136.0, f = 0.0033528;
2095         double xyz[] = {2e6, 3e6, 5.244e6};
2096 
2097         try {
2098             GeodeticCoord geo = jauGc2gde( a, f, xyz);
2099 
2100             vvd(geo.elong, 0.98279372324732907, 1e-14, "jauGc2gde", "e");
2101             vvd(geo.phi, 0.97160183775704115, 1e-14, "jauGc2gde", "p");
2102             vvd(geo.height, 332.36862495764397, 1e-8, "jauGc2gde", "h");
2103         } catch (JSOFAIllegalParameter e1) {
2104             fail("jauGc2gde should not thow exception for legal parameter");
2105 
2106         }
2107     }
2108 
2109     @Test
2110     public void t_gd2gc()
2111     
2112 
2113 
2114 
2115 
2116 
2117 
2118 
2119 
2120 
2121 
2122     {
2123         double e = 3.1, p = -0.5, h = 2500.0;
2124         double xyz[] = new double[3];
2125 
2126         try {
2127             xyz = jauGd2gc( 0, e, p, h );
2128 
2129             fail("jauGd2gc should thow exception for illegal parameter");
2130         } catch (JSOFAIllegalParameter e1) {
2131             
2132 
2133         } catch (JSOFAInternalError e1) {
2134             fail("jauGd2gc should thow exception for illegal parameter");
2135         }
2136 
2137         try {
2138             xyz = jauGd2gc( 1, e, p, h );
2139 
2140 
2141             vvd(xyz[0], -5599000.5577049947, 1e-7, "jauGd2gc", "0/1");
2142             vvd(xyz[1], 233011.67223479203, 1e-7, "jauGd2gc", "1/1");
2143             vvd(xyz[2], -3040909.4706983363, 1e-7, "jauGd2gc", "2/1");
2144 
2145             xyz = jauGd2gc( 2, e, p, h);
2146 
2147             vvd(xyz[0], -5599000.5577260984, 1e-7, "jauGd2gc", "0/2");
2148             vvd(xyz[1], 233011.6722356703, 1e-7, "jauGd2gc", "1/2");
2149             vvd(xyz[2], -3040909.4706095476, 1e-7, "jauGd2gc", "2/2");
2150             
2151             xyz = jauGd2gc( 3, e, p, h);
2152             vvd(xyz[0], -5598998.7626301490, 1e-7, "jauGd2gc", "0/3");
2153             vvd(xyz[1], 233011.5975297822, 1e-7, "jauGd2gc", "1/3");
2154             vvd(xyz[2], -3040908.6861467111, 1e-7, "jauGd2gc", "2/3");
2155             
2156         } catch (JSOFAException e1) {
2157             fail("jauGd2gc should not thow exception ");
2158         }
2159 
2160         try {
2161             xyz = jauGd2gc( 4, e, p, h );
2162             fail("jauGd2gc should thow exception for illegal parameter");
2163         } catch (JSOFAIllegalParameter e1) {
2164             
2165         } catch (JSOFAInternalError e1) {
2166             fail("jauGd2gc should thow exception for illegal parameter");
2167         }
2168     }
2169 
2170     @Test
2171     public void t_gd2gce() throws JSOFAInternalError
2172     
2173 
2174 
2175 
2176 
2177 
2178 
2179 
2180 
2181 
2182 
2183     {
2184        double a = 6378136.0, f = 0.0033528;
2185        double e = 3.1, p = -0.5, h = 2500.0;
2186        double xyz[] = new double[3];
2187 
2188        xyz = jauGd2gce( a, f, e, p, h );
2189 
2190        vvd(xyz[0], -5598999.6665116328, 1e-7, "jauGd2gce", "0");
2191        vvd(xyz[1], 233011.63514630572, 1e-7, "jauGd2gce", "1");
2192        vvd(xyz[2], -3040909.0517314132, 1e-7, "jauGd2gce", "2");
2193     }
2194 
2195     @Test
2196     public void t_gmst00()
2197     
2198 
2199 
2200 
2201 
2202 
2203 
2204 
2205 
2206 
2207 
2208     {
2209        double theta;
2210 
2211 
2212        theta = jauGmst00(2400000.5, 53736.0, 2400000.5, 53736.0);
2213 
2214        vvd(theta, 1.754174972210740592, 1e-12, "jauGmst00", "");
2215 
2216     }
2217 
2218     @Test
2219     public void t_gmst06()
2220     
2221 
2222 
2223 
2224 
2225 
2226 
2227 
2228 
2229 
2230 
2231     {
2232        double theta;
2233 
2234 
2235        theta = jauGmst06(2400000.5, 53736.0, 2400000.5, 53736.0);
2236 
2237        vvd(theta, 1.754174971870091203, 1e-12, "jauGmst06", "");
2238 
2239     }
2240 
2241     @Test
2242     public void t_gmst82()
2243     
2244 
2245 
2246 
2247 
2248 
2249 
2250 
2251 
2252 
2253 
2254     {
2255        double theta;
2256 
2257 
2258        theta = jauGmst82(2400000.5, 53736.0);
2259 
2260        vvd(theta, 1.754174981860675096, 1e-12, "jauGmst82", "");
2261 
2262     }
2263 
2264     @Test
2265     public void t_gst00a()
2266     
2267 
2268 
2269 
2270 
2271 
2272 
2273 
2274 
2275 
2276 
2277     {
2278        double theta;
2279 
2280 
2281        theta = jauGst00a(2400000.5, 53736.0, 2400000.5, 53736.0);
2282 
2283        vvd(theta, 1.754166138018281369, 1e-12, "jauGst00a", "");
2284 
2285     }
2286 
2287     @Test
2288     public void t_gst00b()
2289     
2290 
2291 
2292 
2293 
2294 
2295 
2296 
2297 
2298 
2299 
2300     {
2301        double theta;
2302 
2303 
2304        theta = jauGst00b(2400000.5, 53736.0);
2305 
2306        vvd(theta, 1.754166136510680589, 1e-12, "jauGst00b", "");
2307 
2308     }
2309 
2310     @Test
2311     public void t_gst06()
2312     
2313 
2314 
2315 
2316 
2317 
2318 
2319 
2320 
2321 
2322 
2323     {
2324        double rnpb[][] = new double[3][3], theta;
2325 
2326 
2327        rnpb[0][0] =  0.9999989440476103608;
2328        rnpb[0][1] = -0.1332881761240011518e-2;
2329        rnpb[0][2] = -0.5790767434730085097e-3;
2330 
2331        rnpb[1][0] =  0.1332858254308954453e-2;
2332        rnpb[1][1] =  0.9999991109044505944;
2333        rnpb[1][2] = -0.4097782710401555759e-4;
2334 
2335        rnpb[2][0] =  0.5791308472168153320e-3;
2336        rnpb[2][1] =  0.4020595661593994396e-4;
2337        rnpb[2][2] =  0.9999998314954572365;
2338 
2339        theta = jauGst06(2400000.5, 53736.0, 2400000.5, 53736.0, rnpb);
2340 
2341        vvd(theta, 1.754166138018167568, 1e-12, "jauGst06", "");
2342 
2343     }
2344 
2345     @Test
2346     public void t_gst06a()
2347     
2348 
2349 
2350 
2351 
2352 
2353 
2354 
2355 
2356 
2357 
2358     {
2359        double theta;
2360 
2361 
2362        theta = jauGst06a(2400000.5, 53736.0, 2400000.5, 53736.0);
2363 
2364        vvd(theta, 1.754166137675019159, 1e-12, "jauGst06a", "");
2365 
2366     }
2367 
2368     @Test
2369     public void t_gst94()
2370     
2371 
2372 
2373 
2374 
2375 
2376 
2377 
2378 
2379 
2380 
2381     {
2382        double theta;
2383 
2384 
2385        theta = jauGst94(2400000.5, 53736.0);
2386 
2387        vvd(theta, 1.754166136020645203, 1e-12, "jauGst94", "");
2388 
2389     }
2390 
2391     @Test
2392     public void t_h2fk5()
2393     
2394 
2395 
2396 
2397 
2398 
2399 
2400 
2401 
2402 
2403 
2404     {
2405        double rh, dh, drh, ddh, pxh, rvh;
2406 
2407 
2408        rh  =  1.767794352;
2409        dh  = -0.2917512594;
2410        drh = -2.76413026e-6;
2411        ddh = -5.92994449e-6;
2412        pxh =  0.379210;
2413        rvh = -7.6;
2414 
2415        CatalogCoords cat = jauH2fk5(rh, dh, drh, ddh, pxh, rvh);
2416 
2417        vvd(cat.pos.alpha, 1.767794455700065506, 1e-13,"jauH2fk5", "ra");
2418        vvd(cat.pos.delta, -0.2917513626469638890, 1e-13,"jauH2fk5", "dec");
2419        vvd(cat.pm.alpha, -0.27597945024511204e-5, 1e-18,"jauH2fk5", "dr5");
2420        vvd(cat.pm.delta, -0.59308014093262838e-5, 1e-18,"jauH2fk5", "dd5");
2421        vvd(cat.px, 0.37921, 1e-13,"jauH2fk5", "px");
2422        vvd(cat.rv, -7.6000001309071126, 2e-11,"jauH2fk5", "rv"); 
2423 
2424     }
2425 
2426     @Test
2427     public void t_hfk5z()
2428     
2429 
2430 
2431 
2432 
2433 
2434 
2435 
2436 
2437 
2438 
2439     {
2440        double rh, dh;
2441 
2442 
2443 
2444        rh =  1.767794352;
2445        dh = -0.2917512594;
2446 
2447        CatalogCoords cat = jauHfk5z(rh, dh, 2400000.5, 54479.0);
2448 
2449        vvd(cat.pos.alpha, 1.767794490535581026, 1e-13,"jauHfk5z", "ra");
2450        vvd(cat.pos.delta, -0.2917513695320114258, 1e-14,"jauHfk5z", "dec");
2451        vvd(cat.pm.alpha, 0.4335890983539243029e-8, 1e-22,"jauHfk5z", "dr5");
2452        vvd(cat.pm.delta, -0.8569648841237745902e-9, 1e-23,"jauHfk5z", "dd5");
2453 
2454     }
2455 
2456     @Test
2457     public void t_ir()
2458     
2459 
2460 
2461 
2462 
2463 
2464 
2465 
2466 
2467 
2468 
2469     {
2470        double r[][] = new double[3][3];
2471 
2472 
2473        r[0][0] = 2.0;
2474        r[0][1] = 3.0;
2475        r[0][2] = 2.0;
2476 
2477        r[1][0] = 3.0;
2478        r[1][1] = 2.0;
2479        r[1][2] = 3.0;
2480 
2481        r[2][0] = 3.0;
2482        r[2][1] = 4.0;
2483        r[2][2] = 5.0;
2484 
2485        jauIr(r);
2486 
2487        vvd(r[0][0], 1.0, 0.0, "jauIr", "11");
2488        vvd(r[0][1], 0.0, 0.0, "jauIr", "12");
2489        vvd(r[0][2], 0.0, 0.0, "jauIr", "13");
2490 
2491        vvd(r[1][0], 0.0, 0.0, "jauIr", "21");
2492        vvd(r[1][1], 1.0, 0.0, "jauIr", "22");
2493        vvd(r[1][2], 0.0, 0.0, "jauIr", "23");
2494 
2495        vvd(r[2][0], 0.0, 0.0, "jauIr", "31");
2496        vvd(r[2][1], 0.0, 0.0, "jauIr", "32");
2497        vvd(r[2][2], 1.0, 0.0, "jauIr", "33");
2498 
2499     }
2500 
2501     @Test
2502     public void t_jd2cal() throws JSOFAIllegalParameter
2503     
2504 
2505 
2506 
2507 
2508 
2509 
2510 
2511 
2512 
2513 
2514     {
2515        double dj1, dj2;
2516 
2517 
2518        dj1 = 2400000.5;
2519        dj2 = 50123.9999;
2520 
2521        Calendar cal = jauJd2cal(dj1, dj2);
2522 
2523        viv(cal.iy, 1996, "jauJd2cal", "y");
2524        viv(cal.im, 2, "jauJd2cal", "m");
2525        viv(cal.id, 10, "jauJd2cal", "d");
2526        vvd(cal.fd, 0.9999, 1e-7, "jauJd2cal", "fd");
2527 
2528 
2529     }
2530 
2531     @Test
2532     public void t_jdcalf()
2533     
2534 
2535 
2536 
2537 
2538 
2539 
2540 
2541 
2542 
2543 
2544     {
2545        double dj1, dj2;
2546        int iydmf[] = new int[4], j;
2547 
2548 
2549        dj1 = 2400000.5;
2550        dj2 = 50123.9999;
2551 
2552        j = jauJdcalf(4, dj1, dj2, iydmf);
2553 
2554        viv(iydmf[0], 1996, "jauJdcalf", "y");
2555        viv(iydmf[1], 2, "jauJdcalf", "m");
2556        viv(iydmf[2], 10, "jauJdcalf", "d");
2557        viv(iydmf[3], 9999, "jauJdcalf", "f");
2558 
2559        viv(j, 0, "jauJdcalf", "j");
2560 
2561     }
2562 
2563     @Test
2564     public void t_num00a()
2565     
2566 
2567 
2568 
2569 
2570 
2571 
2572 
2573 
2574 
2575 
2576     {
2577        double rmatn[][] = new double[3][3];
2578 
2579 
2580        rmatn = jauNum00a(2400000.5, 53736.0);
2581 
2582        vvd(rmatn[0][0], 0.9999999999536227949, 1e-12,"jauNum00a", "11");
2583        vvd(rmatn[0][1], 0.8836238544090873336e-5, 1e-12,"jauNum00a", "12");
2584        vvd(rmatn[0][2], 0.3830835237722400669e-5, 1e-12,"jauNum00a", "13");
2585 
2586        vvd(rmatn[1][0], -0.8836082880798569274e-5, 1e-12,"jauNum00a", "21");
2587        vvd(rmatn[1][1], 0.9999999991354655028, 1e-12,"jauNum00a", "22");
2588        vvd(rmatn[1][2], -0.4063240865362499850e-4, 1e-12,"jauNum00a", "23");
2589 
2590        vvd(rmatn[2][0], -0.3831194272065995866e-5, 1e-12,"jauNum00a", "31");
2591        vvd(rmatn[2][1], 0.4063237480216291775e-4, 1e-12,"jauNum00a", "32");
2592        vvd(rmatn[2][2], 0.9999999991671660338, 1e-12,"jauNum00a", "33");
2593 
2594     }
2595 
2596     @Test
2597     public void t_num00b()
2598     
2599 
2600 
2601 
2602 
2603 
2604 
2605 
2606 
2607 
2608 
2609     {
2610         double rmatn[][] = new double[3][3];
2611 
2612         rmatn = jauNum00b(2400000.5, 53736);
2613 
2614        vvd(rmatn[0][0], 0.9999999999536069682, 1e-12,"jauNum00b", "11");
2615        vvd(rmatn[0][1], 0.8837746144871248011e-5, 1e-12,"jauNum00b", "12");
2616        vvd(rmatn[0][2], 0.3831488838252202945e-5, 1e-12,"jauNum00b", "13");
2617 
2618        vvd(rmatn[1][0], -0.8837590456632304720e-5, 1e-12,"jauNum00b", "21");
2619        vvd(rmatn[1][1], 0.9999999991354692733, 1e-12,"jauNum00b", "22");
2620        vvd(rmatn[1][2], -0.4063198798559591654e-4, 1e-12,"jauNum00b", "23");
2621 
2622        vvd(rmatn[2][0], -0.3831847930134941271e-5, 1e-12,"jauNum00b", "31");
2623        vvd(rmatn[2][1], 0.4063195412258168380e-4, 1e-12,"jauNum00b", "32");
2624        vvd(rmatn[2][2], 0.9999999991671806225, 1e-12,"jauNum00b", "33");
2625 
2626     }
2627 
2628     @Test
2629     public void t_num06a()
2630     
2631 
2632 
2633 
2634 
2635 
2636 
2637 
2638 
2639 
2640 
2641     {
2642         double rmatn[][] = new double[3][3];
2643 
2644         rmatn = jauNum06a(2400000.5, 53736);
2645 
2646        vvd(rmatn[0][0], 0.9999999999536227668, 1e-12,"jauNum06a", "11");
2647        vvd(rmatn[0][1], 0.8836241998111535233e-5, 1e-12,"jauNum06a", "12");
2648        vvd(rmatn[0][2], 0.3830834608415287707e-5, 1e-12,"jauNum06a", "13");
2649 
2650        vvd(rmatn[1][0], -0.8836086334870740138e-5, 1e-12,"jauNum06a", "21");
2651        vvd(rmatn[1][1], 0.9999999991354657474, 1e-12,"jauNum06a", "22");
2652        vvd(rmatn[1][2], -0.4063240188248455065e-4, 1e-12,"jauNum06a", "23");
2653 
2654        vvd(rmatn[2][0], -0.3831193642839398128e-5, 1e-12,"jauNum06a", "31");
2655        vvd(rmatn[2][1], 0.4063236803101479770e-4, 1e-12,"jauNum06a", "32");
2656        vvd(rmatn[2][2], 0.9999999991671663114, 1e-12,"jauNum06a", "33");
2657 
2658     }
2659 
2660     @Test
2661     public void t_numat()
2662     
2663 
2664 
2665 
2666 
2667 
2668 
2669 
2670 
2671 
2672 
2673     {
2674        double epsa, dpsi, deps, rmatn[][] = new double[3][3];
2675 
2676 
2677        epsa =  0.4090789763356509900;
2678        dpsi = -0.9630909107115582393e-5;
2679        deps =  0.4063239174001678826e-4;
2680 
2681        rmatn = jauNumat(epsa, dpsi, deps);
2682 
2683        vvd(rmatn[0][0], 0.9999999999536227949, 1e-12,"jauNumat", "11");
2684        vvd(rmatn[0][1], 0.8836239320236250577e-5, 1e-12,"jauNumat", "12");
2685        vvd(rmatn[0][2], 0.3830833447458251908e-5, 1e-12,"jauNumat", "13");
2686 
2687        vvd(rmatn[1][0], -0.8836083657016688588e-5, 1e-12,"jauNumat", "21");
2688        vvd(rmatn[1][1], 0.9999999991354654959, 1e-12,"jauNumat", "22");
2689        vvd(rmatn[1][2], -0.4063240865361857698e-4, 1e-12,"jauNumat", "23");
2690 
2691        vvd(rmatn[2][0], -0.3831192481833385226e-5, 1e-12,"jauNumat", "31");
2692        vvd(rmatn[2][1], 0.4063237480216934159e-4, 1e-12,"jauNumat", "32");
2693        vvd(rmatn[2][2], 0.9999999991671660407, 1e-12,"jauNumat", "33");
2694 
2695     }
2696 
2697     @Test
2698     public void t_nut00a()
2699     
2700 
2701 
2702 
2703 
2704 
2705 
2706 
2707 
2708 
2709 
2710     {
2711 
2712 
2713        NutationTerms nut = jauNut00a(2400000.5, 53736.0);
2714 
2715        vvd(nut.dpsi, -0.9630909107115518431e-5, 1e-13,"jauNut00a", "dpsi");
2716        vvd(nut.deps,  0.4063239174001678710e-4, 1e-13,"jauNut00a", "deps");
2717 
2718     }
2719 
2720     @Test
2721     public void t_nut00b()
2722     
2723 
2724 
2725 
2726 
2727 
2728 
2729 
2730 
2731 
2732 
2733     {
2734  
2735 
2736        NutationTerms nut = jauNut00b(2400000.5, 53736.0);
2737 
2738        vvd(nut.dpsi, -0.9632552291148362783e-5, 1e-13,"jauNut00b", "dpsi");
2739        vvd(nut.deps,  0.4063197106621159367e-4, 1e-13,"jauNut00b", "deps");
2740 
2741     }
2742 
2743     @Test
2744     public void t_nut06a()
2745     
2746 
2747 
2748 
2749 
2750 
2751 
2752 
2753 
2754 
2755 
2756     {
2757 
2758        NutationTerms nut = jauNut06a(2400000.5, 53736.0);
2759 
2760        vvd(nut.dpsi, -0.9630912025820308797e-5, 1e-13,"jauNut06a", "dpsi");
2761        vvd(nut.deps,  0.4063238496887249798e-4, 1e-13,"jauNut06a", "deps");
2762 
2763     }
2764 
2765     @Test
2766     public void t_nut80()
2767     
2768 
2769 
2770 
2771 
2772 
2773 
2774 
2775 
2776 
2777 
2778     {
2779 
2780        NutationTerms nut = jauNut80(2400000.5, 53736.0);
2781 
2782        vvd(nut.dpsi, -0.9643658353226563966e-5, 1e-13,"jauNut80", "dpsi");
2783        vvd(nut.deps,  0.4060051006879713322e-4, 1e-13,"jauNut80", "deps");
2784 
2785     }
2786 
2787     @Test
2788     public void t_nutm80()
2789     
2790 
2791 
2792 
2793 
2794 
2795 
2796 
2797 
2798 
2799 
2800     {
2801        double rmatn[][] = new double[3][3];
2802 
2803 
2804        rmatn = jauNutm80(2400000.5, 53736.0);
2805 
2806        vvd(rmatn[0][0], 0.9999999999534999268, 1e-12,"jauNutm80", "11");
2807        vvd(rmatn[0][1], 0.8847935789636432161e-5, 1e-12,"jauNutm80", "12");
2808        vvd(rmatn[0][2], 0.3835906502164019142e-5, 1e-12,"jauNutm80", "13");
2809 
2810        vvd(rmatn[1][0], -0.8847780042583435924e-5, 1e-12,"jauNutm80", "21");
2811        vvd(rmatn[1][1], 0.9999999991366569963, 1e-12,"jauNutm80", "22");
2812        vvd(rmatn[1][2], -0.4060052702727130809e-4, 1e-12,"jauNutm80", "23");
2813 
2814        vvd(rmatn[2][0], -0.3836265729708478796e-5, 1e-12,"jauNutm80", "31");
2815        vvd(rmatn[2][1], 0.4060049308612638555e-4, 1e-12,"jauNutm80", "32");
2816        vvd(rmatn[2][2], 0.9999999991684415129, 1e-12,"jauNutm80", "33");
2817 
2818     }
2819 
2820     @Test
2821     public void t_obl06()
2822     
2823 
2824 
2825 
2826 
2827 
2828 
2829 
2830 
2831 
2832 
2833     {
2834        vvd(jauObl06(2400000.5, 54388.0), 0.4090749229387258204, 1e-14,
2835            "jauObl06", "");
2836     }
2837 
2838     @Test
2839     public void t_obl80()
2840     
2841 
2842 
2843 
2844 
2845 
2846 
2847 
2848 
2849 
2850 
2851     {
2852        double eps0;
2853 
2854 
2855        eps0 = jauObl80(2400000.5, 54388.0);
2856 
2857        vvd(eps0, 0.4090751347643816218, 1e-14, "jauObl80", "");
2858 
2859     }
2860 
2861     @Test
2862     public void t_p06e()
2863     
2864 
2865 
2866 
2867 
2868 
2869 
2870 
2871 
2872 
2873 
2874     {
2875 
2876 
2877        PrecessionAngles pa = jauP06e(2400000.5, 52541.0);
2878 
2879        vvd(pa.eps0, 0.4090926006005828715, 1e-14,"jauP06e", "eps0");
2880        vvd(pa.psia, 0.6664369630191613431e-3, 1e-14,"jauP06e", "psia");
2881        vvd(pa.oma , 0.4090925973783255982, 1e-14,"jauP06e", "oma");
2882        vvd(pa.bpa, 0.5561149371265209445e-6, 1e-14,"jauP06e", "bpa");
2883        vvd(pa.bqa, -0.6191517193290621270e-5, 1e-14,"jauP06e", "bqa");
2884        vvd(pa.pia, 0.6216441751884382923e-5, 1e-14,"jauP06e", "pia");
2885        vvd(pa.bpia, 3.052014180023779882, 1e-14,"jauP06e", "bpia");
2886        vvd(pa.epsa, 0.4090864054922431688, 1e-14,"jauP06e", "epsa");
2887        vvd(pa.chia, 0.1387703379530915364e-5, 1e-14,"jauP06e", "chia");
2888        vvd(pa.za, 0.2921789846651790546e-3, 1e-14,"jauP06e", "za");
2889        vvd(pa.zetaa, 0.3178773290332009310e-3, 1e-14,"jauP06e", "zetaa");
2890        vvd(pa.thetaa, 0.2650932701657497181e-3, 1e-14,"jauP06e", "thetaa");
2891        vvd(pa.pa, 0.6651637681381016288e-3, 1e-14,"jauP06e", "pa");
2892        vvd(pa.gam, 0.1398077115963754987e-5, 1e-14,"jauP06e", "gam");
2893        vvd(pa.phi, 0.4090864090837462602, 1e-14,"jauP06e", "phi");
2894        vvd(pa.psi, 0.6664464807480920325e-3, 1e-14,"jauP06e", "psi");
2895 
2896     }
2897 
2898     @Test
2899     public void t_p2pv()
2900     
2901 
2902 
2903 
2904 
2905 
2906 
2907 
2908 
2909 
2910 
2911     {
2912        double p[] = new double[3], pv[][]=new double[2][3];
2913 
2914 
2915        p[0] = 0.25;
2916        p[1] = 1.2;
2917        p[2] = 3.0;
2918 
2919        pv[0][0] =  0.3;
2920        pv[0][1] =  1.2;
2921        pv[0][2] = -2.5;
2922 
2923        pv[1][0] = -0.5;
2924        pv[1][1] =  3.1;
2925        pv[1][2] =  0.9;
2926 
2927        pv = jauP2pv(p);
2928 
2929        vvd(pv[0][0], 0.25, 0.0, "jauP2pv", "p1");
2930        vvd(pv[0][1], 1.2,  0.0, "jauP2pv", "p2");
2931        vvd(pv[0][2], 3.0,  0.0, "jauP2pv", "p3");
2932 
2933        vvd(pv[1][0], 0.0,  0.0, "jauP2pv", "v1");
2934        vvd(pv[1][1], 0.0,  0.0, "jauP2pv", "v2");
2935        vvd(pv[1][2], 0.0,  0.0, "jauP2pv", "v3");
2936 
2937     }
2938 
2939     @Test
2940     public void t_p2s()
2941     
2942 
2943 
2944 
2945 
2946 
2947 
2948 
2949 
2950 
2951 
2952     {
2953        double p[] = new double[3];
2954 
2955 
2956        p[0] = 100.0;
2957        p[1] = -50.0;
2958        p[2] =  25.0;
2959 
2960        SphericalPosition co = jauP2s(p);
2961 
2962        vvd(co.theta, -0.4636476090008061162, 1e-12, "jauP2s", "theta");
2963        vvd(co.phi, 0.2199879773954594463, 1e-12, "jauP2s", "phi");
2964        vvd(co.r, 114.5643923738960002, 1e-9, "jauP2s", "r");
2965 
2966     }
2967 
2968     @Test
2969     public void t_pap()
2970     
2971 
2972 
2973 
2974 
2975 
2976 
2977 
2978 
2979 
2980 
2981     {
2982        double a[] = new double[3], b[] = new double[3], theta;
2983 
2984 
2985        a[0] =  1.0;
2986        a[1] =  0.1;
2987        a[2] =  0.2;
2988 
2989        b[0] = -3.0;
2990        b[1] = 1e-3;
2991        b[2] =  0.2;
2992 
2993        theta = jauPap(a, b);
2994 
2995        vvd(theta, 0.3671514267841113674, 1e-12, "jauPap", "");
2996 
2997     }
2998 
2999     @Test
3000     public void t_pas()
3001     
3002 
3003 
3004 
3005 
3006 
3007 
3008 
3009 
3010 
3011 
3012     {
3013        double al, ap, bl, bp, theta;
3014 
3015 
3016        al =  1.0;
3017        ap =  0.1;
3018        bl =  0.2;
3019        bp = -1.0;
3020 
3021        theta = jauPas(al, ap, bl, bp);
3022 
3023        vvd(theta, -2.724544922932270424, 1e-12, "jauPas", "");
3024 
3025     }
3026 
3027     @Test
3028     public void t_pb06()
3029     
3030 
3031 
3032 
3033 
3034 
3035 
3036 
3037 
3038 
3039 
3040     {
3041 
3042        EulerAngles an = jauPb06(2400000.5, 50123.9999);
3043 
3044        vvd(an.zeta, -0.5092634016326478238e-3, 1e-12,"jauPb06", "bzeta");
3045        vvd(an.z, -0.3602772060566044413e-3, 1e-12,"jauPb06", "bz");
3046        vvd(an.theta, -0.3779735537167811177e-3, 1e-12,"jauPb06", "btheta");
3047 
3048     }
3049 
3050     @Test
3051     public void t_pdp()
3052     
3053 
3054 
3055 
3056 
3057 
3058 
3059 
3060 
3061 
3062 
3063     {
3064        double a[] = new double[3], b[] = new double[3], adb;
3065 
3066 
3067        a[0] = 2.0;
3068        a[1] = 2.0;
3069        a[2] = 3.0;
3070 
3071        b[0] = 1.0;
3072        b[1] = 3.0;
3073        b[2] = 4.0;
3074 
3075        adb = jauPdp(a, b);
3076 
3077        vvd(adb, 20, 1e-12, "jauPdp", "");
3078 
3079     }
3080 
3081     @Test
3082     public void t_pfw06()
3083     
3084 
3085 
3086 
3087 
3088 
3089 
3090 
3091 
3092 
3093 
3094     {
3095 
3096 
3097        FWPrecessionAngles fw = jauPfw06(2400000.5, 50123.9999);
3098 
3099        vvd(fw.gamb, -0.2243387670997995690e-5, 1e-16,"jauPfw06", "gamb");
3100        vvd(fw.phib,  0.4091014602391312808, 1e-12,"jauPfw06", "phib");
3101        vvd(fw.psib, -0.9501954178013031895e-3, 1e-14,"jauPfw06", "psib");
3102        vvd(fw.epsa,  0.4091014316587367491, 1e-12,"jauPfw06", "epsa");
3103 
3104     }
3105 
3106     @Test
3107     public void t_plan94()
3108     
3109 
3110 
3111 
3112 
3113 
3114 
3115 
3116 
3117 
3118 
3119     {
3120         double pv[][];
3121 
3122 
3123 
3124         try {
3125             pv = jauPlan94(2400000.5, 1e6, 0);
3126             fail("did not throw all the illegal argument for bad planet number");
3127         } catch (JSOFAIllegalParameter e) {
3128             
3129         }
3130 
3131         try {
3132             pv = jauPlan94(2400000.5, 1e6, 10);
3133             fail("did not throw all the illegal argument for bad planet number");
3134         } catch (JSOFAIllegalParameter e) {
3135             
3136         }
3137 
3138         try {
3139             pv = jauPlan94(2400000.5, -320000, 3);
3140 
3141             vvd(pv[0][0], 0.9308038666832975759, 1e-11,"jauPlan94", "x 3");
3142             vvd(pv[0][1], 0.3258319040261346000, 1e-11,"jauPlan94", "y 3");
3143             vvd(pv[0][2], 0.1422794544481140560, 1e-11,"jauPlan94", "z 3");
3144 
3145             vvd(pv[1][0], -0.6429458958255170006e-2, 1e-11,"jauPlan94", "xd 3");
3146             vvd(pv[1][1], 0.1468570657704237764e-1, 1e-11,"jauPlan94", "yd 3");
3147             vvd(pv[1][2], 0.6406996426270981189e-2, 1e-11,"jauPlan94", "zd 3");
3148 
3149 
3150             pv = jauPlan94(2400000.5, 43999.9, 1);
3151 
3152             vvd(pv[0][0], 0.2945293959257430832, 1e-11,"jauPlan94", "x 4");
3153             vvd(pv[0][1], -0.2452204176601049596, 1e-11,"jauPlan94", "y 4");
3154             vvd(pv[0][2], -0.1615427700571978153, 1e-11,"jauPlan94", "z 4");
3155 
3156             vvd(pv[1][0], 0.1413867871404614441e-1, 1e-11,"jauPlan94", "xd 4");
3157             vvd(pv[1][1], 0.1946548301104706582e-1, 1e-11,"jauPlan94", "yd 4");
3158             vvd(pv[1][2], 0.8929809783898904786e-2, 1e-11,"jauPlan94", "zd 4");
3159         } catch (JSOFAIllegalParameter e) {
3160             fail("legal call threw exception");
3161         }
3162 
3163 
3164     }
3165 
3166     @Test
3167     public void t_pmat00()
3168     
3169 
3170 
3171 
3172 
3173 
3174 
3175 
3176 
3177 
3178 
3179     {
3180        double rbp[][] = new double[3][3];
3181 
3182 
3183        rbp = jauPmat00(2400000.5, 50123.9999);
3184 
3185        vvd(rbp[0][0], 0.9999995505175087260, 1e-12,"jauPmat00", "11");
3186        vvd(rbp[0][1], 0.8695405883617884705e-3, 1e-14,"jauPmat00", "12");
3187        vvd(rbp[0][2], 0.3779734722239007105e-3, 1e-14,"jauPmat00", "13");
3188 
3189        vvd(rbp[1][0], -0.8695405990410863719e-3, 1e-14,"jauPmat00", "21");
3190        vvd(rbp[1][1], 0.9999996219494925900, 1e-12,"jauPmat00", "22");
3191        vvd(rbp[1][2], -0.1360775820404982209e-6, 1e-14,"jauPmat00", "23");
3192 
3193        vvd(rbp[2][0], -0.3779734476558184991e-3, 1e-14,"jauPmat00", "31");
3194        vvd(rbp[2][1], -0.1925857585832024058e-6, 1e-14,"jauPmat00", "32");
3195        vvd(rbp[2][2], 0.9999999285680153377, 1e-12,"jauPmat00", "33");
3196 
3197     }
3198 
3199     @Test
3200     public void t_pmat06()
3201     
3202 
3203 
3204 
3205 
3206 
3207 
3208 
3209 
3210 
3211 
3212     {
3213        double rbp[][] = new double[3][3];
3214 
3215 
3216        rbp = jauPmat06(2400000.5, 50123.9999);
3217 
3218        vvd(rbp[0][0], 0.9999995505176007047, 1e-12,"jauPmat06", "11");
3219        vvd(rbp[0][1], 0.8695404617348208406e-3, 1e-14,"jauPmat06", "12");
3220        vvd(rbp[0][2], 0.3779735201865589104e-3, 1e-14,"jauPmat06", "13");
3221 
3222        vvd(rbp[1][0], -0.8695404723772031414e-3, 1e-14,"jauPmat06", "21");
3223        vvd(rbp[1][1], 0.9999996219496027161, 1e-12,"jauPmat06", "22");
3224        vvd(rbp[1][2], -0.1361752497080270143e-6, 1e-14,"jauPmat06", "23");
3225 
3226        vvd(rbp[2][0], -0.3779734957034089490e-3, 1e-14,"jauPmat06", "31");
3227        vvd(rbp[2][1], -0.1924880847894457113e-6, 1e-14,"jauPmat06", "32");
3228        vvd(rbp[2][2], 0.9999999285679971958, 1e-12,"jauPmat06", "33");
3229 
3230     }
3231 
3232     @Test
3233     public void t_pmat76()
3234     
3235 
3236 
3237 
3238 
3239 
3240 
3241 
3242 
3243 
3244 
3245     {
3246        double rmatp[][] = new double[3][3];
3247 
3248 
3249        rmatp = jauPmat76(2400000.5, 50123.9999);
3250 
3251        vvd(rmatp[0][0], 0.9999995504328350733, 1e-12,"jauPmat76", "11");
3252        vvd(rmatp[0][1], 0.8696632209480960785e-3, 1e-14,"jauPmat76", "12");
3253        vvd(rmatp[0][2], 0.3779153474959888345e-3, 1e-14,"jauPmat76", "13");
3254 
3255        vvd(rmatp[1][0], -0.8696632209485112192e-3, 1e-14,"jauPmat76", "21");
3256        vvd(rmatp[1][1], 0.9999996218428560614, 1e-12,"jauPmat76", "22");
3257        vvd(rmatp[1][2], -0.1643284776111886407e-6, 1e-14,"jauPmat76", "23");
3258 
3259        vvd(rmatp[2][0], -0.3779153474950335077e-3, 1e-14,"jauPmat76", "31");
3260        vvd(rmatp[2][1], -0.1643306746147366896e-6, 1e-14,"jauPmat76", "32");
3261        vvd(rmatp[2][2], 0.9999999285899790119, 1e-12,"jauPmat76", "33");
3262 
3263     }
3264 
3265     @Test
3266     public void t_pm()
3267     
3268 
3269 
3270 
3271 
3272 
3273 
3274 
3275 
3276 
3277 
3278     {
3279        double p[] = new double[3], r;
3280 
3281 
3282        p[0] =  0.3;
3283        p[1] =  1.2;
3284        p[2] = -2.5;
3285 
3286        r = jauPm(p);
3287 
3288        vvd(r, 2.789265136196270604, 1e-12, "jauPm", "");
3289 
3290     }
3291 
3292     @Test
3293     public void t_pmp()
3294     
3295 
3296 
3297 
3298 
3299 
3300 
3301 
3302 
3303 
3304 
3305     {
3306        double a[] = new double[3], b[] = new double[3], amb[] = new double[3];
3307 
3308 
3309        a[0] = 2.0;
3310        a[1] = 2.0;
3311        a[2] = 3.0;
3312 
3313        b[0] = 1.0;
3314        b[1] = 3.0;
3315        b[2] = 4.0;
3316 
3317        amb = jauPmp(a, b);
3318 
3319        vvd(amb[0],  1.0, 1e-12, "jauPmp", "0");
3320        vvd(amb[1], -1.0, 1e-12, "jauPmp", "1");
3321        vvd(amb[2], -1.0, 1e-12, "jauPmp", "2");
3322 
3323     }
3324 
3325     @Test
3326     public void t_pn()
3327     
3328 
3329 
3330 
3331 
3332 
3333 
3334 
3335 
3336 
3337 
3338     {
3339        double p[] = new double[3];
3340 
3341 
3342        p[0] =  0.3;
3343        p[1] =  1.2;
3344        p[2] = -2.5;
3345 
3346        NormalizedVector mv = jauPn(p);
3347 
3348        vvd(mv.r, 2.789265136196270604, 1e-12, "jauPn", "r");
3349 
3350        vvd(mv.u[0], 0.1075552109073112058, 1e-12, "jauPn", "u1");
3351        vvd(mv.u[1], 0.4302208436292448232, 1e-12, "jauPn", "u2");
3352        vvd(mv.u[2], -0.8962934242275933816, 1e-12, "jauPn", "u3");
3353 
3354     }
3355 
3356     @Test
3357     public void t_pn00()
3358     
3359 
3360 
3361 
3362 
3363 
3364 
3365 
3366 
3367 
3368 
3369     {
3370        double dpsi, deps;
3371 
3372        dpsi = -0.9632552291149335877e-5;
3373        deps =  0.4063197106621141414e-4;
3374 
3375        PrecessionNutation pn = jauPn00(2400000.5, 53736.0, dpsi, deps);
3376 
3377        vvd(pn.epsa, 0.4090791789404229916, 1e-12, "jauPn00", "epsa");
3378 
3379        vvd(pn.rb[0][0], 0.9999999999999942498, 1e-12,"jauPn00", "rb11");
3380        vvd(pn.rb[0][1], -0.7078279744199196626e-7, 1e-18,"jauPn00", "rb12");
3381        vvd(pn.rb[0][2], 0.8056217146976134152e-7, 1e-18,"jauPn00", "rb13");
3382 
3383        vvd(pn.rb[1][0], 0.7078279477857337206e-7, 1e-18,"jauPn00", "rb21");
3384        vvd(pn.rb[1][1], 0.9999999999999969484, 1e-12,"jauPn00", "rb22");
3385        vvd(pn.rb[1][2], 0.3306041454222136517e-7, 1e-18,"jauPn00", "rb23");
3386 
3387        vvd(pn.rb[2][0], -0.8056217380986972157e-7, 1e-18,"jauPn00", "rb31");
3388        vvd(pn.rb[2][1], -0.3306040883980552500e-7, 1e-18,"jauPn00", "rb32");
3389        vvd(pn.rb[2][2], 0.9999999999999962084, 1e-12,"jauPn00", "rb33");
3390 
3391        vvd(pn.rp[0][0], 0.9999989300532289018, 1e-12,"jauPn00", "rp11");
3392        vvd(pn.rp[0][1], -0.1341647226791824349e-2, 1e-14,"jauPn00", "rp12");
3393        vvd(pn.rp[0][2], -0.5829880927190296547e-3, 1e-14,"jauPn00", "rp13");
3394 
3395        vvd(pn.rp[1][0], 0.1341647231069759008e-2, 1e-14,"jauPn00", "rp21");
3396        vvd(pn.rp[1][1], 0.9999990999908750433, 1e-12,"jauPn00", "rp22");
3397        vvd(pn.rp[1][2], -0.3837444441583715468e-6, 1e-14,"jauPn00", "rp23");
3398 
3399        vvd(pn.rp[2][0], 0.5829880828740957684e-3, 1e-14,"jauPn00", "rp31");
3400        vvd(pn.rp[2][1], -0.3984203267708834759e-6, 1e-14,"jauPn00", "rp32");
3401        vvd(pn.rp[2][2], 0.9999998300623538046, 1e-12,"jauPn00", "rp33");
3402 
3403        vvd(pn.rbp[0][0], 0.9999989300052243993, 1e-12,"jauPn00", "rbp11");
3404        vvd(pn.rbp[0][1], -0.1341717990239703727e-2, 1e-14,"jauPn00", "rbp12");
3405        vvd(pn.rbp[0][2], -0.5829075749891684053e-3, 1e-14,"jauPn00", "rbp13");
3406 
3407        vvd(pn.rbp[1][0], 0.1341718013831739992e-2, 1e-14,"jauPn00", "rbp21");
3408        vvd(pn.rbp[1][1], 0.9999990998959191343, 1e-12,"jauPn00", "rbp22");
3409        vvd(pn.rbp[1][2], -0.3505759733565421170e-6, 1e-14,"jauPn00", "rbp23");
3410 
3411        vvd(pn.rbp[2][0], 0.5829075206857717883e-3, 1e-14,"jauPn00", "rbp31");
3412        vvd(pn.rbp[2][1], -0.4315219955198608970e-6, 1e-14,"jauPn00", "rbp32");
3413        vvd(pn.rbp[2][2], 0.9999998301093036269, 1e-12,"jauPn00", "rbp33");
3414 
3415        vvd(pn.rn[0][0], 0.9999999999536069682, 1e-12,"jauPn00", "rn11");
3416        vvd(pn.rn[0][1], 0.8837746144872140812e-5, 1e-16,"jauPn00", "rn12");
3417        vvd(pn.rn[0][2], 0.3831488838252590008e-5, 1e-16,"jauPn00", "rn13");
3418 
3419        vvd(pn.rn[1][0], -0.8837590456633197506e-5, 1e-16,"jauPn00", "rn21");
3420        vvd(pn.rn[1][1], 0.9999999991354692733, 1e-12,"jauPn00", "rn22");
3421        vvd(pn.rn[1][2], -0.4063198798559573702e-4, 1e-16,"jauPn00", "rn23");
3422 
3423        vvd(pn.rn[2][0], -0.3831847930135328368e-5, 1e-16,"jauPn00", "rn31");
3424        vvd(pn.rn[2][1], 0.4063195412258150427e-4, 1e-16,"jauPn00", "rn32");
3425        vvd(pn.rn[2][2], 0.9999999991671806225, 1e-12,"jauPn00", "rn33");
3426 
3427        vvd(pn.rbpn[0][0], 0.9999989440499982806, 1e-12,"jauPn00", "rbpn11");
3428        vvd(pn.rbpn[0][1], -0.1332880253640848301e-2, 1e-14,"jauPn00", "rbpn12");
3429        vvd(pn.rbpn[0][2], -0.5790760898731087295e-3, 1e-14,"jauPn00", "rbpn13");
3430 
3431        vvd(pn.rbpn[1][0], 0.1332856746979948745e-2, 1e-14,"jauPn00", "rbpn21");
3432        vvd(pn.rbpn[1][1], 0.9999991109064768883, 1e-12,"jauPn00", "rbpn22");
3433        vvd(pn.rbpn[1][2], -0.4097740555723063806e-4, 1e-14,"jauPn00", "rbpn23");
3434 
3435        vvd(pn.rbpn[2][0], 0.5791301929950205000e-3, 1e-14,"jauPn00", "rbpn31");
3436        vvd(pn.rbpn[2][1], 0.4020553681373702931e-4, 1e-14,"jauPn00", "rbpn32");
3437        vvd(pn.rbpn[2][2], 0.9999998314958529887, 1e-12,"jauPn00", "rbpn33");
3438 
3439     }
3440 
3441     @Test
3442     public void t_pn00a()
3443     
3444 
3445 
3446 
3447 
3448 
3449 
3450 
3451 
3452 
3453 
3454     {
3455 
3456 
3457        PrecessionNutation pn = jauPn00a(2400000.5, 53736.0);
3458                
3459 
3460        vvd(pn.nut.dpsi, -0.9630909107115518431e-5, 1e-12,"jauPn00a", "dpsi");
3461        vvd(pn.nut.deps,  0.4063239174001678710e-4, 1e-12,"jauPn00a", "deps");
3462        vvd(pn.epsa,  0.4090791789404229916, 1e-12, "jauPn00a", "epsa");
3463 
3464        vvd(pn.rb[0][0], 0.9999999999999942498, 1e-12,"jauPn00a", "rb11");
3465        vvd(pn.rb[0][1], -0.7078279744199196626e-7, 1e-16,"jauPn00a", "rb12");
3466        vvd(pn.rb[0][2], 0.8056217146976134152e-7, 1e-16,"jauPn00a", "rb13");
3467 
3468        vvd(pn.rb[1][0], 0.7078279477857337206e-7, 1e-16,"jauPn00a", "rb21");
3469        vvd(pn.rb[1][1], 0.9999999999999969484, 1e-12,"jauPn00a", "rb22");
3470        vvd(pn.rb[1][2], 0.3306041454222136517e-7, 1e-16,"jauPn00a", "rb23");
3471 
3472        vvd(pn.rb[2][0], -0.8056217380986972157e-7, 1e-16,"jauPn00a", "rb31");
3473        vvd(pn.rb[2][1], -0.3306040883980552500e-7, 1e-16,"jauPn00a", "rb32");
3474        vvd(pn.rb[2][2], 0.9999999999999962084, 1e-12,"jauPn00a", "rb33");
3475 
3476        vvd(pn.rp[0][0], 0.9999989300532289018, 1e-12,"jauPn00a", "rp11");
3477        vvd(pn.rp[0][1], -0.1341647226791824349e-2, 1e-14,"jauPn00a", "rp12");
3478        vvd(pn.rp[0][2], -0.5829880927190296547e-3, 1e-14,"jauPn00a", "rp13");
3479 
3480        vvd(pn.rp[1][0], 0.1341647231069759008e-2, 1e-14,"jauPn00a", "rp21");
3481        vvd(pn.rp[1][1], 0.9999990999908750433, 1e-12,"jauPn00a", "rp22");
3482        vvd(pn.rp[1][2], -0.3837444441583715468e-6, 1e-14,"jauPn00a", "rp23");
3483 
3484        vvd(pn.rp[2][0], 0.5829880828740957684e-3, 1e-14,"jauPn00a", "rp31");
3485        vvd(pn.rp[2][1], -0.3984203267708834759e-6, 1e-14,"jauPn00a", "rp32");
3486        vvd(pn.rp[2][2], 0.9999998300623538046, 1e-12,"jauPn00a", "rp33");
3487 
3488        vvd(pn.rbp[0][0], 0.9999989300052243993, 1e-12,"jauPn00a", "rbp11");
3489        vvd(pn.rbp[0][1], -0.1341717990239703727e-2, 1e-14,"jauPn00a", "rbp12");
3490        vvd(pn.rbp[0][2], -0.5829075749891684053e-3, 1e-14,"jauPn00a", "rbp13");
3491 
3492        vvd(pn.rbp[1][0], 0.1341718013831739992e-2, 1e-14,"jauPn00a", "rbp21");
3493        vvd(pn.rbp[1][1], 0.9999990998959191343, 1e-12,"jauPn00a", "rbp22");
3494        vvd(pn.rbp[1][2], -0.3505759733565421170e-6, 1e-14,"jauPn00a", "rbp23");
3495 
3496        vvd(pn.rbp[2][0], 0.5829075206857717883e-3, 1e-14,"jauPn00a", "rbp31");
3497        vvd(pn.rbp[2][1], -0.4315219955198608970e-6, 1e-14,"jauPn00a", "rbp32");
3498        vvd(pn.rbp[2][2], 0.9999998301093036269, 1e-12,"jauPn00a", "rbp33");
3499 
3500        vvd(pn.rn[0][0], 0.9999999999536227949, 1e-12,"jauPn00a", "rn11");
3501        vvd(pn.rn[0][1], 0.8836238544090873336e-5, 1e-14,"jauPn00a", "rn12");
3502        vvd(pn.rn[0][2], 0.3830835237722400669e-5, 1e-14,"jauPn00a", "rn13");
3503 
3504        vvd(pn.rn[1][0], -0.8836082880798569274e-5, 1e-14,"jauPn00a", "rn21");
3505        vvd(pn.rn[1][1], 0.9999999991354655028, 1e-12,"jauPn00a", "rn22");
3506        vvd(pn.rn[1][2], -0.4063240865362499850e-4, 1e-14,"jauPn00a", "rn23");
3507 
3508        vvd(pn.rn[2][0], -0.3831194272065995866e-5, 1e-14,"jauPn00a", "rn31");
3509        vvd(pn.rn[2][1], 0.4063237480216291775e-4, 1e-14,"jauPn00a", "rn32");
3510        vvd(pn.rn[2][2], 0.9999999991671660338, 1e-12,"jauPn00a", "rn33");
3511 
3512        vvd(pn.rbpn[0][0], 0.9999989440476103435, 1e-12,"jauPn00a", "rbpn11");
3513        vvd(pn.rbpn[0][1], -0.1332881761240011763e-2, 1e-14,"jauPn00a", "rbpn12");
3514        vvd(pn.rbpn[0][2], -0.5790767434730085751e-3, 1e-14,"jauPn00a", "rbpn13");
3515 
3516        vvd(pn.rbpn[1][0], 0.1332858254308954658e-2, 1e-14,"jauPn00a", "rbpn21");
3517        vvd(pn.rbpn[1][1], 0.9999991109044505577, 1e-12,"jauPn00a", "rbpn22");
3518        vvd(pn.rbpn[1][2], -0.4097782710396580452e-4, 1e-14,"jauPn00a", "rbpn23");
3519 
3520        vvd(pn.rbpn[2][0], 0.5791308472168152904e-3, 1e-14,"jauPn00a", "rbpn31");
3521        vvd(pn.rbpn[2][1], 0.4020595661591500259e-4, 1e-14,"jauPn00a", "rbpn32");
3522        vvd(pn.rbpn[2][2], 0.9999998314954572304, 1e-12,"jauPn00a", "rbpn33");
3523 
3524     }
3525 
3526     @Test
3527     public void t_pn00b()
3528     
3529 
3530 
3531 
3532 
3533 
3534 
3535 
3536 
3537 
3538 
3539     {
3540 
3541        PrecessionNutation pn = jauPn00b(2400000.5, 53736.0);
3542 
3543        vvd(pn.nut.dpsi, -0.9632552291148362783e-5, 1e-12,"jauPn00b", "dpsi");
3544        vvd(pn.nut.deps,  0.4063197106621159367e-4, 1e-12,"jauPn00b", "deps");
3545        vvd(pn.epsa,  0.4090791789404229916, 1e-12, "jauPn00b", "epsa");
3546 
3547        vvd(pn.rb[0][0], 0.9999999999999942498, 1e-12,"jauPn00b", "rb11");
3548        vvd(pn.rb[0][1], -0.7078279744199196626e-7, 1e-16,"jauPn00b", "rb12");
3549        vvd(pn.rb[0][2], 0.8056217146976134152e-7, 1e-16,"jauPn00b", "rb13");
3550 
3551        vvd(pn.rb[1][0], 0.7078279477857337206e-7, 1e-16,"jauPn00b", "rb21");
3552        vvd(pn.rb[1][1], 0.9999999999999969484, 1e-12,"jauPn00b", "rb22");
3553        vvd(pn.rb[1][2], 0.3306041454222136517e-7, 1e-16,"jauPn00b", "rb23");
3554 
3555        vvd(pn.rb[2][0], -0.8056217380986972157e-7, 1e-16,"jauPn00b", "rb31");
3556        vvd(pn.rb[2][1], -0.3306040883980552500e-7, 1e-16,"jauPn00b", "rb32");
3557        vvd(pn.rb[2][2], 0.9999999999999962084, 1e-12,"jauPn00b", "rb33");
3558 
3559        vvd(pn.rp[0][0], 0.9999989300532289018, 1e-12,"jauPn00b", "rp11");
3560        vvd(pn.rp[0][1], -0.1341647226791824349e-2, 1e-14,"jauPn00b", "rp12");
3561        vvd(pn.rp[0][2], -0.5829880927190296547e-3, 1e-14,"jauPn00b", "rp13");
3562 
3563        vvd(pn.rp[1][0], 0.1341647231069759008e-2, 1e-14,"jauPn00b", "rp21");
3564        vvd(pn.rp[1][1], 0.9999990999908750433, 1e-12,"jauPn00b", "rp22");
3565        vvd(pn.rp[1][2], -0.3837444441583715468e-6, 1e-14,"jauPn00b", "rp23");
3566 
3567        vvd(pn.rp[2][0], 0.5829880828740957684e-3, 1e-14,"jauPn00b", "rp31");
3568        vvd(pn.rp[2][1], -0.3984203267708834759e-6, 1e-14,"jauPn00b", "rp32");
3569        vvd(pn.rp[2][2], 0.9999998300623538046, 1e-12,"jauPn00b", "rp33");
3570 
3571        vvd(pn.rbp[0][0], 0.9999989300052243993, 1e-12,"jauPn00b", "rbp11");
3572        vvd(pn.rbp[0][1], -0.1341717990239703727e-2, 1e-14,"jauPn00b", "rbp12");
3573        vvd(pn.rbp[0][2], -0.5829075749891684053e-3, 1e-14,"jauPn00b", "rbp13");
3574 
3575        vvd(pn.rbp[1][0], 0.1341718013831739992e-2, 1e-14,"jauPn00b", "rbp21");
3576        vvd(pn.rbp[1][1], 0.9999990998959191343, 1e-12,"jauPn00b", "rbp22");
3577        vvd(pn.rbp[1][2], -0.3505759733565421170e-6, 1e-14,"jauPn00b", "rbp23");
3578 
3579        vvd(pn.rbp[2][0], 0.5829075206857717883e-3, 1e-14,"jauPn00b", "rbp31");
3580        vvd(pn.rbp[2][1], -0.4315219955198608970e-6, 1e-14,"jauPn00b", "rbp32");
3581        vvd(pn.rbp[2][2], 0.9999998301093036269, 1e-12,"jauPn00b", "rbp33");
3582 
3583        vvd(pn.rn[0][0], 0.9999999999536069682, 1e-12,"jauPn00b", "rn11");
3584        vvd(pn.rn[0][1], 0.8837746144871248011e-5, 1e-14,"jauPn00b", "rn12");
3585        vvd(pn.rn[0][2], 0.3831488838252202945e-5, 1e-14,"jauPn00b", "rn13");
3586 
3587        vvd(pn.rn[1][0], -0.8837590456632304720e-5, 1e-14,"jauPn00b", "rn21");
3588        vvd(pn.rn[1][1], 0.9999999991354692733, 1e-12,"jauPn00b", "rn22");
3589        vvd(pn.rn[1][2], -0.4063198798559591654e-4, 1e-14,"jauPn00b", "rn23");
3590 
3591        vvd(pn.rn[2][0], -0.3831847930134941271e-5, 1e-14,"jauPn00b", "rn31");
3592        vvd(pn.rn[2][1], 0.4063195412258168380e-4, 1e-14,"jauPn00b", "rn32");
3593        vvd(pn.rn[2][2], 0.9999999991671806225, 1e-12,"jauPn00b", "rn33");
3594 
3595        vvd(pn.rbpn[0][0], 0.9999989440499982806, 1e-12,"jauPn00b", "rbpn11");
3596        vvd(pn.rbpn[0][1], -0.1332880253640849194e-2, 1e-14,"jauPn00b", "rbpn12");
3597        vvd(pn.rbpn[0][2], -0.5790760898731091166e-3, 1e-14,"jauPn00b", "rbpn13");
3598 
3599        vvd(pn.rbpn[1][0], 0.1332856746979949638e-2, 1e-14,"jauPn00b", "rbpn21");
3600        vvd(pn.rbpn[1][1], 0.9999991109064768883, 1e-12,"jauPn00b", "rbpn22");
3601        vvd(pn.rbpn[1][2], -0.4097740555723081811e-4, 1e-14,"jauPn00b", "rbpn23");
3602 
3603        vvd(pn.rbpn[2][0], 0.5791301929950208873e-3, 1e-14,"jauPn00b", "rbpn31");
3604        vvd(pn.rbpn[2][1], 0.4020553681373720832e-4, 1e-14,"jauPn00b", "rbpn32");
3605        vvd(pn.rbpn[2][2], 0.9999998314958529887, 1e-12,"jauPn00b", "rbpn33");
3606 
3607     }
3608 
3609     @Test
3610     public void t_pn06a()
3611     
3612 
3613 
3614 
3615 
3616 
3617 
3618 
3619 
3620 
3621 
3622     {
3623  
3624 
3625        PrecessionNutation pn = jauPn06a(2400000.5, 53736.0);
3626 
3627        vvd(pn.nut.dpsi, -0.9630912025820308797e-5, 1e-12,"jauPn06a", "dpsi");
3628        vvd(pn.nut.deps,  0.4063238496887249798e-4, 1e-12,"jauPn06a", "deps");
3629        vvd(pn.epsa,  0.4090789763356509926, 1e-12, "jauPn06a", "epsa");
3630 
3631        vvd(pn.rb[0][0], 0.9999999999999942497, 1e-12,"jauPn06a", "rb11");
3632        vvd(pn.rb[0][1], -0.7078368960971557145e-7, 1e-14,"jauPn06a", "rb12");
3633        vvd(pn.rb[0][2], 0.8056213977613185606e-7, 1e-14,"jauPn06a", "rb13");
3634 
3635        vvd(pn.rb[1][0], 0.7078368694637674333e-7, 1e-14,"jauPn06a", "rb21");
3636        vvd(pn.rb[1][1], 0.9999999999999969484, 1e-12,"jauPn06a", "rb22");
3637        vvd(pn.rb[1][2], 0.3305943742989134124e-7, 1e-14,"jauPn06a", "rb23");
3638 
3639        vvd(pn.rb[2][0], -0.8056214211620056792e-7, 1e-14,"jauPn06a", "rb31");
3640        vvd(pn.rb[2][1], -0.3305943172740586950e-7, 1e-14,"jauPn06a", "rb32");
3641        vvd(pn.rb[2][2], 0.9999999999999962084, 1e-12,"jauPn06a", "rb33");
3642 
3643        vvd(pn.rp[0][0], 0.9999989300536854831, 1e-12,"jauPn06a", "rp11");
3644        vvd(pn.rp[0][1], -0.1341646886204443795e-2, 1e-14,"jauPn06a", "rp12");
3645        vvd(pn.rp[0][2], -0.5829880933488627759e-3, 1e-14,"jauPn06a", "rp13");
3646 
3647        vvd(pn.rp[1][0], 0.1341646890569782183e-2, 1e-14,"jauPn06a", "rp21");
3648        vvd(pn.rp[1][1], 0.9999990999913319321, 1e-12,"jauPn06a", "rp22");
3649        vvd(pn.rp[1][2], -0.3835944216374477457e-6, 1e-14,"jauPn06a", "rp23");
3650 
3651        vvd(pn.rp[2][0], 0.5829880833027867368e-3, 1e-14,"jauPn06a", "rp31");
3652        vvd(pn.rp[2][1], -0.3985701514686976112e-6, 1e-14,"jauPn06a", "rp32");
3653        vvd(pn.rp[2][2], 0.9999998300623534950, 1e-12,"jauPn06a", "rp33");
3654 
3655        vvd(pn.rbp[0][0], 0.9999989300056797893, 1e-12,"jauPn06a", "rbp11");
3656        vvd(pn.rbp[0][1], -0.1341717650545059598e-2, 1e-14,"jauPn06a", "rbp12");
3657        vvd(pn.rbp[0][2], -0.5829075756493728856e-3, 1e-14,"jauPn06a", "rbp13");
3658 
3659        vvd(pn.rbp[1][0], 0.1341717674223918101e-2, 1e-14,"jauPn06a", "rbp21");
3660        vvd(pn.rbp[1][1], 0.9999990998963748448, 1e-12,"jauPn06a", "rbp22");
3661        vvd(pn.rbp[1][2], -0.3504269280170069029e-6, 1e-14,"jauPn06a", "rbp23");
3662 
3663        vvd(pn.rbp[2][0], 0.5829075211461454599e-3, 1e-14,"jauPn06a", "rbp31");
3664        vvd(pn.rbp[2][1], -0.4316708436255949093e-6, 1e-14,"jauPn06a", "rbp32");
3665        vvd(pn.rbp[2][2], 0.9999998301093032943, 1e-12,"jauPn06a", "rbp33");
3666 
3667        vvd(pn.rn[0][0], 0.9999999999536227668, 1e-12,"jauPn06a", "rn11");
3668        vvd(pn.rn[0][1], 0.8836241998111535233e-5, 1e-14,"jauPn06a", "rn12");
3669        vvd(pn.rn[0][2], 0.3830834608415287707e-5, 1e-14,"jauPn06a", "rn13");
3670 
3671        vvd(pn.rn[1][0], -0.8836086334870740138e-5, 1e-14,"jauPn06a", "rn21");
3672        vvd(pn.rn[1][1], 0.9999999991354657474, 1e-12,"jauPn06a", "rn22");
3673        vvd(pn.rn[1][2], -0.4063240188248455065e-4, 1e-14,"jauPn06a", "rn23");
3674 
3675        vvd(pn.rn[2][0], -0.3831193642839398128e-5, 1e-14,"jauPn06a", "rn31");
3676        vvd(pn.rn[2][1], 0.4063236803101479770e-4, 1e-14,"jauPn06a", "rn32");
3677        vvd(pn.rn[2][2], 0.9999999991671663114, 1e-12,"jauPn06a", "rn33");
3678 
3679        vvd(pn.rbpn[0][0], 0.9999989440480669738, 1e-12,"jauPn06a", "rbpn11");
3680        vvd(pn.rbpn[0][1], -0.1332881418091915973e-2, 1e-14,"jauPn06a", "rbpn12");
3681        vvd(pn.rbpn[0][2], -0.5790767447612042565e-3, 1e-14,"jauPn06a", "rbpn13");
3682 
3683        vvd(pn.rbpn[1][0], 0.1332857911250989133e-2, 1e-14,"jauPn06a", "rbpn21");
3684        vvd(pn.rbpn[1][1], 0.9999991109049141908, 1e-12,"jauPn06a", "rbpn22");
3685        vvd(pn.rbpn[1][2], -0.4097767128546784878e-4, 1e-14,"jauPn06a", "rbpn23");
3686 
3687        vvd(pn.rbpn[2][0], 0.5791308482835292617e-3, 1e-14,"jauPn06a", "rbpn31");
3688        vvd(pn.rbpn[2][1], 0.4020580099454020310e-4, 1e-14,"jauPn06a", "rbpn32");
3689        vvd(pn.rbpn[2][2], 0.9999998314954628695, 1e-12,"jauPn06a", "rbpn33");
3690 
3691     }
3692 
3693     @Test
3694     public void t_pn06()
3695     
3696 
3697 
3698 
3699 
3700 
3701 
3702 
3703 
3704 
3705 
3706     {
3707        double dpsi, deps;
3708 
3709        dpsi = -0.9632552291149335877e-5;
3710        deps =  0.4063197106621141414e-4;
3711 
3712        PrecessionNutation pn = jauPn06(2400000.5, 53736.0, dpsi, deps);
3713 
3714        vvd(pn.epsa, 0.4090789763356509926, 1e-12, "jauPn06", "epsa");
3715 
3716        vvd(pn.rb[0][0], 0.9999999999999942497, 1e-12,"jauPn06", "rb11");
3717        vvd(pn.rb[0][1], -0.7078368960971557145e-7, 1e-14,"jauPn06", "rb12");
3718        vvd(pn.rb[0][2], 0.8056213977613185606e-7, 1e-14,"jauPn06", "rb13");
3719 
3720        vvd(pn.rb[1][0], 0.7078368694637674333e-7, 1e-14,"jauPn06", "rb21");
3721        vvd(pn.rb[1][1], 0.9999999999999969484, 1e-12,"jauPn06", "rb22");
3722        vvd(pn.rb[1][2], 0.3305943742989134124e-7, 1e-14,"jauPn06", "rb23");
3723 
3724        vvd(pn.rb[2][0], -0.8056214211620056792e-7, 1e-14,"jauPn06", "rb31");
3725        vvd(pn.rb[2][1], -0.3305943172740586950e-7, 1e-14,"jauPn06", "rb32");
3726        vvd(pn.rb[2][2], 0.9999999999999962084, 1e-12,"jauPn06", "rb33");
3727 
3728        vvd(pn.rp[0][0], 0.9999989300536854831, 1e-12,"jauPn06", "rp11");
3729        vvd(pn.rp[0][1], -0.1341646886204443795e-2, 1e-14,"jauPn06", "rp12");
3730        vvd(pn.rp[0][2], -0.5829880933488627759e-3, 1e-14,"jauPn06", "rp13");
3731 
3732        vvd(pn.rp[1][0], 0.1341646890569782183e-2, 1e-14,"jauPn06", "rp21");
3733        vvd(pn.rp[1][1], 0.9999990999913319321, 1e-12,"jauPn06", "rp22");
3734        vvd(pn.rp[1][2], -0.3835944216374477457e-6, 1e-14,"jauPn06", "rp23");
3735 
3736        vvd(pn.rp[2][0], 0.5829880833027867368e-3, 1e-14,"jauPn06", "rp31");
3737        vvd(pn.rp[2][1], -0.3985701514686976112e-6, 1e-14,"jauPn06", "rp32");
3738        vvd(pn.rp[2][2], 0.9999998300623534950, 1e-12,"jauPn06", "rp33");
3739 
3740        vvd(pn.rbp[0][0], 0.9999989300056797893, 1e-12,"jauPn06", "rbp11");
3741        vvd(pn.rbp[0][1], -0.1341717650545059598e-2, 1e-14,"jauPn06", "rbp12");
3742        vvd(pn.rbp[0][2], -0.5829075756493728856e-3, 1e-14,"jauPn06", "rbp13");
3743 
3744        vvd(pn.rbp[1][0], 0.1341717674223918101e-2, 1e-14,"jauPn06", "rbp21");
3745        vvd(pn.rbp[1][1], 0.9999990998963748448, 1e-12,"jauPn06", "rbp22");
3746        vvd(pn.rbp[1][2], -0.3504269280170069029e-6, 1e-14,"jauPn06", "rbp23");
3747 
3748        vvd(pn.rbp[2][0], 0.5829075211461454599e-3, 1e-14,"jauPn06", "rbp31");
3749        vvd(pn.rbp[2][1], -0.4316708436255949093e-6, 1e-14,"jauPn06", "rbp32");
3750        vvd(pn.rbp[2][2], 0.9999998301093032943, 1e-12,"jauPn06", "rbp33");
3751 
3752        vvd(pn.rn[0][0], 0.9999999999536069682, 1e-12,"jauPn06", "rn11");
3753        vvd(pn.rn[0][1], 0.8837746921149881914e-5, 1e-14,"jauPn06", "rn12");
3754        vvd(pn.rn[0][2], 0.3831487047682968703e-5, 1e-14,"jauPn06", "rn13");
3755 
3756        vvd(pn.rn[1][0], -0.8837591232983692340e-5, 1e-14,"jauPn06", "rn21");
3757        vvd(pn.rn[1][1], 0.9999999991354692664, 1e-12,"jauPn06", "rn22");
3758        vvd(pn.rn[1][2], -0.4063198798558931215e-4, 1e-14,"jauPn06", "rn23");
3759 
3760        vvd(pn.rn[2][0], -0.3831846139597250235e-5, 1e-14,"jauPn06", "rn31");
3761        vvd(pn.rn[2][1], 0.4063195412258792914e-4, 1e-14,"jauPn06", "rn32");
3762        vvd(pn.rn[2][2], 0.9999999991671806293, 1e-12,"jauPn06", "rn33");
3763 
3764        vvd(pn.rbpn[0][0], 0.9999989440504506688, 1e-12,"jauPn06", "rbpn11");
3765        vvd(pn.rbpn[0][1], -0.1332879913170492655e-2, 1e-14,"jauPn06", "rbpn12");
3766        vvd(pn.rbpn[0][2], -0.5790760923225655753e-3, 1e-14,"jauPn06", "rbpn13");
3767 
3768        vvd(pn.rbpn[1][0], 0.1332856406595754748e-2, 1e-14,"jauPn06", "rbpn21");
3769        vvd(pn.rbpn[1][1], 0.9999991109069366795, 1e-12,"jauPn06", "rbpn22");
3770        vvd(pn.rbpn[1][2], -0.4097725651142641812e-4, 1e-14,"jauPn06", "rbpn23");
3771 
3772        vvd(pn.rbpn[2][0], 0.5791301952321296716e-3, 1e-14,"jauPn06", "rbpn31");
3773        vvd(pn.rbpn[2][1], 0.4020538796195230577e-4, 1e-14,"jauPn06", "rbpn32");
3774        vvd(pn.rbpn[2][2], 0.9999998314958576778, 1e-12,"jauPn06", "rbpn33");
3775 
3776     }
3777 
3778     @Test
3779     public void t_pnm00a()
3780     
3781 
3782 
3783 
3784 
3785 
3786 
3787 
3788 
3789 
3790 
3791     {
3792        double rbpn[][] = new double[3][3];
3793 
3794 
3795        rbpn = jauPnm00a(2400000.5, 50123.9999);
3796 
3797        vvd(rbpn[0][0], 0.9999995832793134257, 1e-12,"jauPnm00a", "11");
3798        vvd(rbpn[0][1], 0.8372384254137809439e-3, 1e-14,"jauPnm00a", "12");
3799        vvd(rbpn[0][2], 0.3639684306407150645e-3, 1e-14,"jauPnm00a", "13");
3800 
3801        vvd(rbpn[1][0], -0.8372535226570394543e-3, 1e-14,"jauPnm00a", "21");
3802        vvd(rbpn[1][1], 0.9999996486491582471, 1e-12,"jauPnm00a", "22");
3803        vvd(rbpn[1][2], 0.4132915262664072381e-4, 1e-14,"jauPnm00a", "23");
3804 
3805        vvd(rbpn[2][0], -0.3639337004054317729e-3, 1e-14,"jauPnm00a", "31");
3806        vvd(rbpn[2][1], -0.4163386925461775873e-4, 1e-14,"jauPnm00a", "32");
3807        vvd(rbpn[2][2], 0.9999999329094390695, 1e-12,"jauPnm00a", "33");
3808 
3809     }
3810 
3811     @Test
3812     public void t_pnm00b()
3813     
3814 
3815 
3816 
3817 
3818 
3819 
3820 
3821 
3822 
3823 
3824     {
3825        double rbpn[][] = new double[3][3];
3826 
3827 
3828        rbpn = jauPnm00b(2400000.5, 50123.9999);
3829 
3830        vvd(rbpn[0][0], 0.9999995832776208280, 1e-12,"jauPnm00b", "11");
3831        vvd(rbpn[0][1], 0.8372401264429654837e-3, 1e-14,"jauPnm00b", "12");
3832        vvd(rbpn[0][2], 0.3639691681450271771e-3, 1e-14,"jauPnm00b", "13");
3833 
3834        vvd(rbpn[1][0], -0.8372552234147137424e-3, 1e-14,"jauPnm00b", "21");
3835        vvd(rbpn[1][1], 0.9999996486477686123, 1e-12,"jauPnm00b", "22");
3836        vvd(rbpn[1][2], 0.4132832190946052890e-4, 1e-14,"jauPnm00b", "23");
3837 
3838        vvd(rbpn[2][0], -0.3639344385341866407e-3, 1e-14,"jauPnm00b", "31");
3839        vvd(rbpn[2][1], -0.4163303977421522785e-4, 1e-14,"jauPnm00b", "32");
3840        vvd(rbpn[2][2], 0.9999999329092049734, 1e-12,"jauPnm00b", "33");
3841 
3842     }
3843 
3844     @Test
3845     public void t_pnm06a()
3846     
3847 
3848 
3849 
3850 
3851 
3852 
3853 
3854 
3855 
3856 
3857     {
3858        double rbpn[][] = new double[3][3];
3859 
3860 
3861        rbpn = jauPnm06a(2400000.5, 50123.9999);
3862 
3863        vvd(rbpn[0][0], 0.9999995832794205484, 1e-12,"jauPnm06a", "11");
3864        vvd(rbpn[0][1], 0.8372382772630962111e-3, 1e-14,"jauPnm06a", "12");
3865        vvd(rbpn[0][2], 0.3639684771140623099e-3, 1e-14,"jauPnm06a", "13");
3866 
3867        vvd(rbpn[1][0], -0.8372533744743683605e-3, 1e-14,"jauPnm06a", "21");
3868        vvd(rbpn[1][1], 0.9999996486492861646, 1e-12,"jauPnm06a", "22");
3869        vvd(rbpn[1][2], 0.4132905944611019498e-4, 1e-14,"jauPnm06a", "23");
3870 
3871        vvd(rbpn[2][0], -0.3639337469629464969e-3, 1e-14,"jauPnm06a", "31");
3872        vvd(rbpn[2][1], -0.4163377605910663999e-4, 1e-14,"jauPnm06a", "32");
3873        vvd(rbpn[2][2], 0.9999999329094260057, 1e-12,"jauPnm06a", "33");
3874 
3875     }
3876 
3877     @Test
3878     public void t_pnm80()
3879     
3880 
3881 
3882 
3883 
3884 
3885 
3886 
3887 
3888 
3889 
3890     {
3891        double rmatpn[][] = new double[3][3];
3892 
3893 
3894        rmatpn = jauPnm80(2400000.5, 50123.9999);
3895 
3896        vvd(rmatpn[0][0], 0.9999995831934611169, 1e-12,"jauPnm80", "11");
3897        vvd(rmatpn[0][1], 0.8373654045728124011e-3, 1e-14,"jauPnm80", "12");
3898        vvd(rmatpn[0][2], 0.3639121916933106191e-3, 1e-14,"jauPnm80", "13");
3899 
3900        vvd(rmatpn[1][0], -0.8373804896118301316e-3, 1e-14,"jauPnm80", "21");
3901        vvd(rmatpn[1][1], 0.9999996485439674092, 1e-12,"jauPnm80", "22");
3902        vvd(rmatpn[1][2], 0.4130202510421549752e-4, 1e-14,"jauPnm80", "23");
3903 
3904        vvd(rmatpn[2][0], -0.3638774789072144473e-3, 1e-14,"jauPnm80", "31");
3905        vvd(rmatpn[2][1], -0.4160674085851722359e-4, 1e-14,"jauPnm80", "32");
3906        vvd(rmatpn[2][2], 0.9999999329310274805, 1e-12,"jauPnm80", "33");
3907 
3908     }
3909 
3910     @Test
3911     public void t_pom00()
3912     
3913 
3914 
3915 
3916 
3917 
3918 
3919 
3920 
3921 
3922 
3923     {
3924        double xp, yp, sp, rpom[][] = new double[3][3];
3925 
3926 
3927        xp =  2.55060238e-7;
3928        yp =  1.860359247e-6;
3929        sp = -0.1367174580728891460e-10;
3930 
3931        rpom = jauPom00(xp, yp, sp);
3932 
3933        vvd(rpom[0][0], 0.9999999999999674721, 1e-12,"jauPom00", "11");
3934        vvd(rpom[0][1], -0.1367174580728846989e-10, 1e-16,"jauPom00", "12");
3935        vvd(rpom[0][2], 0.2550602379999972345e-6, 1e-16,"jauPom00", "13");
3936 
3937        vvd(rpom[1][0], 0.1414624947957029801e-10, 1e-16,"jauPom00", "21");
3938        vvd(rpom[1][1], 0.9999999999982695317, 1e-12,"jauPom00", "22");
3939        vvd(rpom[1][2], -0.1860359246998866389e-5, 1e-16,"jauPom00", "23");
3940 
3941        vvd(rpom[2][0], -0.2550602379741215021e-6, 1e-16,"jauPom00", "31");
3942        vvd(rpom[2][1], 0.1860359247002414021e-5, 1e-16,"jauPom00", "32");
3943        vvd(rpom[2][2], 0.9999999999982370039, 1e-12,"jauPom00", "33");
3944        
3945        double vec[]= {0,0,1};
3946        double vec2[] = jauRxp(rpom,vec);
3947        for (double d : vec2) {
3948         System.out.println(d);
3949     }
3950 
3951     }
3952 
3953     @Test
3954     public void t_ppp()
3955     
3956 
3957 
3958 
3959 
3960 
3961 
3962 
3963 
3964 
3965 
3966     {
3967        double a[] = new double[3], b[] = new double[3], apb[] = new double[3];
3968 
3969 
3970        a[0] = 2.0;
3971        a[1] = 2.0;
3972        a[2] = 3.0;
3973 
3974        b[0] = 1.0;
3975        b[1] = 3.0;
3976        b[2] = 4.0;
3977 
3978        apb = jauPpp(a, b);
3979 
3980        vvd(apb[0], 3.0, 1e-12, "jauPpp", "0");
3981        vvd(apb[1], 5.0, 1e-12, "jauPpp", "1");
3982        vvd(apb[2], 7.0, 1e-12, "jauPpp", "2");
3983 
3984     }
3985 
3986     @Test
3987     public void t_ppsp()
3988     
3989 
3990 
3991 
3992 
3993 
3994 
3995 
3996 
3997 
3998 
3999     {
4000        double a[] = new double[3], s, b[] = new double[3], apsb[] = new double[3];
4001 
4002 
4003        a[0] = 2.0;
4004        a[1] = 2.0;
4005        a[2] = 3.0;
4006 
4007        s = 5.0;
4008 
4009        b[0] = 1.0;
4010        b[1] = 3.0;
4011        b[2] = 4.0;
4012 
4013        apsb = jauPpsp(a, s, b);
4014 
4015        vvd(apsb[0], 7.0, 1e-12, "jauPpsp", "0");
4016        vvd(apsb[1], 17.0, 1e-12, "jauPpsp", "1");
4017        vvd(apsb[2], 23.0, 1e-12, "jauPpsp", "2");
4018 
4019     }
4020 
4021     @Test
4022     public void t_pr00()
4023     
4024 
4025 
4026 
4027 
4028 
4029 
4030 
4031 
4032 
4033 
4034     {
4035        PrecessionDeltaTerms nut = jauPr00(2400000.5, 53736);
4036 
4037        vvd(nut.dpsipr, -0.8716465172668347629e-7, 1e-22,"jauPr00", "dpsipr");
4038        vvd(nut.depspr, -0.7342018386722813087e-8, 1e-22,"jauPr00", "depspr");
4039 
4040     }
4041 
4042     @Test
4043     public void t_prec76()
4044     
4045 
4046 
4047 
4048 
4049 
4050 
4051 
4052 
4053 
4054 
4055     {
4056        double ep01, ep02, ep11, ep12;
4057 
4058 
4059        ep01 = 2400000.5;
4060        ep02 = 33282.0;
4061        ep11 = 2400000.5;
4062        ep12 = 51544.0;
4063 
4064        EulerAngles an = jauPrec76(ep01, ep02, ep11, ep12);
4065 
4066        vvd(an.zeta,  0.5588961642000161243e-2, 1e-12,"jauPrec76", "zeta");
4067        vvd(an.z,     0.5589922365870680624e-2, 1e-12,"jauPrec76", "z");
4068        vvd(an.theta, 0.4858945471687296760e-2, 1e-12,"jauPrec76", "theta");
4069 
4070     }
4071 
4072     @Test
4073     public void t_pv2p()
4074     
4075 
4076 
4077 
4078 
4079 
4080 
4081 
4082 
4083 
4084 
4085     {
4086        double pv[][] = new double[2][3], p[] = new double[3];
4087 
4088 
4089        pv[0][0] =  0.3;
4090        pv[0][1] =  1.2;
4091        pv[0][2] = -2.5;
4092 
4093        pv[1][0] = -0.5;
4094        pv[1][1] =  3.1;
4095        pv[1][2] =  0.9;
4096 
4097        p = jauPv2p(pv);
4098 
4099        vvd(p[0],  0.3, 0.0, "jauPv2p", "1");
4100        vvd(p[1],  1.2, 0.0, "jauPv2p", "2");
4101        vvd(p[2], -2.5, 0.0, "jauPv2p", "3");
4102 
4103     }
4104 
4105     @Test
4106     public void t_pv2s()
4107     
4108 
4109 
4110 
4111 
4112 
4113 
4114 
4115 
4116 
4117 
4118     {
4119        double pv[][] = new double[2][3];
4120 
4121 
4122        pv[0][0] = -0.4514964673880165;
4123        pv[0][1] =  0.03093394277342585;
4124        pv[0][2] =  0.05594668105108779;
4125 
4126        pv[1][0] =  1.292270850663260e-5;
4127        pv[1][1] =  2.652814182060692e-6;
4128        pv[1][2] =  2.568431853930293e-6;
4129 
4130        SphericalPositionVelocity pvs = jauPv2s(pv);
4131 
4132        vvd(pvs.pos.theta, 3.073185307179586515, 1e-12, "jauPv2s", "theta");
4133        vvd(pvs.pos.phi, 0.1229999999999999992, 1e-12, "jauPv2s", "phi");
4134        vvd(pvs.pos.r, 0.4559999999999999757, 1e-12, "jauPv2s", "r");
4135        vvd(pvs.vel.theta, -0.7800000000000000364e-5, 1e-16, "jauPv2s", "td");
4136        vvd(pvs.vel.phi, 0.9010000000000001639e-5, 1e-16, "jauPv2s", "pd");
4137        vvd(pvs.vel.r, -0.1229999999999999832e-4, 1e-16, "jauPv2s", "rd");
4138 
4139     }
4140 
4141     @Test
4142     public void t_pvdpv()
4143     
4144 
4145 
4146 
4147 
4148 
4149 
4150 
4151 
4152 
4153 
4154     {
4155        double a[][] = new double[2][3], b[][] = new double[2][3], adb[] = new double[2];
4156 
4157 
4158        a[0][0] = 2.0;
4159        a[0][1] = 2.0;
4160        a[0][2] = 3.0;
4161 
4162        a[1][0] = 6.0;
4163        a[1][1] = 0.0;
4164        a[1][2] = 4.0;
4165 
4166        b[0][0] = 1.0;
4167        b[0][1] = 3.0;
4168        b[0][2] = 4.0;
4169 
4170        b[1][0] = 0.0;
4171        b[1][1] = 2.0;
4172        b[1][2] = 8.0;
4173 
4174        adb = jauPvdpv(a, b);
4175 
4176        vvd(adb[0], 20.0, 1e-12, "jauPvdpv", "1");
4177        vvd(adb[1], 50.0, 1e-12, "jauPvdpv", "2");
4178 
4179     }
4180 
4181     @Test
4182     public void t_pvm()
4183     
4184 
4185 
4186 
4187 
4188 
4189 
4190 
4191 
4192 
4193 
4194     {
4195        double pv[][] = new double[2][3];
4196 
4197 
4198        pv[0][0] =  0.3;
4199        pv[0][1] =  1.2;
4200        pv[0][2] = -2.5;
4201 
4202        pv[1][0] =  0.45;
4203        pv[1][1] = -0.25;
4204        pv[1][2] =  1.1;
4205 
4206        PVModulus ret = jauPvm(pv);
4207 
4208        vvd(ret.r, 2.789265136196270604, 1e-12, "jauPvm", "r");
4209        vvd(ret.s, 1.214495780149111922, 1e-12, "jauPvm", "s");
4210 
4211     }
4212 
4213     @Test
4214     public void t_pvmpv()
4215     
4216 
4217 
4218 
4219 
4220 
4221 
4222 
4223 
4224 
4225 
4226     {
4227        double a[][] = new double[2][3], b[][] = new double[2][3], amb[][] = new double[2][3];
4228 
4229 
4230        a[0][0] = 2.0;
4231        a[0][1] = 2.0;
4232        a[0][2] = 3.0;
4233 
4234        a[1][0] = 5.0;
4235        a[1][1] = 6.0;
4236        a[1][2] = 3.0;
4237 
4238        b[0][0] = 1.0;
4239        b[0][1] = 3.0;
4240        b[0][2] = 4.0;
4241 
4242        b[1][0] = 3.0;
4243        b[1][1] = 2.0;
4244        b[1][2] = 1.0;
4245 
4246        amb = jauPvmpv(a, b);
4247 
4248        vvd(amb[0][0],  1.0, 1e-12, "jauPvmpv", "11");
4249        vvd(amb[0][1], -1.0, 1e-12, "jauPvmpv", "21");
4250        vvd(amb[0][2], -1.0, 1e-12, "jauPvmpv", "31");
4251 
4252        vvd(amb[1][0],  2.0, 1e-12, "jauPvmpv", "12");
4253        vvd(amb[1][1],  4.0, 1e-12, "jauPvmpv", "22");
4254        vvd(amb[1][2],  2.0, 1e-12, "jauPvmpv", "32");
4255 
4256     }
4257 
4258     @Test
4259     public void t_pvppv()
4260     
4261 
4262 
4263 
4264 
4265 
4266 
4267 
4268 
4269 
4270 
4271     {
4272        double a[][] = new double[2][3], b[][] = new double[2][3], apb[][] = new double[2][3];
4273 
4274 
4275        a[0][0] = 2.0;
4276        a[0][1] = 2.0;
4277        a[0][2] = 3.0;
4278 
4279        a[1][0] = 5.0;
4280        a[1][1] = 6.0;
4281        a[1][2] = 3.0;
4282 
4283        b[0][0] = 1.0;
4284        b[0][1] = 3.0;
4285        b[0][2] = 4.0;
4286 
4287        b[1][0] = 3.0;
4288        b[1][1] = 2.0;
4289        b[1][2] = 1.0;
4290 
4291        apb = jauPvppv(a, b);
4292 
4293        vvd(apb[0][0], 3.0, 1e-12, "jauPvppv", "p1");
4294        vvd(apb[0][1], 5.0, 1e-12, "jauPvppv", "p2");
4295        vvd(apb[0][2], 7.0, 1e-12, "jauPvppv", "p3");
4296 
4297        vvd(apb[1][0], 8.0, 1e-12, "jauPvppv", "v1");
4298        vvd(apb[1][1], 8.0, 1e-12, "jauPvppv", "v2");
4299        vvd(apb[1][2], 4.0, 1e-12, "jauPvppv", "v3");
4300 
4301     }
4302 
4303     @Test
4304     public void t_pvstar()
4305     
4306 
4307 
4308 
4309 
4310 
4311 
4312 
4313 
4314 
4315 
4316     {
4317        double pv[][] = new double[2][3];
4318 
4319 
4320        pv[0][0] =  126668.5912743160601;
4321        pv[0][1] =  2136.792716839935195;
4322        pv[0][2] = -245251.2339876830091;
4323 
4324        pv[1][0] = -0.4051854035740712739e-2;
4325        pv[1][1] = -0.6253919754866173866e-2;
4326        pv[1][2] =  0.1189353719774107189e-1;
4327 
4328        try {
4329            CatalogCoords cat = jauPvstar(pv);
4330 
4331            vvd(cat.pos.alpha, 0.1686756e-1, 1e-12, "jauPvstar", "ra");
4332            vvd(cat.pos.delta, -1.093989828, 1e-12, "jauPvstar", "dec");
4333            vvd(cat.pm.alpha, -0.1783235160000472788e-4, 1e-16, "jauPvstar", "pmr");
4334            vvd(cat.pm.delta, 0.2336024047000619347e-5, 1e-16, "jauPvstar", "pmd");
4335            vvd(cat.px, 0.74723, 1e-12, "jauPvstar", "px");
4336            vvd(cat.rv, -21.60000010107306010, 1e-11, "jauPvstar", "rv");
4337        } catch (JSOFAInternalError e) {
4338            fail(" internal exception");
4339        }
4340 
4341 
4342     }
4343 
4344     @Test
4345     public void t_pvu()
4346     
4347 
4348 
4349 
4350 
4351 
4352 
4353 
4354 
4355 
4356 
4357     {
4358        double pv[][] = new double[2][3], upv[][] = new double[2][3];
4359 
4360 
4361        pv[0][0] =  126668.5912743160734;
4362        pv[0][1] =  2136.792716839935565;
4363        pv[0][2] = -245251.2339876830229;
4364 
4365        pv[1][0] = -0.4051854035740713039e-2;
4366        pv[1][1] = -0.6253919754866175788e-2;
4367        pv[1][2] =  0.1189353719774107615e-1;
4368 
4369        upv = jauPvu(2920.0, pv);
4370 
4371        vvd(upv[0][0], 126656.7598605317105, 1e-6,"jauPvu", "p1");
4372        vvd(upv[0][1], 2118.531271155726332, 1e-8,"jauPvu", "p2");
4373        vvd(upv[0][2], -245216.5048590656190, 1e-6,"jauPvu", "p3");
4374 
4375        vvd(upv[1][0], -0.4051854035740713039e-2, 1e-12,"jauPvu", "v1");
4376        vvd(upv[1][1], -0.6253919754866175788e-2, 1e-12,"jauPvu", "v2");
4377        vvd(upv[1][2], 0.1189353719774107615e-1, 1e-12,"jauPvu", "v3");
4378 
4379     }
4380 
4381     @Test
4382     public void t_pvup()
4383     
4384 
4385 
4386 
4387 
4388 
4389 
4390 
4391 
4392 
4393 
4394     {
4395        double pv[][] = new double[2][3], p[] = new double[3];
4396 
4397 
4398        pv[0][0] =  126668.5912743160734;
4399        pv[0][1] =  2136.792716839935565;
4400        pv[0][2] = -245251.2339876830229;
4401 
4402        pv[1][0] = -0.4051854035740713039e-2;
4403        pv[1][1] = -0.6253919754866175788e-2;
4404        pv[1][2] =  0.1189353719774107615e-1;
4405 
4406        p = jauPvup(2920.0, pv);
4407 
4408        vvd(p[0],  126656.7598605317105,   1e-12, "jauPvup", "1");
4409        vvd(p[1],    2118.531271155726332, 1e-12, "jauPvup", "2");
4410        vvd(p[2], -245216.5048590656190,   1e-12, "jauPvup", "3");
4411 
4412     }
4413 
4414     @Test
4415     public void t_pvxpv()
4416     
4417 
4418 
4419 
4420 
4421 
4422 
4423 
4424 
4425 
4426 
4427     {
4428        double a[][] = new double[2][3], b[][] = new double[2][3], axb[][] = new double[2][3];
4429 
4430 
4431        a[0][0] = 2.0;
4432        a[0][1] = 2.0;
4433        a[0][2] = 3.0;
4434 
4435        a[1][0] = 6.0;
4436        a[1][1] = 0.0;
4437        a[1][2] = 4.0;
4438 
4439        b[0][0] = 1.0;
4440        b[0][1] = 3.0;
4441        b[0][2] = 4.0;
4442 
4443        b[1][0] = 0.0;
4444        b[1][1] = 2.0;
4445        b[1][2] = 8.0;
4446 
4447        axb = jauPvxpv(a, b);
4448 
4449        vvd(axb[0][0],  -1.0, 1e-12, "jauPvxpv", "p1");
4450        vvd(axb[0][1],  -5.0, 1e-12, "jauPvxpv", "p2");
4451        vvd(axb[0][2],   4.0, 1e-12, "jauPvxpv", "p3");
4452 
4453        vvd(axb[1][0],  -2.0, 1e-12, "jauPvxpv", "v1");
4454        vvd(axb[1][1], -36.0, 1e-12, "jauPvxpv", "v2");
4455        vvd(axb[1][2],  22.0, 1e-12, "jauPvxpv", "v3");
4456 
4457     }
4458 
4459     @Test
4460     public void t_pxp()
4461     
4462 
4463 
4464 
4465 
4466 
4467 
4468 
4469 
4470 
4471 
4472     {
4473        double a[] = new double[3], b[] = new double[3], axb[] = new double[3];
4474 
4475 
4476        a[0] = 2.0;
4477        a[1] = 2.0;
4478        a[2] = 3.0;
4479 
4480        b[0] = 1.0;
4481        b[1] = 3.0;
4482        b[2] = 4.0;
4483 
4484        axb = jauPxp(a, b);
4485 
4486        vvd(axb[0], -1.0, 1e-12, "jauPxp", "1");
4487        vvd(axb[1], -5.0, 1e-12, "jauPxp", "2");
4488        vvd(axb[2],  4.0, 1e-12, "jauPxp", "3");
4489 
4490     }
4491 
4492     @Test
4493     public void t_rm2v()
4494     
4495 
4496 
4497 
4498 
4499 
4500 
4501 
4502 
4503 
4504 
4505     {
4506        double r[][] = new double[3][3], w[] = new double[3];
4507 
4508 
4509        r[0][0] =  0.00;
4510        r[0][1] = -0.80;
4511        r[0][2] = -0.60;
4512 
4513        r[1][0] =  0.80;
4514        r[1][1] = -0.36;
4515        r[1][2] =  0.48;
4516 
4517        r[2][0] =  0.60;
4518        r[2][1] =  0.48;
4519        r[2][2] = -0.64;
4520 
4521        w = jauRm2v(r);
4522 
4523        vvd(w[0],  0.0,                  1e-12, "jauRm2v", "1");
4524        vvd(w[1],  1.413716694115406957, 1e-12, "jauRm2v", "2");
4525        vvd(w[2], -1.884955592153875943, 1e-12, "jauRm2v", "3");
4526 
4527     }
4528 
4529     @Test
4530     public void t_rv2m()
4531     
4532 
4533 
4534 
4535 
4536 
4537 
4538 
4539 
4540 
4541 
4542     {
4543        double w[] = new double[3], r[][] = new double[3][3];
4544 
4545 
4546        w[0] =  0.0;
4547        w[1] =  1.41371669;
4548        w[2] = -1.88495559;
4549 
4550        r = jauRv2m(w);
4551 
4552        vvd(r[0][0], -0.7071067782221119905, 1e-14, "jauRv2m", "11");
4553        vvd(r[0][1], -0.5656854276809129651, 1e-14, "jauRv2m", "12");
4554        vvd(r[0][2], -0.4242640700104211225, 1e-14, "jauRv2m", "13");
4555 
4556        vvd(r[1][0],  0.5656854276809129651, 1e-14, "jauRv2m", "21");
4557        vvd(r[1][1], -0.0925483394532274246, 1e-14, "jauRv2m", "22");
4558        vvd(r[1][2], -0.8194112531408833269, 1e-14, "jauRv2m", "23");
4559 
4560        vvd(r[2][0],  0.4242640700104211225, 1e-14, "jauRv2m", "31");
4561        vvd(r[2][1], -0.8194112531408833269, 1e-14, "jauRv2m", "32");
4562        vvd(r[2][2],  0.3854415612311154341, 1e-14, "jauRv2m", "33");
4563 
4564     }
4565 
4566     @Test
4567     public void t_rx()
4568     
4569 
4570 
4571 
4572 
4573 
4574 
4575 
4576 
4577 
4578 
4579     {
4580        double phi, r[][] = new double[3][3];
4581 
4582 
4583        phi = 0.3456789;
4584 
4585        r[0][0] = 2.0;
4586        r[0][1] = 3.0;
4587        r[0][2] = 2.0;
4588 
4589        r[1][0] = 3.0;
4590        r[1][1] = 2.0;
4591        r[1][2] = 3.0;
4592 
4593        r[2][0] = 3.0;
4594        r[2][1] = 4.0;
4595        r[2][2] = 5.0;
4596 
4597        jauRx(phi, r);
4598 
4599        vvd(r[0][0], 2.0, 0.0, "jauRx", "11");
4600        vvd(r[0][1], 3.0, 0.0, "jauRx", "12");
4601        vvd(r[0][2], 2.0, 0.0, "jauRx", "13");
4602 
4603        vvd(r[1][0], 3.839043388235612460, 1e-12, "jauRx", "21");
4604        vvd(r[1][1], 3.237033249594111899, 1e-12, "jauRx", "22");
4605        vvd(r[1][2], 4.516714379005982719, 1e-12, "jauRx", "23");
4606 
4607        vvd(r[2][0], 1.806030415924501684, 1e-12, "jauRx", "31");
4608        vvd(r[2][1], 3.085711545336372503, 1e-12, "jauRx", "32");
4609        vvd(r[2][2], 3.687721683977873065, 1e-12, "jauRx", "33");
4610 
4611     }
4612 
4613     @Test
4614     public void t_rxp()
4615     
4616 
4617 
4618 
4619 
4620 
4621 
4622 
4623 
4624 
4625 
4626     {
4627        double r[][] = new double[3][3], p[] = new double[3], rp[] = new double[3];
4628 
4629 
4630        r[0][0] = 2.0;
4631        r[0][1] = 3.0;
4632        r[0][2] = 2.0;
4633 
4634        r[1][0] = 3.0;
4635        r[1][1] = 2.0;
4636        r[1][2] = 3.0;
4637 
4638        r[2][0] = 3.0;
4639        r[2][1] = 4.0;
4640        r[2][2] = 5.0;
4641 
4642        p[0] = 0.2;
4643        p[1] = 1.5;
4644        p[2] = 0.1;
4645 
4646        rp = jauRxp(r, p);
4647 
4648        vvd(rp[0], 5.1, 1e-12, "jauRxp", "1");
4649        vvd(rp[1], 3.9, 1e-12, "jauRxp", "2");
4650        vvd(rp[2], 7.1, 1e-12, "jauRxp", "3");
4651 
4652     }
4653 
4654     @Test
4655     public void t_rxpv()
4656     
4657 
4658 
4659 
4660 
4661 
4662 
4663 
4664 
4665 
4666 
4667     {
4668        double r[][] = new double[3][3], pv[][] = new double[2][3], rpv[][] = new double[2][3];
4669 
4670 
4671        r[0][0] = 2.0;
4672        r[0][1] = 3.0;
4673        r[0][2] = 2.0;
4674 
4675        r[1][0] = 3.0;
4676        r[1][1] = 2.0;
4677        r[1][2] = 3.0;
4678 
4679        r[2][0] = 3.0;
4680        r[2][1] = 4.0;
4681        r[2][2] = 5.0;
4682 
4683        pv[0][0] = 0.2;
4684        pv[0][1] = 1.5;
4685        pv[0][2] = 0.1;
4686 
4687        pv[1][0] = 1.5;
4688        pv[1][1] = 0.2;
4689        pv[1][2] = 0.1;
4690 
4691        rpv = jauRxpv(r, pv);
4692 
4693        vvd(rpv[0][0], 5.1, 1e-12, "jauRxpv", "11");
4694        vvd(rpv[1][0], 3.8, 1e-12, "jauRxpv", "12");
4695 
4696        vvd(rpv[0][1], 3.9, 1e-12, "jauRxpv", "21");
4697        vvd(rpv[1][1], 5.2, 1e-12, "jauRxpv", "22");
4698 
4699        vvd(rpv[0][2], 7.1, 1e-12, "jauRxpv", "31");
4700        vvd(rpv[1][2], 5.8, 1e-12, "jauRxpv", "32");
4701 
4702     }
4703 
4704     @Test
4705     public void t_rxr()
4706     
4707 
4708 
4709 
4710 
4711 
4712 
4713 
4714 
4715 
4716 
4717     {
4718        double a[][] = new double[3][3], b[][] = new double[3][3], atb[][] = new double[3][3];
4719 
4720 
4721        a[0][0] = 2.0;
4722        a[0][1] = 3.0;
4723        a[0][2] = 2.0;
4724 
4725        a[1][0] = 3.0;
4726        a[1][1] = 2.0;
4727        a[1][2] = 3.0;
4728 
4729        a[2][0] = 3.0;
4730        a[2][1] = 4.0;
4731        a[2][2] = 5.0;
4732 
4733        b[0][0] = 1.0;
4734        b[0][1] = 2.0;
4735        b[0][2] = 2.0;
4736 
4737        b[1][0] = 4.0;
4738        b[1][1] = 1.0;
4739        b[1][2] = 1.0;
4740 
4741        b[2][0] = 3.0;
4742        b[2][1] = 0.0;
4743        b[2][2] = 1.0;
4744 
4745        atb = jauRxr(a, b);
4746 
4747        vvd(atb[0][0], 20.0, 1e-12, "jauRxr", "11");
4748        vvd(atb[0][1],  7.0, 1e-12, "jauRxr", "12");
4749        vvd(atb[0][2],  9.0, 1e-12, "jauRxr", "13");
4750 
4751        vvd(atb[1][0], 20.0, 1e-12, "jauRxr", "21");
4752        vvd(atb[1][1],  8.0, 1e-12, "jauRxr", "22");
4753        vvd(atb[1][2], 11.0, 1e-12, "jauRxr", "23");
4754 
4755        vvd(atb[2][0], 34.0, 1e-12, "jauRxr", "31");
4756        vvd(atb[2][1], 10.0, 1e-12, "jauRxr", "32");
4757        vvd(atb[2][2], 15.0, 1e-12, "jauRxr", "33");
4758 
4759     }
4760 
4761     @Test
4762     public void t_ry()
4763     
4764 
4765 
4766 
4767 
4768 
4769 
4770 
4771 
4772 
4773 
4774     {
4775        double theta, r[][] = new double[3][3];
4776 
4777 
4778        theta = 0.3456789;
4779 
4780        r[0][0] = 2.0;
4781        r[0][1] = 3.0;
4782        r[0][2] = 2.0;
4783 
4784        r[1][0] = 3.0;
4785        r[1][1] = 2.0;
4786        r[1][2] = 3.0;
4787 
4788        r[2][0] = 3.0;
4789        r[2][1] = 4.0;
4790        r[2][2] = 5.0;
4791 
4792        jauRy(theta, r);
4793 
4794        vvd(r[0][0], 0.8651847818978159930, 1e-12, "jauRy", "11");
4795        vvd(r[0][1], 1.467194920539316554, 1e-12, "jauRy", "12");
4796        vvd(r[0][2], 0.1875137911274457342, 1e-12, "jauRy", "13");
4797 
4798        vvd(r[1][0], 3, 1e-12, "jauRy", "21");
4799        vvd(r[1][1], 2, 1e-12, "jauRy", "22");
4800        vvd(r[1][2], 3, 1e-12, "jauRy", "23");
4801 
4802        vvd(r[2][0], 3.500207892850427330, 1e-12, "jauRy", "31");
4803        vvd(r[2][1], 4.779889022262298150, 1e-12, "jauRy", "32");
4804        vvd(r[2][2], 5.381899160903798712, 1e-12, "jauRy", "33");
4805 
4806     }
4807 
4808     @Test
4809     public void t_rz()
4810     
4811 
4812 
4813 
4814 
4815 
4816 
4817 
4818 
4819 
4820 
4821     {
4822        double psi, r[][] = new double[3][3];
4823 
4824 
4825        psi = 0.3456789;
4826 
4827        r[0][0] = 2.0;
4828        r[0][1] = 3.0;
4829        r[0][2] = 2.0;
4830 
4831        r[1][0] = 3.0;
4832        r[1][1] = 2.0;
4833        r[1][2] = 3.0;
4834 
4835        r[2][0] = 3.0;
4836        r[2][1] = 4.0;
4837        r[2][2] = 5.0;
4838 
4839        jauRz(psi, r);
4840 
4841        vvd(r[0][0], 2.898197754208926769, 1e-12, "jauRz", "11");
4842        vvd(r[0][1], 3.500207892850427330, 1e-12, "jauRz", "12");
4843        vvd(r[0][2], 2.898197754208926769, 1e-12, "jauRz", "13");
4844 
4845        vvd(r[1][0], 2.144865911309686813, 1e-12, "jauRz", "21");
4846        vvd(r[1][1], 0.865184781897815993, 1e-12, "jauRz", "22");
4847        vvd(r[1][2], 2.144865911309686813, 1e-12, "jauRz", "23");
4848 
4849        vvd(r[2][0], 3.0, 1e-12, "jauRz", "31");
4850        vvd(r[2][1], 4.0, 1e-12, "jauRz", "32");
4851        vvd(r[2][2], 5.0, 1e-12, "jauRz", "33");
4852 
4853     }
4854 
4855     @Test
4856     public void t_s00a()
4857     
4858 
4859 
4860 
4861 
4862 
4863 
4864 
4865 
4866 
4867 
4868     {
4869        double s;
4870 
4871 
4872        s = jauS00a(2400000.5, 52541.0);
4873 
4874        vvd(s, -0.1340684448919163584e-7, 1e-18, "jauS00a", "");
4875 
4876     }
4877 
4878     @Test
4879     public void t_s00b()
4880     
4881 
4882 
4883 
4884 
4885 
4886 
4887 
4888 
4889 
4890 
4891     {
4892        double s;
4893 
4894 
4895        s = jauS00b(2400000.5, 52541.0);
4896 
4897        vvd(s, -0.1340695782951026584e-7, 1e-18, "jauS00b", "");
4898 
4899     }
4900 
4901     @Test
4902     public void t_s00()
4903     
4904 
4905 
4906 
4907 
4908 
4909 
4910 
4911 
4912 
4913 
4914     {
4915        double x, y, s;
4916 
4917 
4918        x = 0.5791308486706011000e-3;
4919        y = 0.4020579816732961219e-4;
4920 
4921        s = jauS00(2400000.5, 53736.0, x, y);
4922 
4923        vvd(s, -0.1220036263270905693e-7, 1e-18, "jauS00", "");
4924 
4925     }
4926 
4927     @Test
4928     public void t_s06a()
4929     
4930 
4931 
4932 
4933 
4934 
4935 
4936 
4937 
4938 
4939 
4940     {
4941        double s;
4942 
4943 
4944        s = jauS06a(2400000.5, 52541.0);
4945 
4946        vvd(s, -0.1340680437291812383e-7, 1e-18, "jauS06a", "");
4947 
4948     }
4949 
4950     @Test
4951     public void t_s06()
4952     
4953 
4954 
4955 
4956 
4957 
4958 
4959 
4960 
4961 
4962 
4963     {
4964        double x, y, s;
4965 
4966 
4967        x = 0.5791308486706011000e-3;
4968        y = 0.4020579816732961219e-4;
4969 
4970        s = jauS06(2400000.5, 53736.0, x, y);
4971 
4972        vvd(s, -0.1220032213076463117e-7, 1e-18, "jauS06", "");
4973 
4974     }
4975 
4976     @Test
4977     public void t_s2c()
4978     
4979 
4980 
4981 
4982 
4983 
4984 
4985 
4986 
4987 
4988 
4989     {
4990        double c[] = new double[3];
4991 
4992 
4993        c = jauS2c(3.0123, -0.999);
4994 
4995        vvd(c[0], -0.5366267667260523906, 1e-12, "jauS2c", "1");
4996        vvd(c[1],  0.0697711109765145365, 1e-12, "jauS2c", "2");
4997        vvd(c[2], -0.8409302618566214041, 1e-12, "jauS2c", "3");
4998 
4999     }
5000 
5001     @Test
5002     public void t_s2p()
5003     
5004 
5005 
5006 
5007 
5008 
5009 
5010 
5011 
5012 
5013 
5014     {
5015        double p[] = new double[3];
5016 
5017 
5018        p = jauS2p(-3.21, 0.123, 0.456);
5019 
5020        vvd(p[0], -0.4514964673880165228, 1e-12, "jauS2p", "x");
5021        vvd(p[1],  0.0309339427734258688, 1e-12, "jauS2p", "y");
5022        vvd(p[2],  0.0559466810510877933, 1e-12, "jauS2p", "z");
5023 
5024     }
5025 
5026     @Test
5027     public void t_s2pv()
5028     
5029 
5030 
5031 
5032 
5033 
5034 
5035 
5036 
5037 
5038 
5039     {
5040        double pv[][] = new double[2][3];
5041 
5042 
5043        pv = jauS2pv(-3.21, 0.123, 0.456, -7.8e-6, 9.01e-6, -1.23e-5);
5044 
5045        vvd(pv[0][0], -0.4514964673880165228, 1e-12, "jauS2pv", "x");
5046        vvd(pv[0][1],  0.0309339427734258688, 1e-12, "jauS2pv", "y");
5047        vvd(pv[0][2],  0.0559466810510877933, 1e-12, "jauS2pv", "z");
5048 
5049        vvd(pv[1][0],  0.1292270850663260170e-4, 1e-16,"jauS2pv", "vx");
5050        vvd(pv[1][1],  0.2652814182060691422e-5, 1e-16,"jauS2pv", "vy");
5051        vvd(pv[1][2],  0.2568431853930292259e-5, 1e-16,"jauS2pv", "vz");
5052 
5053     }
5054 
5055     @Test
5056     public void t_s2xpv()
5057     
5058 
5059 
5060 
5061 
5062 
5063 
5064 
5065 
5066 
5067 
5068     {
5069        double s1, s2, pv[][] = new double[2][3], spv[][]= new double[2][3];
5070 
5071 
5072        s1 = 2.0;
5073        s2 = 3.0;
5074 
5075        pv[0][0] =  0.3;
5076        pv[0][1] =  1.2;
5077        pv[0][2] = -2.5;
5078 
5079        pv[1][0] =  0.5;
5080        pv[1][1] =  2.3;
5081        pv[1][2] = -0.4;
5082 
5083        spv = jauS2xpv(s1, s2, pv);
5084 
5085        vvd(spv[0][0],  0.6, 1e-12, "jauS2xpv", "p1");
5086        vvd(spv[0][1],  2.4, 1e-12, "jauS2xpv", "p2");
5087        vvd(spv[0][2], -5.0, 1e-12, "jauS2xpv", "p3");
5088 
5089        vvd(spv[1][0],  1.5, 1e-12, "jauS2xpv", "v1");
5090        vvd(spv[1][1],  6.9, 1e-12, "jauS2xpv", "v2");
5091        vvd(spv[1][2], -1.2, 1e-12, "jauS2xpv", "v3");
5092 
5093     }
5094 
5095     @Test
5096     public void t_sepp()
5097     
5098 
5099 
5100 
5101 
5102 
5103 
5104 
5105 
5106 
5107 
5108     {
5109        double a[] = new double[3], b[] = new double[3], s;
5110 
5111 
5112        a[0] =  1.0;
5113        a[1] =  0.1;
5114        a[2] =  0.2;
5115 
5116        b[0] = -3.0;
5117        b[1] =  1e-3;
5118        b[2] =  0.2;
5119 
5120        s = jauSepp(a, b);
5121 
5122        vvd(s, 2.860391919024660768, 1e-12, "jauSepp", "");
5123 
5124     }
5125 
5126     @Test
5127     public void t_seps()
5128     
5129 
5130 
5131 
5132 
5133 
5134 
5135 
5136 
5137 
5138 
5139     {
5140        double al, ap, bl, bp, s;
5141 
5142 
5143        al =  1.0;
5144        ap =  0.1;
5145 
5146        bl =  0.2;
5147        bp = -3.0;
5148 
5149        s = jauSeps(al, ap, bl, bp);
5150 
5151        vvd(s, 2.346722016996998842, 1e-14, "jauSeps", "");
5152 
5153     }
5154 
5155     @Test
5156     public void t_sp00()
5157     
5158 
5159 
5160 
5161 
5162 
5163 
5164 
5165 
5166 
5167 
5168     {
5169        vvd(jauSp00(2400000.5, 52541.0),
5170            -0.6216698469981019309e-11, 1e-12, "jauSp00", "");
5171 
5172     }
5173 
5174     @Test
5175     public void t_starpm()
5176     
5177 
5178 
5179 
5180 
5181 
5182 
5183 
5184 
5185 
5186 
5187     {
5188        double ra1, dec1, pmr1, pmd1, px1, rv1;
5189 
5190        ra1 =   0.01686756;
5191        dec1 = -1.093989828;
5192        pmr1 = -1.78323516e-5;
5193        pmd1 =  2.336024047e-6;
5194        px1 =   0.74723;
5195        rv1 = -21.6;
5196 
5197        try {
5198            CatalogCoords cat = jauStarpm(ra1, dec1, pmr1, pmd1, px1, rv1,
5199                    2400000.5, 50083.0, 2400000.5, 53736.0 );
5200 
5201            vvd(cat.pos.alpha, 0.01668919069414256149, 1e-13,"jauStarpm", "ra");
5202            vvd(cat.pos.delta, -1.093966454217127897, 1e-13,"jauStarpm", "dec");
5203            vvd(cat.pm.alpha, -0.1783662682153176524e-4, 1e-17,"jauStarpm", "pmr");
5204            vvd(cat.pm.delta, 0.2338092915983989595e-5, 1e-17,"jauStarpm", "pmd");
5205            vvd(cat.px, 0.7473533835317719243, 1e-13,"jauStarpm", "px");
5206            vvd(cat.rv, -21.59905170476417175, 1e-11,"jauStarpm", "rv");
5207        } catch (JSOFAInternalError e) {
5208 
5209            e.printStackTrace();
5210            fail("jauStarpm threw exception");
5211        }
5212 
5213  
5214 
5215     }
5216 
5217     @Test
5218     public void t_starpv()
5219     
5220 
5221 
5222 
5223 
5224 
5225 
5226 
5227 
5228 
5229 
5230     {
5231        double ra, dec, pmr, pmd, px, rv, pv[][] = new double[2][3];
5232     
5233 
5234 
5235        ra =   0.01686756;
5236        dec = -1.093989828;
5237        pmr = -1.78323516e-5;
5238        pmd =  2.336024047e-6;
5239        px =   0.74723;
5240        rv = -21.6;
5241 
5242        int j = jauStarpv(ra, dec, pmr, pmd, px, rv, pv);
5243 
5244        vvd(pv[0][0], 126668.5912743160601, 1e-10,"jauStarpv", "11");
5245        vvd(pv[0][1], 2136.792716839935195, 1e-12,"jauStarpv", "12");
5246        vvd(pv[0][2], -245251.2339876830091, 1e-10,"jauStarpv", "13");
5247 
5248        vvd(pv[1][0], -0.4051854008955659551e-2, 1e-13,"jauStarpv", "21");
5249        vvd(pv[1][1], -0.6253919754414777970e-2, 1e-15,"jauStarpv", "22");
5250        vvd(pv[1][2], 0.1189353714588109341e-1, 1e-13,"jauStarpv", "23");
5251 
5252        viv(j, 0, "jauStarpv", "j");
5253 
5254     }
5255 
5256     @Test
5257     public void t_sxp()
5258     
5259 
5260 
5261 
5262 
5263 
5264 
5265 
5266 
5267 
5268 
5269     {
5270        double s, p[] = new double[3], sp[] = new double[3];
5271 
5272 
5273        s = 2.0;
5274 
5275        p[0] =  0.3;
5276        p[1] =  1.2;
5277        p[2] = -2.5;
5278 
5279        sp = jauSxp(s, p);
5280 
5281        vvd(sp[0],  0.6, 0.0, "jauSxp", "1");
5282        vvd(sp[1],  2.4, 0.0, "jauSxp", "2");
5283        vvd(sp[2], -5.0, 0.0, "jauSxp", "3");
5284 
5285     }
5286 
5287 
5288     @Test
5289     public void t_sxpv()
5290     
5291 
5292 
5293 
5294 
5295 
5296 
5297 
5298 
5299 
5300 
5301     {
5302        double s, pv[][] = new double[2][3], spv[][] = new double[2][3];
5303 
5304 
5305        s = 2.0;
5306 
5307        pv[0][0] =  0.3;
5308        pv[0][1] =  1.2;
5309        pv[0][2] = -2.5;
5310 
5311        pv[1][0] =  0.5;
5312        pv[1][1] =  3.2;
5313        pv[1][2] = -0.7;
5314 
5315        spv = jauSxpv(s, pv);
5316 
5317        vvd(spv[0][0],  0.6, 0.0, "jauSxpv", "p1");
5318        vvd(spv[0][1],  2.4, 0.0, "jauSxpv", "p2");
5319        vvd(spv[0][2], -5.0, 0.0, "jauSxpv", "p3");
5320 
5321        vvd(spv[1][0],  1.0, 0.0, "jauSxpv", "v1");
5322        vvd(spv[1][1],  6.4, 0.0, "jauSxpv", "v2");
5323        vvd(spv[1][2], -1.4, 0.0, "jauSxpv", "v3");
5324 
5325     }
5326 
5327     @Test
5328      public void t_taitt()
5329     
5330 
5331 
5332 
5333 
5334 
5335 
5336 
5337 
5338 
5339 
5340     {
5341        JulianDate jd = jauTaitt(2453750.5, 0.892482639);
5342 
5343        vvd(jd.djm0, 2453750.5, 1e-6, "jauTaitt", "t1");
5344        vvd(jd.djm1, 0.892855139, 1e-12, "jauTaitt", "t2");
5345 
5346     }
5347 
5348      @Test
5349      public void t_taiut1()
5350     
5351 
5352 
5353 
5354 
5355 
5356 
5357 
5358 
5359 
5360 
5361     {
5362        JulianDate jd = jauTaiut1(2453750.5, 0.892482639, -32.6659);
5363 
5364        vvd(jd.djm0, 2453750.5, 1e-6, "jauTaiut1", "u1");
5365        vvd(jd.djm1, 0.8921045614537037037, 1e-12, "jauTaiut1", "u2");
5366 
5367     }
5368 
5369      @Test
5370      public void t_taiutc() throws JSOFAIllegalParameter, JSOFAInternalError
5371     
5372 
5373 
5374 
5375 
5376 
5377 
5378 
5379 
5380 
5381 
5382     {
5383        JulianDate jd = jauTaiutc(2453750.5, 0.892482639);
5384 
5385        vvd(jd.djm0, 2453750.5, 1e-6, "jauTaiutc", "u1");
5386        vvd(jd.djm1, 0.8921006945555555556, 1e-12, "jauTaiutc", "u2");
5387  
5388     }
5389 
5390      @Test
5391      public void t_tcbtdb()
5392     
5393 
5394 
5395 
5396 
5397 
5398 
5399 
5400 
5401 
5402 
5403     {
5404        JulianDate jd = jauTcbtdb(2453750.5, 0.893019599);
5405 
5406        vvd(jd.djm0, 2453750.5, 1e-6, "jauTcbtdb", "b1");
5407        vvd(jd.djm1, 0.8928551362746343397, 1e-12, "jauTcbtdb", "b2");
5408 
5409     }
5410 
5411      @Test
5412      public void t_tcgtt()
5413     
5414 
5415 
5416 
5417 
5418 
5419 
5420 
5421 
5422 
5423 
5424     {
5425        JulianDate jd = jauTcgtt(2453750.5, 0.892862531);
5426 
5427        vvd(jd.djm0, 2453750.5, 1e-6, "jauTcgtt", "t1");
5428        vvd(jd.djm1, 0.8928551387488816828, 1e-12, "jauTcgtt", "t2");
5429 
5430     }
5431      @Test
5432      public void t_tdbtcb()
5433     
5434 
5435 
5436 
5437 
5438 
5439 
5440 
5441 
5442 
5443 
5444     {
5445        JulianDate jd = jauTdbtcb(2453750.5, 0.892855137);
5446 
5447        vvd( jd.djm0, 2453750.5, 1e-6, "jauTdbtcb", "b1");
5448        vvd( jd.djm1, 0.8930195997253656716, 1e-12, "jauTdbtcb", "b2");
5449 
5450     }
5451 
5452      @Test
5453      public void t_tdbtt()
5454     
5455 
5456 
5457 
5458 
5459 
5460 
5461 
5462 
5463 
5464 
5465     {
5466        JulianDate jd = jauTdbtt(2453750.5, 0.892855137, -0.000201);
5467 
5468        vvd(jd.djm0, 2453750.5, 1e-6, "jauTdbtt", "t1");
5469        vvd(jd.djm1, 0.8928551393263888889, 1e-12, "jauTdbtt", "t2");
5470 
5471     }
5472 
5473 
5474 
5475 
5476 
5477 
5478 
5479 
5480 
5481 
5482 
5483 
5484 
5485 
5486 
5487 
5488 
5489 
5490 
5491 
5492 
5493 
5494 
5495 
5496 
5497 
5498 
5499 
5500 
5501 
5502 
5503 
5504 
5505 
5506 
5507 
5508 
5509 
5510 
5511 
5512 
5513 
5514 
5515 
5516 
5517 
5518 
5519 
5520 
5521 
5522 
5523 
5524 
5525 
5526    
5527     
5528     
5529     @Test
5530     public void t_tr()
5531     
5532 
5533 
5534 
5535 
5536 
5537 
5538 
5539 
5540 
5541 
5542     {
5543        double r[][] = new double[3][3], rt[][] = new double[3][3];
5544 
5545 
5546        r[0][0] = 2.0;
5547        r[0][1] = 3.0;
5548        r[0][2] = 2.0;
5549 
5550        r[1][0] = 3.0;
5551        r[1][1] = 2.0;
5552        r[1][2] = 3.0;
5553 
5554        r[2][0] = 3.0;
5555        r[2][1] = 4.0;
5556        r[2][2] = 5.0;
5557 
5558        rt = jauTr(r);
5559 
5560        vvd(rt[0][0], 2.0, 0.0, "jauTr", "11");
5561        vvd(rt[0][1], 3.0, 0.0, "jauTr", "12");
5562        vvd(rt[0][2], 3.0, 0.0, "jauTr", "13");
5563 
5564        vvd(rt[1][0], 3.0, 0.0, "jauTr", "21");
5565        vvd(rt[1][1], 2.0, 0.0, "jauTr", "22");
5566        vvd(rt[1][2], 4.0, 0.0, "jauTr", "23");
5567 
5568        vvd(rt[2][0], 2.0, 0.0, "jauTr", "31");
5569        vvd(rt[2][1], 3.0, 0.0, "jauTr", "32");
5570        vvd(rt[2][2], 5.0, 0.0, "jauTr", "33");
5571 
5572     }
5573 
5574     @Test
5575     public void t_trxp()
5576     
5577 
5578 
5579 
5580 
5581 
5582 
5583 
5584 
5585 
5586 
5587     {
5588        double r[][] = new double[3][3], p[] = new double[3], trp[] = new double[3];
5589 
5590 
5591        r[0][0] = 2.0;
5592        r[0][1] = 3.0;
5593        r[0][2] = 2.0;
5594 
5595        r[1][0] = 3.0;
5596        r[1][1] = 2.0;
5597        r[1][2] = 3.0;
5598 
5599        r[2][0] = 3.0;
5600        r[2][1] = 4.0;
5601        r[2][2] = 5.0;
5602 
5603        p[0] = 0.2;
5604        p[1] = 1.5;
5605        p[2] = 0.1;
5606 
5607        trp = jauTrxp(r, p);
5608 
5609        vvd(trp[0], 5.2, 1e-12, "jauTrxp", "1");
5610        vvd(trp[1], 4.0, 1e-12, "jauTrxp", "2");
5611        vvd(trp[2], 5.4, 1e-12, "jauTrxp", "3");
5612 
5613     }
5614 
5615     @Test
5616     public void t_trxpv()
5617     
5618 
5619 
5620 
5621 
5622 
5623 
5624 
5625 
5626 
5627 
5628     {
5629        double r[][] = new double[3][3], pv[][] = new double[2][3], trpv[][] = new double[2][3];
5630 
5631 
5632        r[0][0] = 2.0;
5633        r[0][1] = 3.0;
5634        r[0][2] = 2.0;
5635 
5636        r[1][0] = 3.0;
5637        r[1][1] = 2.0;
5638        r[1][2] = 3.0;
5639 
5640        r[2][0] = 3.0;
5641        r[2][1] = 4.0;
5642        r[2][2] = 5.0;
5643 
5644        pv[0][0] = 0.2;
5645        pv[0][1] = 1.5;
5646        pv[0][2] = 0.1;
5647 
5648        pv[1][0] = 1.5;
5649        pv[1][1] = 0.2;
5650        pv[1][2] = 0.1;
5651 
5652        trpv = jauTrxpv(r, pv);
5653 
5654        vvd(trpv[0][0], 5.2, 1e-12, "jauTrxpv", "p1");
5655        vvd(trpv[0][1], 4.0, 1e-12, "jauTrxpv", "p1");
5656        vvd(trpv[0][2], 5.4, 1e-12, "jauTrxpv", "p1");
5657 
5658        vvd(trpv[1][0], 3.9, 1e-12, "jauTrxpv", "v1");
5659        vvd(trpv[1][1], 5.3, 1e-12, "jauTrxpv", "v2");
5660        vvd(trpv[1][2], 4.1, 1e-12, "jauTrxpv", "v3");
5661 
5662     }
5663     
5664     @Test
5665     public void t_tttai()
5666     
5667 
5668 
5669 
5670 
5671 
5672 
5673 
5674 
5675 
5676 
5677     {
5678 
5679 
5680 
5681        JulianDate jd = jauTttai(2453750.5, 0.892482639);
5682 
5683        vvd(jd.djm0, 2453750.5, 1e-6, "jauTttai", "a1");
5684        vvd(jd.djm1, 0.892110139, 1e-12, "jauTttai", "a2");
5685        
5686 
5687     }
5688 
5689     @Test
5690     public void t_tttcg()
5691     
5692 
5693 
5694 
5695 
5696 
5697 
5698 
5699 
5700 
5701 
5702     {
5703 
5704        JulianDate jd = jauTttcg(2453750.5, 0.892482639);
5705 
5706        vvd( jd.djm0, 2453750.5, 1e-6, "jauTttcg", "g1");
5707        vvd( jd.djm1, 0.8924900312508587113, 1e-12, "jauTttcg", "g2");
5708 
5709     }
5710 
5711     @Test
5712     public void t_tttdb()
5713     
5714 
5715 
5716 
5717 
5718 
5719 
5720 
5721 
5722 
5723 
5724     {
5725 
5726        JulianDate jd = jauTttdb(2453750.5, 0.892855139, -0.000201);
5727 
5728        vvd(jd.djm0, 2453750.5, 1e-6, "jauTttdb", "b1");
5729        vvd(jd.djm1, 0.8928551366736111111, 1e-12, "jauTttdb", "b2");
5730       
5731 
5732     }
5733 
5734     @Test
5735     public void t_ttut1()
5736     
5737 
5738 
5739 
5740 
5741 
5742 
5743 
5744 
5745 
5746 
5747     {
5748        JulianDate jd = jauTtut1(2453750.5, 0.892855139, 64.8499);
5749 
5750        vvd(jd.djm0, 2453750.5, 1e-6, "jauTtut1", "u1");
5751        vvd(jd.djm1, 0.8921045614537037037, 1e-12, "jauTtut1", "u2");
5752 
5753     }
5754 
5755     @Test
5756     public void t_ut1tai()
5757     
5758 
5759 
5760 
5761 
5762 
5763 
5764 
5765 
5766 
5767 
5768     {
5769 
5770 
5771        JulianDate jd = jauUt1tai(2453750.5, 0.892104561, -32.6659);
5772 
5773        vvd(jd.djm0, 2453750.5, 1e-6, "jauUt1tai", "a1");
5774        vvd(jd.djm1, 0.8924826385462962963, 1e-12, "jauUt1tai", "a2");
5775 
5776     }
5777 
5778     @Test
5779     public void t_ut1tt()
5780     
5781 
5782 
5783 
5784 
5785 
5786 
5787 
5788 
5789 
5790 
5791     {
5792        JulianDate jd = jauUt1tt(2453750.5, 0.892104561, 64.8499);
5793 
5794        vvd(jd.djm0, 2453750.5, 1e-6, "jauUt1tt", "t1");
5795        vvd(jd.djm1, 0.8928551385462962963, 1e-12, "jauUt1tt", "t2");
5796 
5797     }
5798 
5799     @Test
5800     public void t_ut1utc() throws JSOFAIllegalParameter, JSOFAInternalError
5801     
5802 
5803 
5804 
5805 
5806 
5807 
5808 
5809 
5810 
5811 
5812     {
5813        JulianDate jd = jauUt1utc(2453750.5, 0.892104561, 0.3341);
5814 
5815        vvd(jd.djm0, 2453750.5, 1e-6, "jauUt1utc", "u1");
5816        vvd(jd.djm1, 0.8921006941018518519, 1e-12, "jauUt1utc", "u2");
5817       
5818 
5819     }
5820 
5821     @Test
5822     public void t_utctai() throws JSOFAIllegalParameter, JSOFAInternalError
5823     
5824 
5825 
5826 
5827 
5828 
5829 
5830 
5831 
5832 
5833 
5834     {
5835 
5836 
5837        JulianDate jd = jauUtctai(2453750.5, 0.892100694);
5838 
5839        vvd(jd.djm0, 2453750.5, 1e-6, "jauUtctai", "u1");
5840        vvd(jd.djm1, 0.8924826384444444444, 1e-12, "jauUtctai", "u2");
5841 
5842     }
5843 
5844     @Test
5845     public void t_utcut1() throws JSOFAIllegalParameter, JSOFAInternalError
5846     
5847 
5848 
5849 
5850 
5851 
5852 
5853 
5854 
5855 
5856 
5857     {
5858        JulianDate jd = jauUtcut1(2453750.5, 0.892100694, 0.3341);
5859 
5860        vvd(jd.djm0, 2453750.5, 1e-6, "jauUtcut1", "u1");
5861        vvd(jd.djm1, 0.8921045608981481481, 1e-12, "jauUtcut1", "u2");
5862 
5863     }
5864 
5865     @Test
5866     public void t_xy06()
5867     
5868 
5869 
5870 
5871 
5872 
5873 
5874 
5875 
5876 
5877 
5878     {
5879 
5880        CelestialIntermediatePole cip = jauXy06(2400000.5, 53736.0);
5881 
5882        vvd(cip.x, 0.5791308486706010975e-3, 1e-15, "jauXy06", "x");
5883        vvd(cip.y, 0.4020579816732958141e-4, 1e-16, "jauXy06", "y");
5884 
5885     }
5886 
5887     @Test
5888     public void t_xys00a()
5889     
5890 
5891 
5892 
5893 
5894 
5895 
5896 
5897 
5898 
5899 
5900     {
5901 
5902        ICRFrame fr = jauXys00a(2400000.5, 53736.0);
5903 
5904        vvd(fr.cip.x,  0.5791308472168152904e-3, 1e-14, "jauXys00a", "x");
5905        vvd(fr.cip.y,  0.4020595661591500259e-4, 1e-15, "jauXys00a", "y");
5906        vvd(fr.s, -0.1220040848471549623e-7, 1e-18, "jauXys00a", "s");
5907 
5908     }
5909 
5910     @Test
5911     public void t_xys00b()
5912     
5913 
5914 
5915 
5916 
5917 
5918 
5919 
5920 
5921 
5922 
5923     {
5924 
5925 
5926        ICRFrame fr = jauXys00b(2400000.5, 53736.0);
5927 
5928        vvd(fr.cip.x,  0.5791301929950208873e-3, 1e-14, "jauXys00b", "x");
5929        vvd(fr.cip.y,  0.4020553681373720832e-4, 1e-15, "jauXys00b", "y");
5930        vvd(fr.s, -0.1220027377285083189e-7, 1e-18, "jauXys00b", "s");
5931 
5932     }
5933 
5934     @Test
5935     public void t_xys06a()
5936     
5937 
5938 
5939 
5940 
5941 
5942 
5943 
5944 
5945 
5946 
5947     {
5948       
5949        ICRFrame fr = jauXys06a(2400000.5, 53736.0);
5950 
5951        vvd(fr.cip.x,  0.5791308482835292617e-3, 1e-14, "jauXys06a", "x");
5952        vvd(fr.cip.y,  0.4020580099454020310e-4, 1e-15, "jauXys06a", "y");
5953        vvd(fr.s, -0.1220032294164579896e-7, 1e-18, "jauXys06a", "s");
5954 
5955     }
5956 
5957     @Test
5958     public void t_zp()
5959     
5960 
5961 
5962 
5963 
5964 
5965 
5966 
5967 
5968 
5969 
5970     {
5971        double p[] = new double[3];
5972 
5973 
5974        p[0] =  0.3;
5975        p[1] =  1.2;
5976        p[2] = -2.5;
5977 
5978        jauZp(p);
5979 
5980        vvd(p[0], 0.0, 0.0, "jauZp", "1");
5981        vvd(p[1], 0.0, 0.0, "jauZp", "2");
5982        vvd(p[2], 0.0, 0.0, "jauZp", "3");
5983 
5984     }
5985 
5986     @Test
5987     public void t_zpv()
5988     
5989 
5990 
5991 
5992 
5993 
5994 
5995 
5996 
5997 
5998 
5999     {
6000        double pv[][] = new double[2][3];
6001 
6002 
6003        pv[0][0] =  0.3;
6004        pv[0][1] =  1.2;
6005        pv[0][2] = -2.5;
6006 
6007        pv[1][0] = -0.5;
6008        pv[1][1] =  3.1;
6009        pv[1][2] =  0.9;
6010 
6011        jauZpv(pv);
6012 
6013        vvd(pv[0][0], 0.0, 0.0, "jauZpv", "p1");
6014        vvd(pv[0][1], 0.0, 0.0, "jauZpv", "p2");
6015        vvd(pv[0][2], 0.0, 0.0, "jauZpv", "p3");
6016 
6017        vvd(pv[1][0], 0.0, 0.0, "jauZpv", "v1");
6018        vvd(pv[1][1], 0.0, 0.0, "jauZpv", "v2");
6019        vvd(pv[1][2], 0.0, 0.0, "jauZpv", "v3");
6020 
6021     }
6022 
6023     @Test
6024     public void t_zr()
6025     
6026 
6027 
6028 
6029 
6030 
6031 
6032 
6033 
6034 
6035 
6036     {
6037        double r[][] = new double[3][3];
6038 
6039 
6040        r[0][0] = 2.0;
6041        r[1][0] = 3.0;
6042        r[2][0] = 2.0;
6043 
6044        r[0][1] = 3.0;
6045        r[1][1] = 2.0;
6046        r[2][1] = 3.0;
6047 
6048        r[0][2] = 3.0;
6049        r[1][2] = 4.0;
6050        r[2][2] = 5.0;
6051 
6052        jauZr(r);
6053 
6054        vvd(r[0][0], 0.0, 0.0, "jauZr", "00");
6055        vvd(r[1][0], 0.0, 0.0, "jauZr", "01");
6056        vvd(r[2][0], 0.0, 0.0, "jauZr", "02");
6057 
6058        vvd(r[0][1], 0.0, 0.0, "jauZr", "10");
6059        vvd(r[1][1], 0.0, 0.0, "jauZr", "11");
6060        vvd(r[2][1], 0.0, 0.0, "jauZr", "12");
6061 
6062        vvd(r[0][2], 0.0, 0.0, "jauZr", "20");
6063        vvd(r[1][2], 0.0, 0.0, "jauZr", "21");
6064        vvd(r[2][2], 0.0, 0.0, "jauZr", "22");
6065 
6066     }
6067 
6068     
6069     
6070     
6071     @Test
6072 public void t_apcg()
6073     
6074 
6075 
6076 
6077 
6078 
6079 
6080 
6081 
6082 
6083 
6084     {
6085        double date1, date2, ebpv[][] = new double[2][3], ehp[] = new double[3];
6086        Astrom astrom = new Astrom();
6087 
6088 
6089        date1 = 2456165.5;
6090        date2 = 0.401182685;
6091        ebpv[0][0] =  0.901310875;
6092        ebpv[0][1] = -0.417402664;
6093        ebpv[0][2] = -0.180982288;
6094        ebpv[1][0] =  0.00742727954;
6095        ebpv[1][1] =  0.0140507459;
6096        ebpv[1][2] =  0.00609045792;
6097        ehp[0] =  0.903358544;
6098        ehp[1] = -0.415395237;
6099        ehp[2] = -0.180084014;
6100 
6101        jauApcg(date1, date2, ebpv, ehp, astrom);
6102 
6103        vvd(astrom.pmt, 12.65133794027378508, 1e-11,
6104                        "jauApcg", "pmt");
6105        vvd(astrom.eb[0], 0.901310875, 1e-12,
6106                          "jauApcg", "eb(1)");
6107        vvd(astrom.eb[1], -0.417402664, 1e-12,
6108                          "jauApcg", "eb(2)");
6109        vvd(astrom.eb[2], -0.180982288, 1e-12,
6110                          "jauApcg", "eb(3)");
6111        vvd(astrom.eh[0], 0.8940025429324143045, 1e-12,
6112                          "jauApcg", "eh(1)");
6113        vvd(astrom.eh[1], -0.4110930268679817955, 1e-12,
6114                          "jauApcg", "eh(2)");
6115        vvd(astrom.eh[2], -0.1782189004872870264, 1e-12,
6116                          "jauApcg", "eh(3)");
6117        vvd(astrom.em, 1.010465295811013146, 1e-12,
6118                       "jauApcg", "em");
6119        vvd(astrom.v[0], 0.4289638913597693554e-4, 1e-16,
6120                         "jauApcg", "v(1)");
6121        vvd(astrom.v[1], 0.8115034051581320575e-4, 1e-16,
6122                         "jauApcg", "v(2)");
6123        vvd(astrom.v[2], 0.3517555136380563427e-4, 1e-16,
6124                         "jauApcg", "v(3)");
6125        vvd(astrom.bm1, 0.9999999951686012981, 1e-12,
6126                        "jauApcg", "bm1");
6127        vvd(astrom.bpn[0][0], 1.0, 0.0,
6128                              "jauApcg", "bpn(1,1)");
6129        vvd(astrom.bpn[1][0], 0.0, 0.0,
6130                              "jauApcg", "bpn(2,1)");
6131        vvd(astrom.bpn[2][0], 0.0, 0.0,
6132                              "jauApcg", "bpn(3,1)");
6133        vvd(astrom.bpn[0][1], 0.0, 0.0,
6134                              "jauApcg", "bpn(1,2)");
6135        vvd(astrom.bpn[1][1], 1.0, 0.0,
6136                              "jauApcg", "bpn(2,2)");
6137        vvd(astrom.bpn[2][1], 0.0, 0.0,
6138                              "jauApcg", "bpn(3,2)");
6139        vvd(astrom.bpn[0][2], 0.0, 0.0,
6140                              "jauApcg", "bpn(1,3)");
6141        vvd(astrom.bpn[1][2], 0.0, 0.0,
6142                              "jauApcg", "bpn(2,3)");
6143        vvd(astrom.bpn[2][2], 1.0, 0.0,
6144                              "jauApcg", "bpn(3,3)");
6145 
6146     }
6147 
6148     @Test
6149     public void t_ab()
6150     
6151 
6152 
6153 
6154 
6155 
6156 
6157 
6158 
6159 
6160 
6161     {
6162        double pnat[] = new double[3], v[] = new double[3], s, bm1, ppr[];
6163 
6164 
6165        pnat[0] = -0.76321968546737951;
6166        pnat[1] = -0.60869453983060384;
6167        pnat[2] = -0.21676408580639883;
6168        v[0] =  2.1044018893653786e-5;
6169        v[1] = -8.9108923304429319e-5;
6170        v[2] = -3.8633714797716569e-5;
6171        s = 0.99980921395708788;
6172        bm1 = 0.99999999506209258;
6173 
6174        ppr = jauAb(pnat, v, s, bm1);
6175 
6176        vvd(ppr[0], -0.7631631094219556269, 1e-12, "jauAb", "1");
6177        vvd(ppr[1], -0.6087553082505590832, 1e-12, "jauAb", "2");
6178        vvd(ppr[2], -0.2167926269368471279, 1e-12, "jauAb", "3");
6179 
6180     }
6181 
6182     @Test
6183     public void t_apcg13()
6184     
6185 
6186 
6187 
6188 
6189 
6190 
6191 
6192 
6193 
6194 
6195     {
6196        double date1, date2;
6197        Astrom astrom = new Astrom();
6198 
6199 
6200        date1 = 2456165.5;
6201        date2 = 0.401182685;
6202 
6203        jauApcg13(date1, date2, astrom);
6204 
6205        vvd(astrom.pmt, 12.65133794027378508, 1e-11,
6206                        "jauApcg13", "pmt");
6207        vvd(astrom.eb[0], 0.9013108747340644755, 1e-12,
6208                        "jauApcg13", "eb(1)");
6209        vvd(astrom.eb[1], -0.4174026640406119957, 1e-12,
6210                        "jauApcg13", "eb(2)");
6211        vvd(astrom.eb[2], -0.1809822877867817771, 1e-12,
6212                        "jauApcg13", "eb(3)");
6213        vvd(astrom.eh[0], 0.8940025429255499549, 1e-12,
6214                        "jauApcg13", "eh(1)");
6215        vvd(astrom.eh[1], -0.4110930268331896318, 1e-12,
6216                        "jauApcg13", "eh(2)");
6217        vvd(astrom.eh[2], -0.1782189006019749850, 1e-12,
6218                        "jauApcg13", "eh(3)");
6219        vvd(astrom.em, 1.010465295964664178, 1e-12,
6220                        "jauApcg13", "em");
6221        vvd(astrom.v[0], 0.4289638912941341125e-4, 1e-16,
6222                        "jauApcg13", "v(1)");
6223        vvd(astrom.v[1], 0.8115034032405042132e-4, 1e-16,
6224                        "jauApcg13", "v(2)");
6225        vvd(astrom.v[2], 0.3517555135536470279e-4, 1e-16,
6226                        "jauApcg13", "v(3)");
6227        vvd(astrom.bm1, 0.9999999951686013142, 1e-12,
6228                        "jauApcg13", "bm1");
6229        vvd(astrom.bpn[0][0], 1.0, 0.0,
6230                              "jauApcg13", "bpn(1,1)");
6231        vvd(astrom.bpn[1][0], 0.0, 0.0,
6232                              "jauApcg13", "bpn(2,1)");
6233        vvd(astrom.bpn[2][0], 0.0, 0.0,
6234                              "jauApcg13", "bpn(3,1)");
6235        vvd(astrom.bpn[0][1], 0.0, 0.0,
6236                              "jauApcg13", "bpn(1,2)");
6237        vvd(astrom.bpn[1][1], 1.0, 0.0,
6238                              "jauApcg13", "bpn(2,2)");
6239        vvd(astrom.bpn[2][1], 0.0, 0.0,
6240                              "jauApcg13", "bpn(3,2)");
6241        vvd(astrom.bpn[0][2], 0.0, 0.0,
6242                              "jauApcg13", "bpn(1,3)");
6243        vvd(astrom.bpn[1][2], 0.0, 0.0,
6244                              "jauApcg13", "bpn(2,3)");
6245        vvd(astrom.bpn[2][2], 1.0, 0.0,
6246                              "jauApcg13", "bpn(3,3)");
6247 
6248     }
6249     @Test
6250     public void t_apci()
6251     
6252 
6253 
6254 
6255 
6256 
6257 
6258 
6259 
6260 
6261 
6262     {
6263        double date1, date2, ebpv[][] = new double[2][3], ehp[] = new double[3], x, y, s;
6264        Astrom astrom = new Astrom() ;
6265 
6266 
6267        date1 = 2456165.5;
6268        date2 = 0.401182685;
6269        ebpv[0][0] =  0.901310875;
6270        ebpv[0][1] = -0.417402664;
6271        ebpv[0][2] = -0.180982288;
6272        ebpv[1][0] =  0.00742727954;
6273        ebpv[1][1] =  0.0140507459;
6274        ebpv[1][2] =  0.00609045792;
6275        ehp[0] =  0.903358544;
6276        ehp[1] = -0.415395237;
6277        ehp[2] = -0.180084014;
6278        x =  0.0013122272;
6279        y = -2.92808623e-5;
6280        s =  3.05749468e-8;
6281 
6282        jauApci(date1, date2, ebpv, ehp, x, y, s, astrom);
6283 
6284        vvd(astrom.pmt, 12.65133794027378508, 1e-11,
6285                        "jauApci", "pmt");
6286        vvd(astrom.eb[0], 0.901310875, 1e-12,
6287                          "jauApci", "eb(1)");
6288        vvd(astrom.eb[1], -0.417402664, 1e-12,
6289                          "jauApci", "eb(2)");
6290        vvd(astrom.eb[2], -0.180982288, 1e-12,
6291                          "jauApci", "eb(3)");
6292        vvd(astrom.eh[0], 0.8940025429324143045, 1e-12,
6293                          "jauApci", "eh(1)");
6294        vvd(astrom.eh[1], -0.4110930268679817955, 1e-12,
6295                          "jauApci", "eh(2)");
6296        vvd(astrom.eh[2], -0.1782189004872870264, 1e-12,
6297                          "jauApci", "eh(3)");
6298        vvd(astrom.em, 1.010465295811013146, 1e-12,
6299                       "jauApci", "em");
6300        vvd(astrom.v[0], 0.4289638913597693554e-4, 1e-16,
6301                         "jauApci", "v(1)");
6302        vvd(astrom.v[1], 0.8115034051581320575e-4, 1e-16,
6303                         "jauApci", "v(2)");
6304        vvd(astrom.v[2], 0.3517555136380563427e-4, 1e-16,
6305                         "jauApci", "v(3)");
6306        vvd(astrom.bm1, 0.9999999951686012981, 1e-12,
6307                        "jauApci", "bm1");
6308        vvd(astrom.bpn[0][0], 0.9999991390295159156, 1e-12,
6309                              "jauApci", "bpn(1,1)");
6310        vvd(astrom.bpn[1][0], 0.4978650072505016932e-7, 1e-12,
6311                              "jauApci", "bpn(2,1)");
6312        vvd(astrom.bpn[2][0], 0.1312227200000000000e-2, 1e-12,
6313                              "jauApci", "bpn(3,1)");
6314        vvd(astrom.bpn[0][1], -0.1136336653771609630e-7, 1e-12,
6315                              "jauApci", "bpn(1,2)");
6316        vvd(astrom.bpn[1][1], 0.9999999995713154868, 1e-12,
6317                              "jauApci", "bpn(2,2)");
6318        vvd(astrom.bpn[2][1], -0.2928086230000000000e-4, 1e-12,
6319                              "jauApci", "bpn(3,2)");
6320        vvd(astrom.bpn[0][2], -0.1312227200895260194e-2, 1e-12,
6321                              "jauApci", "bpn(1,3)");
6322        vvd(astrom.bpn[1][2], 0.2928082217872315680e-4, 1e-12,
6323                              "jauApci", "bpn(2,3)");
6324        vvd(astrom.bpn[2][2], 0.9999991386008323373, 1e-12,
6325                              "jauApci", "bpn(3,3)");
6326 
6327     }
6328     
6329     @Test
6330     public void t_apci13()
6331     
6332 
6333 
6334 
6335 
6336 
6337 
6338 
6339 
6340 
6341 
6342     {
6343        double date1, date2, eo;
6344        Astrom astrom = new Astrom() ;
6345 
6346 
6347        date1 = 2456165.5;
6348        date2 = 0.401182685;
6349 
6350        eo = jauApci13(date1, date2, astrom);
6351 
6352        vvd(astrom.pmt, 12.65133794027378508, 1e-11,
6353                        "jauApci13", "pmt");
6354        vvd(astrom.eb[0], 0.9013108747340644755, 1e-12,
6355                          "jauApci13", "eb(1)");
6356        vvd(astrom.eb[1], -0.4174026640406119957, 1e-12,
6357                          "jauApci13", "eb(2)");
6358        vvd(astrom.eb[2], -0.1809822877867817771, 1e-12,
6359                          "jauApci13", "eb(3)");
6360        vvd(astrom.eh[0], 0.8940025429255499549, 1e-12,
6361                          "jauApci13", "eh(1)");
6362        vvd(astrom.eh[1], -0.4110930268331896318, 1e-12,
6363                          "jauApci13", "eh(2)");
6364        vvd(astrom.eh[2], -0.1782189006019749850, 1e-12,
6365                          "jauApci13", "eh(3)");
6366        vvd(astrom.em, 1.010465295964664178, 1e-12,
6367                       "jauApci13", "em");
6368        vvd(astrom.v[0], 0.4289638912941341125e-4, 1e-16,
6369                         "jauApci13", "v(1)");
6370        vvd(astrom.v[1], 0.8115034032405042132e-4, 1e-16,
6371                         "jauApci13", "v(2)");
6372        vvd(astrom.v[2], 0.3517555135536470279e-4, 1e-16,
6373                         "jauApci13", "v(3)");
6374        vvd(astrom.bm1, 0.9999999951686013142, 1e-12,
6375                        "jauApci13", "bm1");
6376        vvd(astrom.bpn[0][0], 0.9999992060376761710, 1e-12,
6377                              "jauApci13", "bpn(1,1)");
6378        vvd(astrom.bpn[1][0], 0.4124244860106037157e-7, 1e-12,
6379                              "jauApci13", "bpn(2,1)");
6380        vvd(astrom.bpn[2][0], 0.1260128571051709670e-2, 1e-12,
6381                              "jauApci13", "bpn(3,1)");
6382        vvd(astrom.bpn[0][1], -0.1282291987222130690e-7, 1e-12,
6383                              "jauApci13", "bpn(1,2)");
6384        vvd(astrom.bpn[1][1], 0.9999999997456835325, 1e-12,
6385                              "jauApci13", "bpn(2,2)");
6386        vvd(astrom.bpn[2][1], -0.2255288829420524935e-4, 1e-12,
6387                              "jauApci13", "bpn(3,2)");
6388        vvd(astrom.bpn[0][2], -0.1260128571661374559e-2, 1e-12,
6389                              "jauApci13", "bpn(1,3)");
6390        vvd(astrom.bpn[1][2], 0.2255285422953395494e-4, 1e-12,
6391                              "jauApci13", "bpn(2,3)");
6392        vvd(astrom.bpn[2][2], 0.9999992057833604343, 1e-12,
6393                              "jauApci13", "bpn(3,3)");
6394        vvd(eo, -0.2900618712657375647e-2, 1e-12,
6395                "jauApci13", "eo");
6396 
6397     } 
6398     
6399     @Test
6400     public void t_apco() throws JSOFAIllegalParameter, JSOFAInternalError
6401     
6402 
6403 
6404 
6405 
6406 
6407 
6408 
6409 
6410 
6411 
6412     {
6413        double date1, date2, ebpv[][] = new double[2][3], ehp[] = new double[3], x, y, s,
6414               theta, elong, phi, hm, xp, yp, sp, refa, refb;
6415        Astrom astrom = new Astrom() ;
6416 
6417 
6418        date1 = 2456384.5;
6419        date2 = 0.970031644;
6420        ebpv[0][0] = -0.974170438;
6421        ebpv[0][1] = -0.211520082;
6422        ebpv[0][2] = -0.0917583024;
6423        ebpv[1][0] = 0.00364365824;
6424        ebpv[1][1] = -0.0154287319;
6425        ebpv[1][2] = -0.00668922024;
6426        ehp[0] = -0.973458265;
6427        ehp[1] = -0.209215307;
6428        ehp[2] = -0.0906996477;
6429        x = 0.0013122272;
6430        y = -2.92808623e-5;
6431        s = 3.05749468e-8;
6432        theta = 3.14540971;
6433        elong = -0.527800806;
6434        phi = -1.2345856;
6435        hm = 2738.0;
6436        xp = 2.47230737e-7;
6437        yp = 1.82640464e-6;
6438        sp = -3.01974337e-11;
6439        refa = 0.000201418779;
6440        refb = -2.36140831e-7;
6441 
6442        jauApco(date1, date2, ebpv, ehp, x, y, s,
6443                theta, elong, phi, hm, xp, yp, sp,
6444                refa, refb, astrom);
6445 
6446        vvd(astrom.pmt, 13.25248468622587269, 1e-11,
6447                        "jauApco", "pmt");
6448        vvd(astrom.eb[0], -0.9741827110630322720, 1e-12,
6449                          "jauApco", "eb(1)");
6450        vvd(astrom.eb[1], -0.2115130190135344832, 1e-12,
6451                          "jauApco", "eb(2)");
6452        vvd(astrom.eb[2], -0.09179840186949532298, 1e-12,
6453                          "jauApco", "eb(3)");
6454        vvd(astrom.eh[0], -0.9736425571689739035, 1e-12,
6455                          "jauApco", "eh(1)");
6456        vvd(astrom.eh[1], -0.2092452125849330936, 1e-12,
6457                          "jauApco", "eh(2)");
6458        vvd(astrom.eh[2], -0.09075578152243272599, 1e-12,
6459                          "jauApco", "eh(3)");
6460        vvd(astrom.em, 0.9998233241709957653, 1e-12,
6461                       "jauApco", "em");
6462        vvd(astrom.v[0], 0.2078704992916728762e-4, 1e-16,
6463                         "jauApco", "v(1)");
6464        vvd(astrom.v[1], -0.8955360107151952319e-4, 1e-16,
6465                         "jauApco", "v(2)");
6466        vvd(astrom.v[2], -0.3863338994288951082e-4, 1e-16,
6467                         "jauApco", "v(3)");
6468        vvd(astrom.bm1, 0.9999999950277561236, 1e-12,
6469                        "jauApco", "bm1");
6470        vvd(astrom.bpn[0][0], 0.9999991390295159156, 1e-12,
6471                              "jauApco", "bpn(1,1)");
6472        vvd(astrom.bpn[1][0], 0.4978650072505016932e-7, 1e-12,
6473                              "jauApco", "bpn(2,1)");
6474        vvd(astrom.bpn[2][0], 0.1312227200000000000e-2, 1e-12,
6475                              "jauApco", "bpn(3,1)");
6476        vvd(astrom.bpn[0][1], -0.1136336653771609630e-7, 1e-12,
6477                              "jauApco", "bpn(1,2)");
6478        vvd(astrom.bpn[1][1], 0.9999999995713154868, 1e-12,
6479                              "jauApco", "bpn(2,2)");
6480        vvd(astrom.bpn[2][1], -0.2928086230000000000e-4, 1e-12,
6481                              "jauApco", "bpn(3,2)");
6482        vvd(astrom.bpn[0][2], -0.1312227200895260194e-2, 1e-12,
6483                              "jauApco", "bpn(1,3)");
6484        vvd(astrom.bpn[1][2], 0.2928082217872315680e-4, 1e-12,
6485                              "jauApco", "bpn(2,3)");
6486        vvd(astrom.bpn[2][2], 0.9999991386008323373, 1e-12,
6487                              "jauApco", "bpn(3,3)");
6488        vvd(astrom.along, -0.5278008060295995734, 1e-12,
6489                          "jauApco", "along");
6490        vvd(astrom.xpl, 0.1133427418130752958e-5, 1e-17,
6491                        "jauApco", "xpl");
6492        vvd(astrom.ypl, 0.1453347595780646207e-5, 1e-17,
6493                        "jauApco", "ypl");
6494        vvd(astrom.sphi, -0.9440115679003211329, 1e-12,
6495                         "jauApco", "sphi");
6496        vvd(astrom.cphi, 0.3299123514971474711, 1e-12,
6497                         "jauApco", "cphi");
6498        vvd(astrom.diurab, 0, 0,
6499                           "jauApco", "diurab");
6500        vvd(astrom.eral, 2.617608903970400427, 1e-12,
6501                         "jauApco", "eral");
6502        vvd(astrom.refa, 0.2014187790000000000e-3, 1e-15,
6503                         "jauApco", "refa");
6504        vvd(astrom.refb, -0.2361408310000000000e-6, 1e-18,
6505                         "jauApco", "refb");
6506 
6507     }
6508     
6509 
6510 
6511 @Test
6512     public void t_apco13() throws JSOFAIllegalParameter, JSOFAInternalError
6513 
6514 
6515 
6516 
6517 
6518 
6519 
6520 
6521 
6522 
6523 {
6524    double utc1, utc2, dut1, elong, phi, hm, xp, yp,
6525           phpa, tc, rh, wl, eo;
6526    Astrom astrom = new Astrom() ;
6527 
6528 
6529    utc1 = 2456384.5;
6530    utc2 = 0.969254051;
6531    dut1 = 0.1550675;
6532    elong = -0.527800806;
6533    phi = -1.2345856;
6534    hm = 2738.0;
6535    xp = 2.47230737e-7;
6536    yp = 1.82640464e-6;
6537    phpa = 731.0;
6538    tc = 12.8;
6539    rh = 0.59;
6540    wl = 0.55;
6541 
6542    eo = jauApco13(utc1, utc2, dut1, elong, phi, hm, xp, yp,
6543                  phpa, tc, rh, wl, astrom);
6544 
6545    vvd(astrom.pmt, 13.25248468622475727, 1e-11,
6546                    "jauApco13", "pmt");
6547    vvd(astrom.eb[0], -0.9741827107320875162, 1e-12,
6548                    "jauApco13", "eb(1)");
6549    vvd(astrom.eb[1], -0.2115130190489716682, 1e-12,
6550                      "jauApco13", "eb(2)");
6551    vvd(astrom.eb[2], -0.09179840189496755339, 1e-12,
6552                      "jauApco13", "eb(3)");
6553    vvd(astrom.eh[0], -0.9736425572586935247, 1e-12,
6554                      "jauApco13", "eh(1)");
6555    vvd(astrom.eh[1], -0.2092452121603336166, 1e-12,
6556                      "jauApco13", "eh(2)");
6557    vvd(astrom.eh[2], -0.09075578153885665295, 1e-12,
6558                      "jauApco13", "eh(3)");
6559    vvd(astrom.em, 0.9998233240913898141, 1e-12,
6560                   "jauApco13", "em");
6561    vvd(astrom.v[0], 0.2078704994520489246e-4, 1e-16,
6562                     "jauApco13", "v(1)");
6563    vvd(astrom.v[1], -0.8955360133238868938e-4, 1e-16,
6564                     "jauApco13", "v(2)");
6565    vvd(astrom.v[2], -0.3863338993055887398e-4, 1e-16,
6566                     "jauApco13", "v(3)");
6567    vvd(astrom.bm1, 0.9999999950277561004, 1e-12,
6568                    "jauApco13", "bm1");
6569    vvd(astrom.bpn[0][0], 0.9999991390295147999, 1e-12,
6570                          "jauApco13", "bpn(1,1)");
6571    vvd(astrom.bpn[1][0], 0.4978650075315529277e-7, 1e-12,
6572                          "jauApco13", "bpn(2,1)");
6573    vvd(astrom.bpn[2][0], 0.001312227200850293372, 1e-12,
6574                          "jauApco13", "bpn(3,1)");
6575    vvd(astrom.bpn[0][1], -0.1136336652812486604e-7, 1e-12,
6576                          "jauApco13", "bpn(1,2)");
6577    vvd(astrom.bpn[1][1], 0.9999999995713154865, 1e-12,
6578                          "jauApco13", "bpn(2,2)");
6579    vvd(astrom.bpn[2][1], -0.2928086230975367296e-4, 1e-12,
6580                          "jauApco13", "bpn(3,2)");
6581    vvd(astrom.bpn[0][2], -0.001312227201745553566, 1e-12,
6582                          "jauApco13", "bpn(1,3)");
6583    vvd(astrom.bpn[1][2], 0.2928082218847679162e-4, 1e-12,
6584                          "jauApco13", "bpn(2,3)");
6585    vvd(astrom.bpn[2][2], 0.9999991386008312212, 1e-12,
6586                          "jauApco13", "bpn(3,3)");
6587    vvd(astrom.along, -0.5278008060295995733, 1e-12,
6588                      "jauApco13", "along");
6589    vvd(astrom.xpl, 0.1133427418130752958e-5, 1e-17,
6590                    "jauApco13", "xpl");
6591    vvd(astrom.ypl, 0.1453347595780646207e-5, 1e-17,
6592                    "jauApco13", "ypl");
6593    vvd(astrom.sphi, -0.9440115679003211329, 1e-12,
6594                     "jauApco13", "sphi");
6595    vvd(astrom.cphi, 0.3299123514971474711, 1e-12,
6596                     "jauApco13", "cphi");
6597    vvd(astrom.diurab, 0, 0,
6598                       "jauApco13", "diurab");
6599    vvd(astrom.eral, 2.617608909189664000, 1e-12,
6600                     "jauApco13", "eral");
6601    vvd(astrom.refa, 0.2014187785940396921e-3, 1e-15,
6602                     "jauApco13", "refa");
6603    vvd(astrom.refb, -0.2361408314943696227e-6, 1e-18,
6604                     "jauApco13", "refb");
6605    vvd(eo, -0.003020548354802412839, 1e-14,
6606            "jauApco13", "eo");
6607 
6608 }
6609 
6610 @Test
6611     public void t_apcs()
6612 
6613 
6614 
6615 
6616 
6617 
6618 
6619 
6620 
6621 
6622 {
6623    double date1, date2, pv[][] = new double[2][3], ebpv[][] = new double[2][3], ehp[] = new double[3];
6624    Astrom astrom = new Astrom() ;
6625 
6626 
6627    date1 = 2456384.5;
6628    date2 = 0.970031644;
6629    pv[0][0] = -1836024.09;
6630    pv[0][1] = 1056607.72;
6631    pv[0][2] = -5998795.26;
6632    pv[1][0] = -77.0361767;
6633    pv[1][1] = -133.310856;
6634    pv[1][2] = 0.0971855934;
6635    ebpv[0][0] = -0.974170438;
6636    ebpv[0][1] = -0.211520082;
6637    ebpv[0][2] = -0.0917583024;
6638    ebpv[1][0] = 0.00364365824;
6639    ebpv[1][1] = -0.0154287319;
6640    ebpv[1][2] = -0.00668922024;
6641    ehp[0] = -0.973458265;
6642    ehp[1] = -0.209215307;
6643    ehp[2] = -0.0906996477;
6644 
6645    jauApcs(date1, date2, pv, ebpv, ehp, astrom);
6646 
6647    vvd(astrom.pmt, 13.25248468622587269, 1e-11,
6648                    "jauApcs", "pmt");
6649    vvd(astrom.eb[0], -0.9741827110629881886, 1e-12,
6650                      "jauApcs", "eb(1)");
6651    vvd(astrom.eb[1], -0.2115130190136415986, 1e-12,
6652                      "jauApcs", "eb(2)");
6653    vvd(astrom.eb[2], -0.09179840186954412099, 1e-12,
6654                      "jauApcs", "eb(3)");
6655    vvd(astrom.eh[0], -0.9736425571689454706, 1e-12,
6656                      "jauApcs", "eh(1)");
6657    vvd(astrom.eh[1], -0.2092452125850435930, 1e-12,
6658                      "jauApcs", "eh(2)");
6659    vvd(astrom.eh[2], -0.09075578152248299218, 1e-12,
6660                      "jauApcs", "eh(3)");
6661    vvd(astrom.em, 0.9998233241709796859, 1e-12,
6662                   "jauApcs", "em");
6663    vvd(astrom.v[0], 0.2078704993282685510e-4, 1e-16,
6664                     "jauApcs", "v(1)");
6665    vvd(astrom.v[1], -0.8955360106989405683e-4, 1e-16,
6666                     "jauApcs", "v(2)");
6667    vvd(astrom.v[2], -0.3863338994289409097e-4, 1e-16,
6668                     "jauApcs", "v(3)");
6669    vvd(astrom.bm1, 0.9999999950277561237, 1e-12,
6670                    "jauApcs", "bm1");
6671    vvd(astrom.bpn[0][0], 1, 0,
6672                          "jauApcs", "bpn(1,1)");
6673    vvd(astrom.bpn[1][0], 0, 0,
6674                          "jauApcs", "bpn(2,1)");
6675    vvd(astrom.bpn[2][0], 0, 0,
6676                          "jauApcs", "bpn(3,1)");
6677    vvd(astrom.bpn[0][1], 0, 0,
6678                          "jauApcs", "bpn(1,2)");
6679    vvd(astrom.bpn[1][1], 1, 0,
6680                          "jauApcs", "bpn(2,2)");
6681    vvd(astrom.bpn[2][1], 0, 0,
6682                          "jauApcs", "bpn(3,2)");
6683    vvd(astrom.bpn[0][2], 0, 0,
6684                          "jauApcs", "bpn(1,3)");
6685    vvd(astrom.bpn[1][2], 0, 0,
6686                          "jauApcs", "bpn(2,3)");
6687    vvd(astrom.bpn[2][2], 1, 0,
6688                          "jauApcs", "bpn(3,3)");
6689 
6690 }
6691 
6692 @Test
6693     public void t_apcs13()
6694 
6695 
6696 
6697 
6698 
6699 
6700 
6701 
6702 
6703 
6704 {
6705    double date1, date2, pv[][] = new double[2][3];
6706    Astrom astrom = new Astrom() ;
6707 
6708 
6709    date1 = 2456165.5;
6710    date2 = 0.401182685;
6711    pv[0][0] = -6241497.16;
6712    pv[0][1] = 401346.896;
6713    pv[0][2] = -1251136.04;
6714    pv[1][0] = -29.264597;
6715    pv[1][1] = -455.021831;
6716    pv[1][2] = 0.0266151194;
6717 
6718    jauApcs13(date1, date2, pv, astrom);
6719 
6720    vvd(astrom.pmt, 12.65133794027378508, 1e-11,
6721                    "jauApcs13", "pmt");
6722    vvd(astrom.eb[0], 0.9012691529025250644, 1e-12,
6723                      "jauApcs13", "eb(1)");
6724    vvd(astrom.eb[1], -0.4173999812023194317, 1e-12,
6725                      "jauApcs13", "eb(2)");
6726    vvd(astrom.eb[2], -0.1809906511146429670, 1e-12,
6727                      "jauApcs13", "eb(3)");
6728    vvd(astrom.eh[0], 0.8939939101760130792, 1e-12,
6729                      "jauApcs13", "eh(1)");
6730    vvd(astrom.eh[1], -0.4111053891734021478, 1e-12,
6731                      "jauApcs13", "eh(2)");
6732    vvd(astrom.eh[2], -0.1782336880636997374, 1e-12,
6733                      "jauApcs13", "eh(3)");
6734    vvd(astrom.em, 1.010428384373491095, 1e-12,
6735                   "jauApcs13", "em");
6736    vvd(astrom.v[0], 0.4279877294121697570e-4, 1e-16,
6737                     "jauApcs13", "v(1)");
6738    vvd(astrom.v[1], 0.7963255087052120678e-4, 1e-16,
6739                     "jauApcs13", "v(2)");
6740    vvd(astrom.v[2], 0.3517564013384691531e-4, 1e-16,
6741                     "jauApcs13", "v(3)");
6742    vvd(astrom.bm1, 0.9999999952947980978, 1e-12,
6743                    "jauApcs13", "bm1");
6744    vvd(astrom.bpn[0][0], 1, 0,
6745                          "jauApcs13", "bpn(1,1)");
6746    vvd(astrom.bpn[1][0], 0, 0,
6747                          "jauApcs13", "bpn(2,1)");
6748    vvd(astrom.bpn[2][0], 0, 0,
6749                          "jauApcs13", "bpn(3,1)");
6750    vvd(astrom.bpn[0][1], 0, 0,
6751                          "jauApcs13", "bpn(1,2)");
6752    vvd(astrom.bpn[1][1], 1, 0,
6753                          "jauApcs13", "bpn(2,2)");
6754    vvd(astrom.bpn[2][1], 0, 0,
6755                          "jauApcs13", "bpn(3,2)");
6756    vvd(astrom.bpn[0][2], 0, 0,
6757                          "jauApcs13", "bpn(1,3)");
6758    vvd(astrom.bpn[1][2], 0, 0,
6759                          "jauApcs13", "bpn(2,3)");
6760    vvd(astrom.bpn[2][2], 1, 0,
6761                          "jauApcs13", "bpn(3,3)");
6762 
6763 }
6764 @Test
6765     public void t_aper()
6766 
6767 
6768 
6769 
6770 
6771 
6772 
6773 
6774 
6775 
6776 {
6777    double theta;
6778    Astrom astrom = new Astrom() ;
6779 
6780 
6781    astrom.along = 1.234;
6782    theta = 5.678;
6783 
6784    jauAper(theta, astrom);
6785 
6786    vvd(astrom.eral, 6.912000000000000000, 1e-12,
6787                     "jauAper", "pmt");
6788 
6789 }
6790 @Test
6791     public void t_aper13()
6792 
6793 
6794 
6795 
6796 
6797 
6798 
6799 
6800 
6801 
6802 {
6803    double ut11, ut12;
6804    Astrom astrom = new Astrom() ;
6805 
6806 
6807    astrom.along = 1.234;
6808    ut11 = 2456165.5;
6809    ut12 = 0.401182685;
6810 
6811    jauAper13(ut11, ut12, astrom);
6812 
6813    vvd(astrom.eral, 3.316236661789694933, 1e-12,
6814                     "jauAper13", "pmt");
6815 
6816 }
6817 @Test
6818     public void t_apio() throws JSOFAIllegalParameter, JSOFAInternalError
6819 
6820 
6821 
6822 
6823 
6824 
6825 
6826 
6827 
6828 
6829 {
6830    double sp, theta, elong, phi, hm, xp, yp, refa, refb;
6831    Astrom astrom = new Astrom() ;
6832 
6833 
6834    sp = -3.01974337e-11;
6835    theta = 3.14540971;
6836    elong = -0.527800806;
6837    phi = -1.2345856;
6838    hm = 2738.0;
6839    xp = 2.47230737e-7;
6840    yp = 1.82640464e-6;
6841    refa = 0.000201418779;
6842    refb = -2.36140831e-7;
6843 
6844    jauApio(sp, theta, elong, phi, hm, xp, yp, refa, refb, astrom);
6845 
6846    vvd(astrom.along, -0.5278008060295995734, 1e-12,
6847                      "jauApio", "along");
6848    vvd(astrom.xpl, 0.1133427418130752958e-5, 1e-17,
6849                    "jauApio", "xpl");
6850    vvd(astrom.ypl, 0.1453347595780646207e-5, 1e-17,
6851                    "jauApio", "ypl");
6852    vvd(astrom.sphi, -0.9440115679003211329, 1e-12,
6853                     "jauApio", "sphi");
6854    vvd(astrom.cphi, 0.3299123514971474711, 1e-12,
6855                     "jauApio", "cphi");
6856    vvd(astrom.diurab, 0.5135843661699913529e-6, 1e-12,
6857                       "jauApio", "diurab");
6858    vvd(astrom.eral, 2.617608903970400427, 1e-12,
6859                     "jauApio", "eral");
6860    vvd(astrom.refa, 0.2014187790000000000e-3, 1e-15,
6861                     "jauApio", "refa");
6862    vvd(astrom.refb, -0.2361408310000000000e-6, 1e-18,
6863                     "jauApio", "refb");
6864 
6865 }
6866 
6867 @Test
6868     public void t_apio13() throws JSOFAIllegalParameter, JSOFAInternalError
6869 
6870 
6871 
6872 
6873 
6874 
6875 
6876 
6877 
6878 
6879 {
6880    double utc1, utc2, dut1, elong, phi, hm, xp, yp, phpa, tc, rh, wl;
6881 
6882    Astrom astrom = new Astrom() ;
6883 
6884 
6885    utc1 = 2456384.5;
6886    utc2 = 0.969254051;
6887    dut1 = 0.1550675;
6888    elong = -0.527800806;
6889    phi = -1.2345856;
6890    hm = 2738.0;
6891    xp = 2.47230737e-7;
6892    yp = 1.82640464e-6;
6893    phpa = 731.0;
6894    tc = 12.8;
6895    rh = 0.59;
6896    wl = 0.55;
6897 
6898    jauApio13(utc1, utc2, dut1, elong, phi, hm, xp, yp,
6899                  phpa, tc, rh, wl, astrom);
6900 
6901    vvd(astrom.along,  -0.5278008060295995733, 1e-12,
6902                      "jauApio13", "along");
6903    vvd(astrom.xpl, 0.1133427418130752958e-5, 1e-17,
6904                    "jauApio13", "xpl");
6905    vvd(astrom.ypl, 0.1453347595780646207e-5, 1e-17,
6906                    "jauApio13", "ypl");
6907    vvd(astrom.sphi, -0.9440115679003211329, 1e-12,
6908                     "jauApio13", "sphi");
6909    vvd(astrom.cphi, 0.3299123514971474711, 1e-12,
6910                     "jauApio13", "cphi");
6911    vvd(astrom.diurab, 0.5135843661699913529e-6, 1e-12,
6912                       "jauApio13", "diurab");
6913    vvd(astrom.eral, 2.617608909189664000, 1e-12,
6914                     "jauApio13", "eral");
6915    vvd(astrom.refa, 0.2014187785940396921e-3, 1e-15,
6916                     "jauApio13", "refa");
6917    vvd(astrom.refb, -0.2361408314943696227e-6, 1e-18,
6918                     "jauApio13", "refb");
6919 
6920 }
6921 
6922 @Test
6923     public void t_atci13()
6924 
6925 
6926 
6927 
6928 
6929 
6930 
6931 
6932 
6933 
6934 {
6935    double rc, dc, pr, pd, px, rv, date1, date2;
6936 
6937 
6938    rc = 2.71;
6939    dc = 0.174;
6940    pr = 1e-5;
6941    pd = 5e-6;
6942    px = 0.1;
6943    rv = 55.0;
6944    date1 = 2456165.5;
6945    date2 = 0.401182685;
6946 
6947    SphericalCoordinateEO coe = jauAtci13(rc, dc, pr, pd, px, rv, date1, date2);
6948 
6949    vvd(coe.pos.alpha, 2.710121572968696744, 1e-12,
6950            "jauAtci13", "ri");
6951    vvd(coe.pos.delta, 0.1729371367219539137, 1e-12,
6952            "jauAtci13", "di");
6953    vvd(coe.eo, -0.002900618712657375647, 1e-14,
6954            "jauAtci13", "eo");
6955 
6956 }
6957 
6958 @Test
6959     public void t_atciq()
6960 
6961 
6962 
6963 
6964 
6965 
6966 
6967 
6968 
6969 
6970 {
6971    double date1, date2, rc, dc, pr, pd, px, rv;
6972    Astrom astrom = new Astrom() ;
6973 
6974    date1 = 2456165.5;
6975    date2 = 0.401182685;
6976    jauApci13(date1, date2, astrom);
6977    rc = 2.71;
6978    dc = 0.174;
6979    pr = 1e-5;
6980    pd = 5e-6;
6981    px = 0.1;
6982    rv = 55.0;
6983 
6984    SphericalCoordinate co = jauAtciq(rc, dc, pr, pd, px, rv, astrom);
6985 
6986    vvd(co.alpha, 2.710121572968696744, 1e-12, "jauAtciq", "ri");
6987    vvd(co.delta, 0.1729371367219539137, 1e-12, "jauAtciq", "di");
6988 
6989 }
6990 
6991 
6992 
6993 @Test
6994     public void t_atciqn()
6995 
6996 
6997 
6998 
6999 
7000 
7001 
7002 
7003 
7004 
7005 {
7006    Ldbody b[] = {new Ldbody(),new Ldbody(),new Ldbody()};
7007    double date1, date2, rc, dc, pr, pd, px, rv;
7008    Astrom astrom = new Astrom() ;
7009 
7010    date1 = 2456165.5;
7011    date2 = 0.401182685;
7012    jauApci13(date1, date2, astrom);
7013    rc = 2.71;
7014    dc = 0.174;
7015    pr = 1e-5;
7016    pd = 5e-6;
7017    px = 0.1;
7018    rv = 55.0;
7019    b[0].bm = 0.00028574;
7020    b[0].dl = 3e-10;
7021    b[0].pv[0][0] = -7.81014427;
7022    b[0].pv[0][1] = -5.60956681;
7023    b[0].pv[0][2] = -1.98079819;
7024    b[0].pv[1][0] =  0.0030723249;
7025    b[0].pv[1][1] = -0.00406995477;
7026    b[0].pv[1][2] = -0.00181335842;
7027    b[1].bm = 0.00095435;
7028    b[1].dl = 3e-9;
7029    b[1].pv[0][0] =  0.738098796;
7030    b[1].pv[0][1] =  4.63658692;
7031    b[1].pv[0][2] =  1.9693136;
7032    b[1].pv[1][0] = -0.00755816922;
7033    b[1].pv[1][1] =  0.00126913722;
7034    b[1].pv[1][2] =  0.000727999001;
7035    b[2].bm = 1.0;
7036    b[2].dl = 6e-6;
7037    b[2].pv[0][0] = -0.000712174377;
7038    b[2].pv[0][1] = -0.00230478303;
7039    b[2].pv[0][2] = -0.00105865966;
7040    b[2].pv[1][0] =  6.29235213e-6;
7041    b[2].pv[1][1] = -3.30888387e-7;
7042    b[2].pv[1][2] = -2.96486623e-7;
7043 
7044    SphericalCoordinate co = jauAtciqn( rc, dc, pr, pd, px, rv, astrom, 3, b);
7045 
7046    vvd(co.alpha, 2.710122008104983335, 1e-12, "jauAtciqn", "ri");
7047    vvd(co.delta, 0.1729371916492767821, 1e-12, "jauAtciqn", "di");
7048 
7049 }
7050 @Test
7051     public void t_atciqz()
7052 
7053 
7054 
7055 
7056 
7057 
7058 
7059 
7060 
7061 
7062 {
7063    double date1, date2, rc, dc;
7064    Astrom astrom = new Astrom() ;
7065 
7066 
7067    date1 = 2456165.5;
7068    date2 = 0.401182685;
7069    jauApci13(date1, date2, astrom);
7070    rc = 2.71;
7071    dc = 0.174;
7072 
7073    SphericalCoordinate co = jauAtciqz(rc, dc, astrom);
7074 
7075    vvd(co.alpha, 2.709994899247256984, 1e-12, "jauAtciqz", "ri");
7076    vvd(co.delta, 0.1728740720984931891, 1e-12, "jauAtciqz", "di");
7077 
7078 }
7079 
7080 @Test
7081     public void t_atco13() throws JSOFAIllegalParameter, JSOFAInternalError
7082 
7083 
7084 
7085 
7086 
7087 
7088 
7089 
7090 
7091 
7092 {
7093    double rc, dc, pr, pd, px, rv, utc1, utc2, dut1,
7094           elong, phi, hm, xp, yp, phpa, tc, rh, wl
7095         ;
7096 
7097 
7098    rc = 2.71;
7099    dc = 0.174;
7100    pr = 1e-5;
7101    pd = 5e-6;
7102    px = 0.1;
7103    rv = 55.0;
7104    utc1 = 2456384.5;
7105    utc2 = 0.969254051;
7106    dut1 = 0.1550675;
7107    elong = -0.527800806;
7108    phi = -1.2345856;
7109    hm = 2738.0;
7110    xp = 2.47230737e-7;
7111    yp = 1.82640464e-6;
7112    phpa = 731.0;
7113    tc = 12.8;
7114    rh = 0.59;
7115    wl = 0.55;
7116 
7117    ObservedPositionEO ope = jauAtco13(rc, dc, pr, pd, px, rv,
7118                  utc1, utc2, dut1, elong, phi, hm, xp, yp,
7119                  phpa, tc, rh, wl);
7120 
7121    vvd(ope.op.aob, 0.9251774485485515207e-1, 1e-12, "jauAtco13", "aob");
7122    vvd(ope.op.zob, 1.407661405256499357, 1e-12, "jauAtco13", "zob");
7123    vvd(ope.op.hob, -0.9265154431529724692e-1, 1e-12, "jauAtco13", "hob");
7124    vvd(ope.op.dob, 0.1716626560072526200, 1e-12, "jauAtco13", "dob");
7125    vvd(ope.op.rob, 2.710260453504961012, 1e-12, "jauAtco13", "rob");
7126    vvd(ope.eo, -0.003020548354802412839, 1e-14, "jauAtco13", "eo");
7127 
7128 }
7129 
7130 @Test
7131     public void t_atic13()
7132 
7133 
7134 
7135 
7136 
7137 
7138 
7139 
7140 
7141 
7142 {
7143    double ri, di, date1, date2;
7144 
7145 
7146    ri = 2.710121572969038991;
7147    di = 0.1729371367218230438;
7148    date1 = 2456165.5;
7149    date2 = 0.401182685;
7150 
7151    SphericalCoordinateEO oe = jauAtic13(ri, di, date1, date2);
7152 
7153    vvd(oe.pos.alpha, 2.710126504531716819, 1e-12, "jauAtic13", "rc");
7154    vvd(oe.pos.delta, 0.1740632537627034482, 1e-12, "jauAtic13", "dc");
7155    vvd(oe.eo, -0.002900618712657375647, 1e-14, "jauAtic13", "eo");
7156 
7157 }
7158 
7159 @Test
7160     public void t_aticq()
7161 
7162 
7163 
7164 
7165 
7166 
7167 
7168 
7169 
7170 
7171 {
7172    double date1, date2, ri, di;
7173    Astrom astrom = new Astrom() ;
7174 
7175 
7176    date1 = 2456165.5;
7177    date2 = 0.401182685;
7178    jauApci13(date1, date2, astrom);
7179    ri = 2.710121572969038991;
7180    di = 0.1729371367218230438;
7181 
7182    SphericalCoordinate co = jauAticq(ri, di, astrom);
7183 
7184    vvd(co.alpha, 2.710126504531716819, 1e-12, "jauAticq", "rc");
7185    vvd(co.delta, 0.1740632537627034482, 1e-12, "jauAticq", "dc");
7186 
7187 }
7188 
7189 @Test
7190     public void t_aticqn()
7191 
7192 
7193 
7194 
7195 
7196 
7197 
7198 
7199 
7200 
7201 {
7202    double date1, date2, ri, di;
7203    Ldbody b[] = {new Ldbody(),new Ldbody(),new Ldbody()};
7204    Astrom astrom = new Astrom() ;
7205 
7206 
7207    date1 = 2456165.5;
7208    date2 = 0.401182685;
7209    jauApci13(date1, date2, astrom);
7210    ri = 2.709994899247599271;
7211    di = 0.1728740720983623469;
7212    b[0].bm = 0.00028574;
7213    b[0].dl = 3e-10;
7214    b[0].pv[0][0] = -7.81014427;
7215    b[0].pv[0][1] = -5.60956681;
7216    b[0].pv[0][2] = -1.98079819;
7217    b[0].pv[1][0] =  0.0030723249;
7218    b[0].pv[1][1] = -0.00406995477;
7219    b[0].pv[1][2] = -0.00181335842;
7220    b[1].bm = 0.00095435;
7221    b[1].dl = 3e-9;
7222    b[1].pv[0][0] =  0.738098796;
7223    b[1].pv[0][1] =  4.63658692;
7224    b[1].pv[0][2] =  1.9693136;
7225    b[1].pv[1][0] = -0.00755816922;
7226    b[1].pv[1][1] =  0.00126913722;
7227    b[1].pv[1][2] =  0.000727999001;
7228    b[2].bm = 1.0;
7229    b[2].dl = 6e-6;
7230    b[2].pv[0][0] = -0.000712174377;
7231    b[2].pv[0][1] = -0.00230478303;
7232    b[2].pv[0][2] = -0.00105865966;
7233    b[2].pv[1][0] =  6.29235213e-6;
7234    b[2].pv[1][1] = -3.30888387e-7;
7235    b[2].pv[1][2] = -2.96486623e-7;
7236 
7237    SphericalCoordinate co = jauAticqn(ri, di, astrom, 3, b);
7238 
7239    vvd(co.alpha, 2.709999575033027333, 1e-12, "jauAtciqn", "rc");
7240    vvd(co.delta, 0.1739999656316469990, 1e-12, "jauAtciqn", "dc");
7241 
7242 }
7243 
7244 @Test
7245     public void t_atio13() throws JSOFAIllegalParameter, JSOFAInternalError
7246 
7247 
7248 
7249 
7250 
7251 
7252 
7253 
7254 
7255 
7256 {
7257    double ri, di, utc1, utc2, dut1, elong, phi, hm, xp, yp,
7258           phpa, tc, rh, wl;
7259 
7260 
7261 
7262    ri = 2.710121572969038991;
7263    di = 0.1729371367218230438;
7264    utc1 = 2456384.5;
7265    utc2 = 0.969254051;
7266    dut1 = 0.1550675;
7267    elong = -0.527800806;
7268    phi = -1.2345856;
7269    hm = 2738.0;
7270    xp = 2.47230737e-7;
7271    yp = 1.82640464e-6;
7272    phpa = 731.0;
7273    tc = 12.8;
7274    rh = 0.59;
7275    wl = 0.55;
7276 
7277    ObservedPosition o = jauAtio13(ri, di, utc1, utc2, dut1, elong, phi, hm,
7278                  xp, yp, phpa, tc, rh, wl
7279                  );
7280 
7281    vvd(o.aob, 0.9233952224895122499e-1, 1e-12, "jauAtio13", "aob");
7282    vvd(o.zob, 1.407758704513549991, 1e-12, "jauAtio13", "zob");
7283    vvd(o.hob, -0.9247619879881698140e-1, 1e-12, "jauAtio13", "hob");
7284    vvd(o.dob, 0.1717653435756234676, 1e-12, "jauAtio13", "dob");
7285    vvd(o.rob, 2.710085107988480746, 1e-12, "jauAtio13", "rob");
7286 
7287 }
7288 
7289 @Test
7290     public void t_atioq() throws JSOFAIllegalParameter, JSOFAInternalError
7291 
7292 
7293 
7294 
7295 
7296 
7297 
7298 
7299 
7300 
7301 {
7302    double utc1, utc2, dut1, elong, phi, hm, xp, yp,
7303           phpa, tc, rh, wl, ri, di;
7304    Astrom astrom = new Astrom() ;
7305 
7306 
7307    utc1 = 2456384.5;
7308    utc2 = 0.969254051;
7309    dut1 = 0.1550675;
7310    elong = -0.527800806;
7311    phi = -1.2345856;
7312    hm = 2738.0;
7313    xp = 2.47230737e-7;
7314    yp = 1.82640464e-6;
7315    phpa = 731.0;
7316    tc = 12.8;
7317    rh = 0.59;
7318    wl = 0.55;
7319    jauApio13(utc1, utc2, dut1, elong, phi, hm, xp, yp,
7320                     phpa, tc, rh, wl, astrom);
7321    ri = 2.710121572969038991;
7322    di = 0.1729371367218230438;
7323 
7324    ObservedPosition o = jauAtioq(ri, di, astrom);
7325 
7326    vvd(o.aob, 0.9233952224895122499e-1, 1e-12, "jauAtioq", "aob");
7327    vvd(o.zob, 1.407758704513549991, 1e-12, "jauAtioq", "zob");
7328    vvd(o.hob, -0.9247619879881698140e-1, 1e-12, "jauAtioq", "hob");
7329    vvd(o.dob, 0.1717653435756234676, 1e-12, "jauAtioq", "dob");
7330    vvd(o.rob, 2.710085107988480746, 1e-12, "jauAtioq", "rob");
7331 
7332 }
7333 
7334 @Test
7335     public void t_atoc13() throws JSOFAIllegalParameter, JSOFAInternalError
7336 
7337 
7338 
7339 
7340 
7341 
7342 
7343 
7344 
7345 
7346 {
7347    double utc1, utc2, dut1,
7348           elong, phi, hm, xp, yp, phpa, tc, rh, wl,
7349           ob1, ob2;
7350 
7351 
7352    utc1 = 2456384.5;
7353    utc2 = 0.969254051;
7354    dut1 = 0.1550675;
7355    elong = -0.527800806;
7356    phi = -1.2345856;
7357    hm = 2738.0;
7358    xp = 2.47230737e-7;
7359    yp = 1.82640464e-6;
7360    phpa = 731.0;
7361    tc = 12.8;
7362    rh = 0.59;
7363    wl = 0.55;
7364 
7365    ob1 = 2.710085107986886201;
7366    ob2 = 0.1717653435758265198;
7367    SphericalCoordinate oc = jauAtoc13 ( "R", ob1, ob2, utc1, utc2, dut1,
7368                    elong, phi, hm, xp, yp, phpa, tc, rh, wl
7369                    );
7370    vvd(oc.alpha, 2.709956744659136129, 1e-12, "jauAtoc13", "R/rc");
7371    vvd(oc.delta, 0.1741696500898471362, 1e-12, "jauAtoc13", "R/dc");
7372 
7373    ob1 = -0.09247619879782006106;
7374    ob2 = 0.1717653435758265198;
7375    oc = jauAtoc13 ( "H", ob1, ob2, utc1, utc2, dut1,
7376                    elong, phi, hm, xp, yp, phpa, tc, rh, wl);
7377    vvd(oc.alpha, 2.709956744659734086, 1e-12, "jauAtoc13", "H/rc");
7378    vvd(oc.delta, 0.1741696500898471362, 1e-12, "jauAtoc13", "H/dc");
7379 
7380    ob1 = 0.09233952224794989993;
7381    ob2 = 1.407758704513722461;
7382    oc = jauAtoc13 ( "A", ob1, ob2, utc1, utc2, dut1,
7383                    elong, phi, hm, xp, yp, phpa, tc, rh, wl);
7384    vvd(oc.alpha, 2.709956744659734086, 1e-12, "jauAtoc13", "A/rc");
7385    vvd(oc.delta, 0.1741696500898471366, 1e-12, "jauAtoc13", "A/dc");
7386 
7387 }
7388 
7389 @Test
7390 public void t_atoi13() throws JSOFAIllegalParameter, JSOFAInternalError
7391 
7392 
7393 
7394 
7395 
7396 
7397 
7398 
7399 
7400 
7401 {
7402    double utc1, utc2, dut1, elong, phi, hm, xp, yp, phpa, tc, rh, wl,
7403           ob1, ob2;
7404 
7405 
7406 
7407    utc1 = 2456384.5;
7408    utc2 = 0.969254051;
7409    dut1 = 0.1550675;
7410    elong = -0.527800806;
7411    phi = -1.2345856;
7412    hm = 2738.0;
7413    xp = 2.47230737e-7;
7414    yp = 1.82640464e-6;
7415    phpa = 731.0;
7416    tc = 12.8;
7417    rh = 0.59;
7418    wl = 0.55;
7419 
7420    ob1 = 2.710085107986886201;
7421    ob2 = 0.1717653435758265198;
7422    SphericalCoordinate co = jauAtoi13( "R", ob1, ob2, utc1, utc2, dut1,
7423                    elong, phi, hm, xp, yp, phpa, tc, rh, wl);
7424    vvd(co.alpha, 2.710121574447540810, 1e-12, "jauAtoi13", "R/ri");
7425    vvd(co.delta, 0.1729371839116608778, 1e-12, "jauAtoi13", "R/di");
7426 
7427    ob1 = -0.09247619879782006106;
7428    ob2 = 0.1717653435758265198;
7429    co = jauAtoi13( "H", ob1, ob2, utc1, utc2, dut1,
7430                    elong, phi, hm, xp, yp, phpa, tc, rh, wl);
7431    vvd(co.alpha, 2.710121574448138676, 1e-12, "jauAtoi13", "H/ri");
7432    vvd(co.delta, 0.1729371839116608778, 1e-12, "jauAtoi13", "H/di");
7433 
7434    ob1 = 0.09233952224794989993;
7435    ob2 = 1.407758704513722461;
7436    co = jauAtoi13( "A", ob1, ob2, utc1, utc2, dut1,
7437                    elong, phi, hm, xp, yp, phpa, tc, rh, wl);
7438    vvd(co.alpha, 2.710121574448138676, 1e-12, "jauAtoi13", "A/ri");
7439    vvd(co.delta, 0.1729371839116608781, 1e-12, "jauAtoi13", "A/di");
7440 
7441 }
7442 
7443 @Test
7444     public void t_atoiq() throws JSOFAIllegalParameter, JSOFAInternalError
7445 
7446 
7447 
7448 
7449 
7450 
7451 
7452 
7453 
7454 
7455 {
7456    double utc1, utc2, dut1, elong, phi, hm, xp, yp, phpa, tc, rh, wl,
7457           ob1, ob2;
7458    Astrom astrom = new Astrom() ;
7459 
7460 
7461    utc1 = 2456384.5;
7462    utc2 = 0.969254051;
7463    dut1 = 0.1550675;
7464    elong = -0.527800806;
7465    phi = -1.2345856;
7466    hm = 2738.0;
7467    xp = 2.47230737e-7;
7468    yp = 1.82640464e-6;
7469    phpa = 731.0;
7470    tc = 12.8;
7471    rh = 0.59;
7472    wl = 0.55;
7473    jauApio13(utc1, utc2, dut1, elong, phi, hm, xp, yp,
7474                     phpa, tc, rh, wl, astrom);
7475 
7476    ob1 = 2.710085107986886201;
7477    ob2 = 0.1717653435758265198;
7478    SphericalCoordinate co = jauAtoiq("R", ob1, ob2, astrom);
7479    vvd(co.alpha, 2.710121574447540810, 1e-12,
7480            "jauAtoiq", "R/ri");
7481    vvd(co.delta, 0.17293718391166087785, 1e-12,
7482            "jauAtoiq", "R/di");
7483 
7484    ob1 = -0.09247619879782006106;
7485    ob2 = 0.1717653435758265198;
7486    co = jauAtoiq("H", ob1, ob2, astrom);
7487    vvd(co.alpha, 2.710121574448138676, 1e-12,
7488            "jauAtoiq", "H/ri");
7489    vvd(co.delta, 0.1729371839116608778, 1e-12,
7490            "jauAtoiq", "H/di");
7491 
7492    ob1 = 0.09233952224794989993;
7493    ob2 = 1.407758704513722461;
7494    co = jauAtoiq("A", ob1, ob2, astrom);
7495    vvd(co.alpha, 2.710121574448138676, 1e-12,
7496            "jauAtoiq", "A/ri");
7497    vvd(co.delta, 0.1729371839116608781, 1e-12,
7498            "jauAtoiq", "A/di");
7499 
7500 }
7501 
7502 @Test
7503     public void t_ld()
7504 
7505 
7506 
7507 
7508 
7509 
7510 
7511 
7512 
7513 
7514 {
7515    double bm, p[] = new double[3], q[] = new double[3], e[] = new double[3], em, dlim, p1[];
7516 
7517 
7518    bm = 0.00028574;
7519    p[0] = -0.763276255;
7520    p[1] = -0.608633767;
7521    p[2] = -0.216735543;
7522    q[0] = -0.763276255;
7523    q[1] = -0.608633767;
7524    q[2] = -0.216735543;
7525    e[0] = 0.76700421;
7526    e[1] = 0.605629598;
7527    e[2] = 0.211937094;
7528    em = 8.91276983;
7529    dlim = 3e-10;
7530 
7531    p1 = jauLd(bm, p, q, e, em, dlim);
7532 
7533    vvd(p1[0], -0.7632762548968159627, 1e-12,
7534                "jauLd", "1");
7535    vvd(p1[1], -0.6086337670823762701, 1e-12,
7536                "jauLd", "2");
7537    vvd(p1[2], -0.2167355431320546947, 1e-12,
7538                "jauLd", "3");
7539 
7540 }
7541 
7542 @Test
7543     public void t_ldn()
7544 
7545 
7546 
7547 
7548 
7549 
7550 
7551 
7552 
7553 
7554 
7555 
7556 
7557 
7558 {
7559    int n;
7560    Ldbody b[] = {new Ldbody(),new Ldbody(),new Ldbody()};
7561    double ob[] = new double[3], sc[] = new double[3], sn[];
7562 
7563 
7564    n = 3;
7565    b[0].bm = 0.00028574;
7566    b[0].dl = 3e-10;
7567    b[0].pv[0][0] = -7.81014427;
7568    b[0].pv[0][1] = -5.60956681;
7569    b[0].pv[0][2] = -1.98079819;
7570    b[0].pv[1][0] =  0.0030723249;
7571    b[0].pv[1][1] = -0.00406995477;
7572    b[0].pv[1][2] = -0.00181335842;
7573    b[1].bm = 0.00095435;
7574    b[1].dl = 3e-9;
7575    b[1].pv[0][0] =  0.738098796;
7576    b[1].pv[0][1] =  4.63658692;
7577    b[1].pv[0][2] =  1.9693136;
7578    b[1].pv[1][0] = -0.00755816922;
7579    b[1].pv[1][1] =  0.00126913722;
7580    b[1].pv[1][2] =  0.000727999001;
7581    b[2].bm = 1.0;
7582    b[2].dl = 6e-6;
7583    b[2].pv[0][0] = -0.000712174377;
7584    b[2].pv[0][1] = -0.00230478303;
7585    b[2].pv[0][2] = -0.00105865966;
7586    b[2].pv[1][0] =  6.29235213e-6;
7587    b[2].pv[1][1] = -3.30888387e-7;
7588    b[2].pv[1][2] = -2.96486623e-7;
7589    ob[0] =  -0.974170437;
7590    ob[1] =  -0.2115201;
7591    ob[2] =  -0.0917583114;
7592    sc[0] =  -0.763276255;
7593    sc[1] =  -0.608633767;
7594    sc[2] =  -0.216735543;
7595 
7596    sn = jauLdn(n, b, ob, sc);
7597 
7598    vvd(sn[0], -0.7632762579693333866, 1e-12,
7599                "jauLdn", "1");
7600    vvd(sn[1], -0.6086337636093002660, 1e-12,
7601                "jauLdn", "2");
7602    vvd(sn[2], -0.2167355420646328159, 1e-12,
7603                "jauLdn", "3");
7604 
7605 }
7606 
7607 @Test
7608     public void t_ldsun()
7609 
7610 
7611 
7612 
7613 
7614 
7615 
7616 
7617 
7618 
7619 {
7620    double p[] = new double[3], e[] = new double[3], em, p1[];
7621 
7622 
7623    p[0] = -0.763276255;
7624    p[1] = -0.608633767;
7625    p[2] = -0.216735543;
7626    e[0] = -0.973644023;
7627    e[1] = -0.20925523;
7628    e[2] = -0.0907169552;
7629    em = 0.999809214;
7630 
7631    p1 = jauLdsun(p, e, em);
7632 
7633    vvd(p1[0], -0.7632762580731413169, 1e-12,
7634                "jauLdsun", "1");
7635    vvd(p1[1], -0.6086337635262647900, 1e-12,
7636                "jauLdsun", "2");
7637    vvd(p1[2], -0.2167355419322321302, 1e-12,
7638                "jauLdsun", "3");
7639 
7640 }
7641 @Test
7642     public void t_pmpx()
7643 
7644 
7645 
7646 
7647 
7648 
7649 
7650 
7651 
7652 
7653 {
7654    double rc, dc, pr, pd, px, rv, pmt, pob[] = new double[3], pco[];
7655 
7656 
7657    rc = 1.234;
7658    dc = 0.789;
7659    pr = 1e-5;
7660    pd = -2e-5;
7661    px = 1e-2;
7662    rv = 10.0;
7663    pmt = 8.75;
7664    pob[0] = 0.9;
7665    pob[1] = 0.4;
7666    pob[2] = 0.1;
7667 
7668    pco = jauPmpx(rc, dc, pr, pd, px, rv, pmt, pob);
7669 
7670    vvd(pco[0], 0.2328137623960308438, 1e-12,
7671                "jauPmpx", "1");
7672    vvd(pco[1], 0.6651097085397855328, 1e-12,
7673                "jauPmpx", "2");
7674    vvd(pco[2], 0.7095257765896359837, 1e-12,
7675                "jauPmpx", "3");
7676 
7677 }
7678 
7679 @Test
7680     public void t_pmsafe() throws JSOFAInternalError
7681 
7682 
7683 
7684 
7685 
7686 
7687 
7688 
7689 
7690 
7691 {
7692    double ra1, dec1, pmr1, pmd1, px1, rv1, ep1a, ep1b, ep2a, ep2b;
7693 
7694 
7695    ra1 = 1.234;
7696    dec1 = 0.789;
7697    pmr1 = 1e-5;
7698    pmd1 = -2e-5;
7699    px1 = 1e-2;
7700    rv1 = 10.0;
7701    ep1a = 2400000.5;
7702    ep1b = 48348.5625;
7703    ep2a = 2400000.5;
7704    ep2b = 51544.5;
7705 
7706    CatalogCoords cc = jauPmsafe(ra1, dec1, pmr1, pmd1, px1, rv1,
7707                  ep1a, ep1b, ep2a, ep2b
7708                  );
7709 
7710    vvd(cc.pos.alpha, 1.234087484501017061, 1e-12,
7711             "jauPmsafe", "ra2");
7712    vvd(cc.pos.delta, 0.7888249982450468567, 1e-12,
7713             "jauPmsafe", "dec2");
7714    vvd(cc.pm.alpha, 0.9996457663586073988e-5, 1e-12,
7715              "jauPmsafe", "pmr2");
7716    vvd(cc.pm.delta, -0.2000040085106754565e-4, 1e-16,
7717              "jauPmsafe", "pmd2");
7718    vvd(cc.px, 0.9999997295356830666e-2, 1e-12,
7719             "jauPmsafe", "px2");
7720    vvd(cc.rv, 10.38468380293920069, 1e-10,
7721             "jauPmsafe", "rv2");
7722 
7723 }
7724 
7725 
7726 @Test
7727     public void t_pvtob() throws JSOFAIllegalParameter, JSOFAInternalError
7728 
7729 
7730 
7731 
7732 
7733 
7734 
7735 
7736 
7737 
7738 {
7739    double elong, phi, hm, xp, yp, sp, theta, pv[][];
7740 
7741 
7742    elong = 2.0;
7743    phi = 0.5;
7744    hm = 3000.0;
7745    xp = 1e-6;
7746    yp = -0.5e-6;
7747    sp = 1e-8;
7748    theta = 5.0;
7749 
7750    pv = jauPvtob(elong, phi, hm, xp, yp, sp, theta);
7751 
7752    vvd(pv[0][0], 4225081.367071159207, 1e-5,
7753                  "jauPvtob", "p(1)");
7754    vvd(pv[0][1], 3681943.215856198144, 1e-5,
7755                  "jauPvtob", "p(2)");
7756    vvd(pv[0][2], 3041149.399241260785, 1e-5,
7757                  "jauPvtob", "p(3)");
7758    vvd(pv[1][0], -268.4915389365998787, 1e-9,
7759                  "jauPvtob", "v(1)");
7760    vvd(pv[1][1], 308.0977983288903123, 1e-9,
7761                  "jauPvtob", "v(2)");
7762    vvd(pv[1][2], 0, 0,
7763                  "jauPvtob", "v(3)");
7764 
7765 }
7766 
7767 @Test
7768     public void t_refco()
7769 
7770 
7771 
7772 
7773 
7774 
7775 
7776 
7777 
7778 
7779 {
7780    double phpa, tc, rh, wl;
7781 
7782 
7783    phpa = 800.0;
7784    tc = 10.0;
7785    rh = 0.9;
7786    wl = 0.4;
7787 
7788    RefCos ref = jauRefco(phpa, tc, rh, wl);
7789 
7790    vvd(ref.a, 0.2264949956241415009e-3, 1e-15,
7791              "jauRefco", "refa");
7792    vvd(ref.b, -0.2598658261729343970e-6, 1e-18,
7793              "jauRefco", "refb");
7794 
7795 }
7796 
7797 
7798 @Test
7799 public void t_d2dtf() throws JSOFAIllegalParameter, JSOFAInternalError
7800 
7801 
7802 
7803 
7804 
7805 
7806 
7807 
7808 
7809 
7810 {
7811 
7812    CalendarHMS c = jauD2dtf("UTC", 5, 2400000.5, 49533.99999);
7813 
7814    viv(c.iy, 1994, "jauD2dtf", "y");
7815    viv(c.im, 6, "jauD2dtf", "mo");
7816    viv(c.id, 30, "jauD2dtf", "d");
7817    viv(c.ihmsf[0], 23, "jauD2dtf", "h");
7818    viv(c.ihmsf[1], 59, "jauD2dtf", "m");
7819    viv(c.ihmsf[2], 60, "jauD2dtf", "s");
7820    viv(c.ihmsf[3], 13599, "jauD2dtf", "f");
7821 
7822 }
7823 
7824 
7825 
7826 
7827 
7828 
7829 
7830 
7831 
7832 
7833 
7834 
7835 
7836 
7837 
7838 
7839 
7840 
7841 
7842 @Test
7843 public void t_dtf2d() throws JSOFAIllegalParameter, JSOFAInternalError
7844 {
7845 
7846    JulianDate jd = jauDtf2d("UTC", 1994, 6, 30, 23, 59, 60.13599);
7847 
7848    vvd(jd.djm0+jd.djm1, 2449534.49999, 1e-6, "jauDtf2d", "u");
7849 
7850 }
7851 
7852 
7853 
7854 
7855 
7856 
7857 
7858 
7859 
7860 
7861 @Test
7862 public void t_g2icrs()
7863 {
7864    double dl, db;
7865    SphericalCoordinate co;
7866 
7867 
7868    dl =  5.5850536063818546461558105;
7869    db = -0.7853981633974483096156608;
7870    co = jauG2icrs(dl, db);
7871    vvd(co.alpha,  5.9338074302227188048671, 1e-14, "jauG2icrs", "Ra");
7872    vvd(co.delta, -1.1784870613579944551541, 1e-14, "jauG2icrs", "Dec");
7873  }
7874 
7875 
7876 
7877 
7878 
7879 
7880 
7881 
7882 
7883 @Test
7884 public void t_icrs2g()
7885 {
7886    double dr, dd;
7887 
7888    dr =  5.9338074302227188048671087;
7889    dd = -1.1784870613579944551540570;
7890    SphericalCoordinate co = jauIcrs2g (dr, dd);
7891    vvd(co.alpha,  5.5850536063818546461558, 1e-14, "jauIcrs2g", "L");
7892    vvd(co.delta, -0.7853981633974483096157, 1e-14, "jauIcrs2g", "B");
7893  }
7894 
7895 
7896 
7897 
7898 
7899 
7900 
7901 
7902 
7903 
7904 
7905 
7906 @Test
7907 public void t_eceq06()
7908 {
7909    double date1, date2, dl, db;
7910 
7911 
7912    date1 = 2456165.5;
7913    date2 = 0.401182685;
7914    dl = 5.1;
7915    db = -0.9;
7916 
7917    SphericalCoordinate co = jauEceq06(date1, date2, dl, db);
7918 
7919    vvd(co.alpha, 5.533459733613627767, 1e-14, "jauEceq06", "dr");
7920    vvd(co.delta, -1.246542932554480576, 1e-14, "jauEceq06", "dd");
7921 
7922 }
7923 
7924 
7925 
7926 
7927 
7928 
7929 
7930 
7931 
7932 
7933 
7934 
7935 @Test
7936 public void t_ecm06()
7937 {
7938    double date1, date2;
7939 
7940 
7941    date1 = 2456165.5;
7942    date2 = 0.401182685;
7943 
7944    double rm[][] = jauEcm06(date1, date2);
7945 
7946    vvd(rm[0][0], 0.9999952427708701137, 1e-14,
7947        "jauEcm06", "rm11");
7948    vvd(rm[0][1], -0.2829062057663042347e-2, 1e-14,
7949        "jauEcm06", "rm12");
7950    vvd(rm[0][2], -0.1229163741100017629e-2, 1e-14,
7951        "jauEcm06", "rm13");
7952    vvd(rm[1][0], 0.3084546876908653562e-2, 1e-14,
7953        "jauEcm06", "rm21");
7954    vvd(rm[1][1], 0.9174891871550392514, 1e-14,
7955        "jauEcm06", "rm22");
7956    vvd(rm[1][2], 0.3977487611849338124, 1e-14,
7957        "jauEcm06", "rm23");
7958    vvd(rm[2][0], 0.2488512951527405928e-5, 1e-14,
7959        "jauEcm06", "rm31");
7960    vvd(rm[2][1], -0.3977506604161195467, 1e-14,
7961        "jauEcm06", "rm32");
7962    vvd(rm[2][2], 0.9174935488232863071, 1e-14,
7963        "jauEcm06", "rm33");
7964 
7965 }
7966 
7967 
7968 
7969 
7970 
7971 
7972 
7973 
7974 
7975 
7976 
7977 
7978 @Test
7979 public void t_eqec06()
7980 {
7981    double date1, date2, dr, dd;
7982 
7983 
7984    date1 = 1234.5;
7985    date2 = 2440000.5;
7986    dr = 1.234;
7987    dd = 0.987;
7988 
7989    SphericalCoordinate co = jauEqec06(date1, date2, dr, dd);
7990 
7991    vvd(co.alpha, 1.342509918994654619, 1e-14, "jauEqec06", "dl");
7992    vvd(co.delta, 0.5926215259704608132, 1e-14, "jauEqec06", "db");
7993 
7994 }
7995 
7996 
7997 
7998 
7999 
8000 
8001 
8002 
8003 
8004 
8005 @Test
8006 public void t_lteceq()
8007 {
8008    double epj, dl, db;
8009 
8010 
8011    epj = 2500.0;
8012    dl = 1.5;
8013    db = 0.6;
8014 
8015    SphericalCoordinate co = jauLteceq(epj, dl, db);
8016 
8017    vvd(co.alpha, 1.275156021861921167, 1e-14, "jauLteceq", "dr");
8018    vvd(co.delta, 0.9966573543519204791, 1e-14, "jauLteceq", "dd");
8019 
8020 }
8021 
8022 
8023 
8024 
8025 
8026 
8027 
8028 
8029 
8030 
8031 
8032 @Test
8033 public void t_ltecm()
8034 {
8035    double epj;
8036 
8037 
8038    epj = -3000.0;
8039 
8040    double rm[][] =jauLtecm(epj);
8041 
8042    vvd(rm[0][0], 0.3564105644859788825, 1e-14,
8043        "jauLtecm", "rm11");
8044    vvd(rm[0][1], 0.8530575738617682284, 1e-14,
8045        "jauLtecm", "rm12");
8046    vvd(rm[0][2], 0.3811355207795060435, 1e-14,
8047        "jauLtecm", "rm13");
8048    vvd(rm[1][0], -0.9343283469640709942, 1e-14,
8049        "jauLtecm", "rm21");
8050    vvd(rm[1][1], 0.3247830597681745976, 1e-14,
8051        "jauLtecm", "rm22");
8052    vvd(rm[1][2], 0.1467872751535940865, 1e-14,
8053        "jauLtecm", "rm23");
8054    vvd(rm[2][0], 0.1431636191201167793e-2, 1e-14,
8055        "jauLtecm", "rm31");
8056    vvd(rm[2][1], -0.4084222566960599342, 1e-14,
8057        "jauLtecm", "rm32");
8058    vvd(rm[2][2], 0.9127919865189030899, 1e-14,
8059        "jauLtecm", "rm33");
8060 
8061 }
8062 
8063 
8064 
8065 
8066 
8067 
8068 
8069 
8070 
8071 
8072 
8073 
8074 @Test
8075 public void t_lteqec()
8076 {
8077    double epj, dr, dd;
8078 
8079 
8080    epj = -1500.0;
8081    dr = 1.234;
8082    dd = 0.987;
8083 
8084    SphericalCoordinate co = jauLteqec(epj, dr, dd);
8085 
8086    vvd(co.alpha, 0.5039483649047114859, 1e-14, "jauLteqec", "dl");
8087    vvd(co.delta, 0.5848534459726224882, 1e-14, "jauLteqec", "db");
8088 
8089 }
8090 
8091 
8092 
8093 
8094 
8095 
8096 
8097 
8098 
8099 
8100 
8101 @Test
8102 public void t_ltp()
8103 {
8104    double epj;
8105 
8106 
8107    epj = 1666.666;
8108 
8109    double rp[][] = jauLtp(epj);
8110 
8111    vvd(rp[0][0], 0.9967044141159213819, 1e-14,
8112        "jauLtp", "rp11");
8113    vvd(rp[0][1], 0.7437801893193210840e-1, 1e-14,
8114        "jauLtp", "rp12");
8115    vvd(rp[0][2], 0.3237624409345603401e-1, 1e-14,
8116        "jauLtp", "rp13");
8117    vvd(rp[1][0], -0.7437802731819618167e-1, 1e-14,
8118        "jauLtp", "rp21");
8119    vvd(rp[1][1], 0.9972293894454533070, 1e-14,
8120        "jauLtp", "rp22");
8121    vvd(rp[1][2], -0.1205768842723593346e-2, 1e-14,
8122        "jauLtp", "rp23");
8123    vvd(rp[2][0], -0.3237622482766575399e-1, 1e-14,
8124        "jauLtp", "rp31");
8125    vvd(rp[2][1], -0.1206286039697609008e-2, 1e-14,
8126        "jauLtp", "rp32");
8127    vvd(rp[2][2], 0.9994750246704010914, 1e-14,
8128        "jauLtp", "rp33");
8129 
8130 }
8131 
8132 
8133 
8134 
8135 
8136 
8137 
8138 
8139 
8140 
8141 
8142 @Test
8143 public void t_ltpb()
8144 {
8145    double epj ;
8146 
8147 
8148    epj = 1666.666;
8149 
8150    double rpb[][] = jauLtpb(epj);
8151 
8152    vvd(rpb[0][0], 0.9967044167723271851, 1e-14,
8153        "jauLtpb", "rpb11");
8154    vvd(rpb[0][1], 0.7437794731203340345e-1, 1e-14,
8155        "jauLtpb", "rpb12");
8156    vvd(rpb[0][2], 0.3237632684841625547e-1, 1e-14,
8157        "jauLtpb", "rpb13");
8158    vvd(rpb[1][0], -0.7437795663437177152e-1, 1e-14,
8159        "jauLtpb", "rpb21");
8160    vvd(rpb[1][1], 0.9972293947500013666, 1e-14,
8161        "jauLtpb", "rpb22");
8162    vvd(rpb[1][2], -0.1205741865911243235e-2, 1e-14,
8163        "jauLtpb", "rpb23");
8164    vvd(rpb[2][0], -0.3237630543224664992e-1, 1e-14,
8165        "jauLtpb", "rpb31");
8166    vvd(rpb[2][1], -0.1206316791076485295e-2, 1e-14,
8167        "jauLtpb", "rpb32");
8168    vvd(rpb[2][2], 0.9994750220222438819, 1e-14,
8169        "jauLtpb", "rpb33");
8170 
8171 }
8172 
8173 
8174 
8175 
8176 
8177 
8178 
8179 
8180 
8181 
8182 
8183 @Test
8184 public void t_ltpecl()
8185 {
8186    double epj;
8187 
8188 
8189    epj = -1500.0;
8190 
8191    double vec[] = jauLtpecl(epj);
8192 
8193    vvd(vec[0], 0.4768625676477096525e-3, 1e-14,
8194        "jauLtpecl", "vec1");
8195    vvd(vec[1], -0.4052259533091875112, 1e-14,
8196        "jauLtpecl", "vec2");
8197    vvd(vec[2], 0.9142164401096448012, 1e-14,
8198        "jauLtpecl", "vec3");
8199 
8200 }
8201 
8202 
8203 
8204 
8205 
8206 
8207 
8208 
8209 
8210 
8211 
8212 
8213 @Test
8214 public void t_ltpequ()
8215 {
8216    double epj;
8217    epj = -2500.0;
8218 
8219    double veq[] = jauLtpequ(epj);
8220 
8221    vvd(veq[0], -0.3586652560237326659, 1e-14,
8222        "jauLtpequ", "veq1");
8223    vvd(veq[1], -0.1996978910771128475, 1e-14,
8224        "jauLtpequ", "veq2");
8225    vvd(veq[2], 0.9118552442250819624, 1e-14,
8226        "jauLtpequ", "veq3");
8227 
8228 }
8229 
8230 
8231 
8232 
8233 
8234 
8235 
8236 
8237 
8238 
8239 
8240 
8241 
8242 
8243 
8244 @Test
8245 public void t_ae2hd()
8246 {
8247    double a, e, p;
8248 
8249 
8250    a = 5.5;
8251    e = 1.1;
8252    p = 0.7;
8253 
8254   EquatorialCoordinate ec = jauAe2hd(a, e, p);
8255 
8256    vvd(ec.ha, 0.5933291115507309663, 1e-14, "jauAe2hd", "h");
8257    vvd(ec.dec, 0.9613934761647817620, 1e-14, "jauAe2hd", "d");
8258 
8259 }
8260 
8261 
8262 
8263 public void t_hd2ae()
8264 
8265 
8266 
8267 
8268 
8269 
8270 
8271 
8272 
8273 
8274 
8275 
8276 
8277 
8278 {
8279    double h, d, p;
8280 
8281 
8282    h = 1.1;
8283    d = 1.2;
8284    p = 0.3;
8285 
8286    HorizonCoordinate hc = jauHd2ae(h, d, p);
8287 
8288    vvd(hc.az, 5.916889243730066194, 1e-13, "jauHd2ae", "a");
8289    vvd(hc.el, 0.4472186304990486228, 1e-14, "jauHd2ae", "e");
8290 
8291 }
8292 
8293 
8294 
8295 
8296 
8297 
8298 
8299 
8300 
8301 
8302 
8303 
8304 
8305 
8306 
8307 @Test
8308 public void t_hd2pa()
8309 {
8310    double h, d, p, q;
8311 
8312 
8313    h = 1.1;
8314    d = 1.2;
8315    p = 0.3;
8316 
8317    q = jauHd2pa(h, d, p);
8318 
8319    vvd(q, 1.906227428001995580, 1e-13, "jauHd2pa", "q");
8320 
8321 }
8322 
8323 
8324 
8325 
8326 
8327 
8328 
8329 
8330 
8331 
8332 
8333 
8334 
8335 
8336 
8337 @Test
8338 public void t_tpors()
8339 {
8340    double xi, eta, ra, dec;
8341 
8342 
8343    xi = -0.03;
8344    eta = 0.07;
8345    ra = 1.3;
8346    dec = 1.5;
8347 
8348    TangentPointSolution tps = jauTpors(xi, eta, ra, dec);
8349 
8350    vvd(tps.sol1.alpha, 1.736621577783208748, 1e-13, "jauTpors", "az1");
8351    vvd(tps.sol1.delta, 1.436736561844090323, 1e-13, "jauTpors", "bz1");
8352 
8353    vvd(tps.sol2.alpha, 4.004971075806584490, 1e-13, "jauTpors", "az2");
8354    vvd(tps.sol2.delta, 1.565084088476417917, 1e-13, "jauTpors", "bz2");
8355 
8356    viv(tps.nsolutions, 2, "jauTpors", "n");
8357 
8358 }
8359 
8360 
8361 
8362 
8363 
8364 
8365 
8366 
8367 
8368 
8369 
8370 
8371 
8372 
8373 
8374 @Test
8375 public void t_tporv()
8376 {
8377    double xi, eta, ra, dec, v[] = new double[3];
8378 
8379 
8380    xi = -0.03;
8381    eta = 0.07;
8382    ra = 1.3;
8383    dec = 1.5;
8384    v = jauS2c(ra, dec);
8385 
8386    TangentPointDirectionCosines tpc = jauTporv(xi, eta, v);
8387 
8388    vvd(tpc.dc1[0], -0.02206252822366888610, 1e-15,
8389        "jauTporv", "x1");
8390    vvd(tpc.dc1[1], 0.1318251060359645016, 1e-14,
8391        "jauTporv", "y1");
8392    vvd(tpc.dc1[2], 0.9910274397144543895, 1e-14,
8393        "jauTporv", "z1");
8394 
8395    vvd(tpc.dc2[0], -0.003712211763801968173, 1e-16,
8396        "jauTporv", "x2");
8397    vvd(tpc.dc2[1], -0.004341519956299836813, 1e-16,
8398        "jauTporv", "y2");
8399    vvd(tpc.dc2[2], 0.9999836852110587012, 1e-14,
8400        "jauTporv", "z2");
8401 
8402    viv(tpc.nsolution, 2, "jauTporv", "n");
8403 
8404 }
8405 
8406 
8407 
8408 
8409 
8410 
8411 
8412 
8413 
8414 
8415 
8416 
8417 
8418 
8419 
8420 @Test
8421 public void t_tpsts()
8422 {
8423    double xi, eta, raz, decz;
8424 
8425 
8426    xi = -0.03;
8427    eta = 0.07;
8428    raz = 2.3;
8429    decz = 1.5;
8430 
8431    SphericalCoordinate sc = jauTpsts(xi, eta, raz, decz);
8432 
8433    vvd(sc.alpha, 0.7596127167359629775, 1e-14, "jauTpsts", "ra");
8434    vvd(sc.delta, 1.540864645109263028, 1e-13, "jauTpsts", "dec");
8435 
8436 }
8437 
8438 
8439 
8440 
8441 
8442 
8443 
8444 
8445 
8446 
8447 
8448 
8449 
8450 
8451 
8452 @Test
8453 public void t_tpstv()
8454 {
8455    double xi, eta, raz, decz, vz[], v[];
8456 
8457 
8458    xi = -0.03;
8459    eta = 0.07;
8460    raz = 2.3;
8461    decz = 1.5;
8462    vz = jauS2c(raz, decz);
8463 
8464    v = jauTpstv(xi, eta, vz);
8465 
8466    vvd(v[0], 0.02170030454907376677, 1e-15, "jauTpstv", "x");
8467    vvd(v[1], 0.02060909590535367447, 1e-15, "jauTpstv", "y");
8468    vvd(v[2], 0.9995520806583523804, 1e-14, "jauTpstv", "z");
8469 
8470 }
8471 
8472 
8473 
8474 
8475 
8476 
8477 
8478 
8479 
8480 
8481 
8482 
8483 
8484 
8485 
8486 @Test
8487 public void t_tpxes()
8488 {
8489    double ra, dec, raz, decz;
8490 
8491 
8492    ra = 1.3;
8493    dec = 1.55;
8494    raz = 2.3;
8495    decz = 1.5;
8496 
8497    TangentPlaneCoordinate tpc = jauTpxes(ra, dec, raz, decz);
8498 
8499    vvd(tpc.xi, -0.01753200983236980595, 1e-15, "jauTpxes", "xi");
8500    vvd(tpc.eta, 0.05962940005778712891, 1e-15, "jauTpxes", "eta");
8501 
8502    viv(tpc.status, 0, "jauTpxes", "j");
8503 
8504 }
8505 
8506 
8507 
8508 
8509 
8510 
8511 
8512 
8513 
8514 
8515 
8516 
8517 
8518 
8519 
8520 @Test
8521 public void t_tpxev()
8522 {
8523    double ra, dec, raz, decz, v[], vz[];
8524 
8525 
8526    ra = 1.3;
8527    dec = 1.55;
8528    raz = 2.3;
8529    decz = 1.5;
8530    v = jauS2c(ra, dec);
8531    vz = jauS2c(raz, decz);
8532 
8533    TangentPlaneCoordinate tpc = jauTpxev(v, vz);
8534 
8535    vvd(tpc.xi, -0.01753200983236980595, 1e-15, "jauTpxev", "xi");
8536    vvd(tpc.eta, 0.05962940005778712891, 1e-15, "jauTpxev", "eta");
8537 
8538    viv(tpc.status, 0, "jauTpxev", "j");
8539 
8540    
8541 }
8542 
8543 
8544 
8545 
8546 
8547 
8548 
8549 
8550 
8551 
8552 
8553 
8554 
8555 
8556 @Test
8557 public void t_fk425()
8558 {
8559    double r1950, d1950, dr1950, dd1950, p1950, v1950;
8560 
8561 
8562    r1950 = 0.07626899753879587532;
8563    d1950 = -1.137405378399605780;
8564    dr1950 = 0.1973749217849087460e-4;
8565    dd1950 = 0.5659714913272723189e-5;
8566    p1950 = 0.134;
8567    v1950 = 8.7;
8568 
8569    CatalogCoords c = jauFk425(r1950, d1950, dr1950, dd1950, p1950, v1950);
8570 
8571    vvd(c.pos.alpha, 0.08757989933556446040, 1e-14,
8572        "iauFk425", "r2000");
8573    vvd(c.pos.delta, -1.132279113042091895, 1e-12,
8574        "iauFk425", "d2000");
8575    vvd(c.pm.alpha, 0.1953670614474396139e-4, 1e-17,
8576        "iauFk425", "dr2000");
8577    vvd(c.pm.delta, 0.5637686678659640164e-5, 1e-18,
8578        "iauFk425", "dd2000");
8579    vvd(c.px, 0.1339919950582767871, 1e-13, "iauFk425", "p2000");
8580    vvd(c.rv, 8.736999669183529069, 1e-12, "iauFk425", "v2000");
8581 
8582 }
8583 
8584 
8585 
8586 
8587 
8588 
8589 
8590 
8591 
8592 
8593 
8594 
8595 
8596 
8597 
8598 @Test
8599 public void t_fk45z()
8600 {
8601    double r1950, d1950, bepoch;
8602 
8603 
8604    r1950 = 0.01602284975382960982;
8605    d1950 = -0.1164347929099906024;
8606    bepoch = 1954.677617625256806;
8607 
8608    SphericalCoordinate r = jauFk45z(r1950, d1950, bepoch);
8609 
8610    vvd(r.alpha, 0.02719295911606862303, 1e-15,
8611        "iauFk45z", "r2000");
8612    vvd(r.delta, -0.1115766001565926892, 1e-13,
8613        "iauFk45z", "d2000");
8614 
8615 }
8616 
8617 
8618 
8619 
8620 
8621 
8622 
8623 
8624 
8625 
8626 
8627 
8628 
8629 
8630 
8631 @Test
8632 public void t_fk524()
8633 {
8634    double r2000, d2000, dr2000, dd2000, p2000, v2000;
8635 
8636 
8637    r2000 = 0.8723503576487275595;
8638    d2000 = -0.7517076365138887672;
8639    dr2000 = 0.2019447755430472323e-4;
8640    dd2000 = 0.3541563940505160433e-5;
8641    p2000 = 0.1559;
8642    v2000 = 86.87;
8643 
8644    CatalogCoords r = jauFk524(r2000, d2000, dr2000, dd2000, p2000, v2000);
8645 
8646    vvd(r.pos.alpha, 0.8636359659799603487, 1e-13,
8647        "iauFk524", "r1950");
8648    vvd(r.pos.delta, -0.7550281733160843059, 1e-13,
8649        "iauFk524", "d1950");
8650    vvd(r.pm.alpha, 0.2023628192747172486e-4, 1e-17,
8651        "iauFk524", "dr1950");
8652    vvd(r.pm.delta, 0.3624459754935334718e-5, 1e-18,
8653        "iauFk524", "dd1950");
8654    vvd(r.px, 0.1560079963299390241, 1e-13,
8655        "iauFk524", "p1950");
8656    vvd(r.rv, 86.79606353469163751, 1e-11, "iauFk524", "v1950");
8657 
8658 }
8659 
8660 
8661 
8662 
8663 
8664 
8665 
8666 
8667 
8668 
8669 
8670 
8671 
8672 
8673 
8674 @Test
8675 public void t_fk54z()
8676 {
8677    double r2000, d2000, bepoch;
8678 
8679 
8680    r2000 = 0.02719026625066316119;
8681    d2000 = -0.1115815170738754813;
8682    bepoch = 1954.677308160316374;
8683 
8684    CatalogCoords r = jauFk54z(r2000, d2000, bepoch);
8685 
8686    vvd(r.pos.alpha, 0.01602015588390065476, 1e-14,
8687        "iauFk54z", "r1950");
8688    vvd(r.pos.delta, -0.1164397101110765346, 1e-13,
8689        "iauFk54z", "d1950");
8690    vvd(r.pm.alpha, -0.1175712648471090704e-7, 1e-20,
8691        "iauFk54z", "dr1950");
8692    vvd(r.pm.delta, 0.2108109051316431056e-7, 1e-20,
8693        "iauFk54z", "dd1950");
8694    vvd(r.px, 0, 1e-13,
8695        "iauFk54z", "p1950");
8696    vvd(r.rv, 0, 1e-11, "iauFk54z", "v1950");
8697 
8698 
8699 }
8700 
8701 
8702 
8703 
8704 
8705 
8706 
8707 
8708 
8709 
8710 
8711 
8712 
8713 
8714 
8715 @Test
8716 public void t_atcc13()
8717 {
8718    double rc, dc, pr, pd, px, rv, date1, date2;
8719 
8720 
8721    rc = 2.71;
8722    dc = 0.174;
8723    pr = 1e-5;
8724    pd = 5e-6;
8725    px = 0.1;
8726    rv = 55.0;
8727    date1 = 2456165.5;
8728    date2 = 0.401182685;
8729 
8730    SphericalCoordinate co = jauAtcc13(rc, dc, pr, pd, px, rv, date1, date2);
8731 
8732    vvd(co.alpha,  2.710126504531372384, 1e-12,
8733            "iauAtcc13", "ra");
8734    vvd(co.delta, 0.1740632537628350152, 1e-12,
8735            "iauAtcc13", "da");
8736 
8737 }
8738 
8739 
8740 
8741 
8742 
8743 
8744 
8745 
8746 
8747 
8748 
8749 
8750 
8751 
8752 
8753 @Test
8754 public  void t_atccq()
8755 {
8756    double date1, date2, eo, rc, dc, pr, pd, px, rv;
8757    Astrom astrom = new Astrom();
8758 
8759    date1 = 2456165.5;
8760    date2 = 0.401182685;
8761    eo = jauApci13(date1, date2, astrom);
8762    rc = 2.71;
8763    dc = 0.174;
8764    pr = 1e-5;
8765    pd = 5e-6;
8766    px = 0.1;
8767    rv = 55.0;
8768 
8769    SphericalCoordinate co = jauAtccq(rc, dc, pr, pd, px, rv, astrom);
8770 
8771    vvd(co.alpha, 2.710126504531372384, 1e-12, "iauAtccq", "ra");
8772    vvd(co.delta, 0.1740632537628350152, 1e-12, "iauAtccq", "da");
8773 
8774 }
8775 
8776 
8777 
8778 
8779 
8780 
8781 
8782 
8783 
8784 
8785 
8786 
8787 
8788 
8789 
8790 @Test
8791 public void t_moon98()
8792 {
8793    double pv[][] = jauMoon98(2400000.5, 43999.9);
8794 
8795    vvd(pv[0][0], -0.2601295959971044180e-2, 1e-11,
8796        "iauMoon98", "x 4");
8797    vvd(pv[0][1], 0.6139750944302742189e-3, 1e-11,
8798        "iauMoon98", "y 4");
8799    vvd(pv[0][2], 0.2640794528229828909e-3, 1e-11,
8800        "iauMoon98", "z 4");
8801 
8802    vvd(pv[1][0], -0.1244321506649895021e-3, 1e-11,
8803        "iauMoon98", "xd 4");
8804    vvd(pv[1][1], -0.5219076942678119398e-3, 1e-11,
8805        "iauMoon98", "yd 4");
8806    vvd(pv[1][2], -0.1716132214378462047e-3, 1e-11,
8807        "iauMoon98", "zd 4");
8808 
8809 }
8810 
8811 }
8812 
8813 
8814 
8815 
8816 
8817 
8818 
8819 
8820 
8821 
8822 
8823 
8824 
8825 
8826 
8827 
8828 
8829 
8830 
8831 
8832 
8833 
8834 
8835 
8836 
8837 
8838 
8839 
8840 
8841 
8842 
8843 
8844 
8845 
8846 
8847 
8848 
8849 
8850 
8851 
8852 
8853 
8854 
8855 
8856 
8857 
8858 
8859 
8860 
8861 
8862 
8863 
8864 
8865 
8866 
8867 
8868 
8869 
8870 
8871 
8872 
8873 
8874 
8875 
8876 
8877 
8878 
8879 
8880 
8881 
8882 
8883 
8884 
8885 
8886 
8887 
8888 
8889 
8890 
8891 
8892 
8893 
8894 
8895 
8896 
8897 
8898 
8899 
8900 
8901 
8902 
8903 
8904 
8905 
8906 
8907 
8908 
8909 
8910 
8911 
8912 
8913 
8914 
8915 
8916 
8917 
8918 
8919 
8920 
8921 
8922 
8923 
8924 
8925 
8926 
8927 
8928 
8929 
8930