mod common;
#[cfg(test)]
mod tests {
use super::common::vvd;
use sofars::pnp::{
bi00, bp00, bp06, bpn2xy, c2i00a, c2i00b, c2i06a, c2ibpn, c2ixy, c2ixys, c2t00a, c2t00b,
c2t06a, c2tcio, c2teqx, c2tpe, c2txy, eo06a, eors, fw2m, fw2xy, ltp, ltpb, ltpecl, ltpequ,
num00a, num00b, num06a, numat, nut00a, nut00b, nut06a, nut80, nutm80, obl06, obl80, p06e,
pb06, pfw06, pmat00, pmat06, pmat76, pn00, pn00a, pn00b, pn06, pn06a, pnm00a, pnm00b,
pnm06a, pnm80, pom00, pr00, prec76, s00, s00a, s00b, s06, s06a, sp00, xy06, xys00a, xys00b,
xys06a,
};
#[test]
fn test_c2ixys() {
let x = 0.5791308486706011000e-3;
let y = 0.4020579816732961219e-4;
let s = -0.1220040848472271978e-7;
let rc2i = c2ixys(x, y, s);
vvd(rc2i[0][0], 0.9999998323037157138, 1e-12, "c2ixys", "11");
vvd(rc2i[0][1], 0.5581984869168499149e-9, 1e-12, "c2ixys", "12");
vvd(rc2i[0][2], -0.5791308491611282180e-3, 1e-12, "c2ixys", "13");
vvd(rc2i[1][0], -0.2384261642670440317e-7, 1e-12, "c2ixys", "21");
vvd(rc2i[1][1], 0.9999999991917468964, 1e-12, "c2ixys", "22");
vvd(rc2i[1][2], -0.4020579110169668931e-4, 1e-12, "c2ixys", "23");
vvd(rc2i[2][0], 0.5791308486706011000e-3, 1e-12, "c2ixys", "31");
vvd(rc2i[2][1], 0.4020579816732961219e-4, 1e-12, "c2ixys", "32");
vvd(rc2i[2][2], 0.9999998314954627590, 1e-12, "c2ixys", "33");
}
#[test]
fn test_nut06a() {
let (dpsi, deps) = nut06a(2400000.5, 53736.0);
vvd(dpsi, -0.9630912025820308797e-5, 1e-13, "nut06a", "dpsi");
vvd(deps, 0.4063238496887249798e-4, 1e-13, "nut06a", "deps");
}
#[test]
fn test_nut00a() {
let (dpsi, deps) = nut00a(2400000.5, 53736.0);
vvd(dpsi, -0.9630909107115518431e-5, 1e-13, "nut00a", "dpsi");
vvd(deps, 0.4063239174001678710e-4, 1e-13, "nut00a", "deps");
}
#[test]
fn test_nut00b() {
let (dpsi, deps) = nut00b(2400000.5, 53736.0);
vvd(dpsi, -0.9632552291148362783e-5, 1e-13, "nut00b", "dpsi");
vvd(deps, 0.4063197106621159367e-4, 1e-13, "nut00b", "deps");
}
#[test]
fn test_nut80() {
let (dpsi, deps) = nut80(2400000.5, 53736.0);
vvd(dpsi, -0.9643658353226563966e-5, 1e-13, "nut80", "dpsi");
vvd(deps, 0.4060051006879713322e-4, 1e-13, "nut80", "deps");
}
#[test]
fn test_pnm00a() {
let rbpn = pnm00a(2400000.5, 50123.9999);
vvd(rbpn[0][0], 0.9999995832793134257, 1e-12, "pnm00a", "11");
vvd(rbpn[0][1], 0.8372384254137809439e-3, 1e-14, "pnm00a", "12");
vvd(rbpn[0][2], 0.3639684306407150645e-3, 1e-14, "pnm00a", "13");
vvd(rbpn[1][0], -0.8372535226570394543e-3, 1e-14, "pnm00a", "21");
vvd(rbpn[1][1], 0.9999996486491582471, 1e-12, "pnm00a", "22");
vvd(rbpn[1][2], 0.4132915262664072381e-4, 1e-14, "pnm00a", "23");
vvd(rbpn[2][0], -0.3639337004054317729e-3, 1e-14, "pnm00a", "31");
vvd(rbpn[2][1], -0.4163386925461775873e-4, 1e-14, "pnm00a", "32");
vvd(rbpn[2][2], 0.9999999329094390695, 1e-12, "pnm00a", "33");
}
#[test]
fn test_pnm06a() {
let rbpn = pnm06a(2400000.5, 50123.9999);
vvd(rbpn[0][0], 0.9999995832794205484, 1e-12, "pnm06a", "11");
vvd(rbpn[0][1], 0.8372382772630962111e-3, 1e-14, "pnm06a", "12");
vvd(rbpn[0][2], 0.3639684771140623099e-3, 1e-14, "pnm06a", "13");
vvd(rbpn[1][0], -0.8372533744743683605e-3, 1e-14, "pnm06a", "21");
vvd(rbpn[1][1], 0.9999996486492861646, 1e-12, "pnm06a", "22");
vvd(rbpn[1][2], 0.4132905944611019498e-4, 1e-14, "pnm06a", "23");
vvd(rbpn[2][0], -0.3639337469629464969e-3, 1e-14, "pnm06a", "31");
vvd(rbpn[2][1], -0.4163377605910663999e-4, 1e-14, "pnm06a", "32");
vvd(rbpn[2][2], 0.9999999329094260057, 1e-12, "pnm06a", "33");
}
#[test]
fn test_s06() {
let x = 0.5791308486706011000e-3;
let y = 0.4020579816732961219e-4;
let s = s06(2400000.5, 53736.0, x, y);
vvd(s, -0.1220032213076463117e-7, 1e-18, "s06", "s");
}
#[test]
fn test_bp00() {
let (rb, rp, rbp) = bp00(2400000.5, 50123.9999);
vvd(rb[0][0], 0.9999999999999942498, 1e-12, "bp00", "rb11");
vvd(rb[0][1], -0.7078279744199196626e-7, 1e-16, "bp00", "rb12");
vvd(rb[0][2], 0.8056217146976134152e-7, 1e-16, "bp00", "rb13");
vvd(rb[1][0], 0.7078279477857337206e-7, 1e-16, "bp00", "rb21");
vvd(rb[1][1], 0.9999999999999969484, 1e-12, "bp00", "rb22");
vvd(rb[1][2], 0.3306041454222136517e-7, 1e-16, "bp00", "rb23");
vvd(rb[2][0], -0.8056217380986972157e-7, 1e-16, "bp00", "rb31");
vvd(rb[2][1], -0.3306040883980552500e-7, 1e-16, "bp00", "rb32");
vvd(rb[2][2], 0.9999999999999962084, 1e-12, "bp00", "rb33");
vvd(rp[0][0], 0.9999995504864048241, 1e-12, "bp00", "rp11");
vvd(rp[0][1], 0.8696113836207084411e-3, 1e-14, "bp00", "rp12");
vvd(rp[0][2], 0.3778928813389333402e-3, 1e-14, "bp00", "rp13");
vvd(rp[1][0], -0.8696113818227265968e-3, 1e-14, "bp00", "rp21");
vvd(rp[1][1], 0.9999996218880458820, 1e-12, "bp00", "rp22");
vvd(rp[1][2], -0.1690679263009242066e-6, 1e-14, "bp00", "rp23");
vvd(rp[2][0], -0.3778928854764695214e-3, 1e-14, "bp00", "rp31");
vvd(rp[2][1], -0.1595521004195286491e-6, 1e-14, "bp00", "rp32");
vvd(rp[2][2], 0.9999999285984682756, 1e-12, "bp00", "rp33");
vvd(rbp[0][0], 0.9999995505175087260, 1e-12, "bp00", "rbp11");
vvd(rbp[0][1], 0.8695405883617884705e-3, 1e-14, "bp00", "rbp12");
vvd(rbp[0][2], 0.3779734722239007105e-3, 1e-14, "bp00", "rbp13");
vvd(rbp[1][0], -0.8695405990410863719e-3, 1e-14, "bp00", "rbp21");
vvd(rbp[1][1], 0.9999996219494925900, 1e-12, "bp00", "rbp22");
vvd(rbp[1][2], -0.1360775820404982209e-6, 1e-14, "bp00", "rbp23");
vvd(rbp[2][0], -0.3779734476558184991e-3, 1e-14, "bp00", "rbp31");
vvd(rbp[2][1], -0.1925857585832024058e-6, 1e-14, "bp00", "rbp32");
vvd(rbp[2][2], 0.9999999285680153377, 1e-12, "bp00", "rbp33");
}
#[test]
fn test_bp06() {
let (rb, rp, rbp) = bp06(2400000.5, 50123.9999);
vvd(rb[0][0], 0.9999999999999942497, 1e-12, "bp06", "rb11");
vvd(rb[0][1], -0.7078368960971557145e-7, 1e-14, "bp06", "rb12");
vvd(rb[0][2], 0.8056213977613185606e-7, 1e-14, "bp06", "rb13");
vvd(rb[1][0], 0.7078368694637674333e-7, 1e-14, "bp06", "rb21");
vvd(rb[1][1], 0.9999999999999969484, 1e-12, "bp06", "rb22");
vvd(rb[1][2], 0.3305943742989134124e-7, 1e-14, "bp06", "rb23");
vvd(rb[2][0], -0.8056214211620056792e-7, 1e-14, "bp06", "rb31");
vvd(rb[2][1], -0.3305943172740586950e-7, 1e-14, "bp06", "rb32");
vvd(rb[2][2], 0.9999999999999962084, 1e-12, "bp06", "rb33");
vvd(rp[0][0], 0.9999995504864960278, 1e-12, "bp06", "rp11");
vvd(rp[0][1], 0.8696112578855404832e-3, 1e-14, "bp06", "rp12");
vvd(rp[0][2], 0.3778929293341390127e-3, 1e-14, "bp06", "rp13");
vvd(rp[1][0], -0.8696112560510186244e-3, 1e-14, "bp06", "rp21");
vvd(rp[1][1], 0.9999996218880458820, 1e-12, "bp06", "rp22");
vvd(rp[1][2], -0.1691646168941896285e-6, 1e-14, "bp06", "rp23");
vvd(rp[2][0], -0.3778929335557603418e-3, 1e-14, "bp06", "rp31");
vvd(rp[2][1], -0.1594554040786495076e-6, 1e-14, "bp06", "rp32");
vvd(rp[2][2], 0.9999999285984501222, 1e-12, "bp06", "rp33");
vvd(rbp[0][0], 0.9999995505176007047, 1e-12, "bp06", "rbp11");
vvd(rbp[0][1], 0.8695404617348208406e-3, 1e-14, "bp06", "rbp12");
vvd(rbp[0][2], 0.3779735201865589104e-3, 1e-14, "bp06", "rbp13");
vvd(rbp[1][0], -0.8695404723772031414e-3, 1e-14, "bp06", "rbp21");
vvd(rbp[1][1], 0.9999996219496027161, 1e-12, "bp06", "rbp22");
vvd(rbp[1][2], -0.1361752497080270143e-6, 1e-14, "bp06", "rbp23");
vvd(rbp[2][0], -0.3779734957034089490e-3, 1e-14, "bp06", "rbp31");
vvd(rbp[2][1], -0.1924880847894457113e-6, 1e-14, "bp06", "rbp32");
vvd(rbp[2][2], 0.9999999285679971958, 1e-12, "bp06", "rbp33");
}
#[test]
fn test_pn00a() {
let (dpsi, deps, epsa, rb, _, _, _, _) = pn00a(2400000.5, 53736.0);
vvd(dpsi, -0.9630909107115518431e-5, 1e-12, "pn00a", "dpsi");
vvd(deps, 0.4063239174001678710e-4, 1e-12, "pn00a", "deps");
vvd(epsa, 0.4090791789404229916, 1e-12, "pn00a", "epsa");
vvd(rb[0][0], 0.9999999999999942498, 1e-12, "pn00a", "rb11");
vvd(rb[0][1], -0.7078279744199196626e-7, 1e-16, "pn00a", "rb12");
vvd(rb[0][2], 0.8056217146976134152e-7, 1e-16, "pn00a", "rb13");
vvd(rb[1][0], 0.7078279477857337206e-7, 1e-16, "pn00a", "rb21");
vvd(rb[1][1], 0.9999999999999969484, 1e-12, "pn00a", "rb22");
vvd(rb[1][2], 0.3306041454222136517e-7, 1e-16, "pn00a", "rb23");
vvd(rb[2][0], -0.8056217380986972157e-7, 1e-16, "pn00a", "rb31");
vvd(rb[2][1], -0.3306040883980552500e-7, 1e-16, "pn00a", "rb32");
vvd(rb[2][2], 0.9999999999999962084, 1e-12, "pn00a", "rb33");
}
#[test]
fn test_c2i00a() {
let rc2i = c2i00a(2400000.5, 53736.0);
vvd(rc2i[0][0], 0.9999998323037165557, 1e-12, "c2i00a", "11");
vvd(rc2i[0][1], 0.5581526348992140183e-9, 1e-12, "c2i00a", "12");
vvd(rc2i[0][2], -0.5791308477073443415e-3, 1e-12, "c2i00a", "13");
vvd(rc2i[1][0], -0.2384266227870752452e-7, 1e-12, "c2i00a", "21");
vvd(rc2i[1][1], 0.9999999991917405258, 1e-12, "c2i00a", "22");
vvd(rc2i[1][2], -0.4020594955028209745e-4, 1e-12, "c2i00a", "23");
vvd(rc2i[2][0], 0.5791308472168152904e-3, 1e-12, "c2i00a", "31");
vvd(rc2i[2][1], 0.4020595661591500259e-4, 1e-12, "c2i00a", "32");
vvd(rc2i[2][2], 0.9999998314954572304, 1e-12, "c2i00a", "33");
}
#[test]
fn test_c2i00b() {
let rc2i = c2i00b(2400000.5, 53736.0);
vvd(rc2i[0][0], 0.9999998323040954356, 1e-12, "c2i00b", "11");
vvd(rc2i[0][1], 0.5581526349131823372e-9, 1e-12, "c2i00b", "12");
vvd(rc2i[0][2], -0.5791301934855394005e-3, 1e-12, "c2i00b", "13");
vvd(rc2i[1][0], -0.2384239285499175543e-7, 1e-12, "c2i00b", "21");
vvd(rc2i[1][1], 0.9999999991917574043, 1e-12, "c2i00b", "22");
vvd(rc2i[1][2], -0.4020552974819030066e-4, 1e-12, "c2i00b", "23");
vvd(rc2i[2][0], 0.5791301929950208873e-3, 1e-12, "c2i00b", "31");
vvd(rc2i[2][1], 0.4020553681373720832e-4, 1e-12, "c2i00b", "32");
vvd(rc2i[2][2], 0.9999998314958529887, 1e-12, "c2i00b", "33");
}
#[test]
fn test_c2i06a() {
let rc2i = c2i06a(2400000.5, 53736.0);
vvd(rc2i[0][0], 0.9999998323037159379, 1e-12, "c2i06a", "11");
vvd(rc2i[0][1], 0.5581121329587613787e-9, 1e-12, "c2i06a", "12");
vvd(rc2i[0][2], -0.5791308487740529749e-3, 1e-12, "c2i06a", "13");
vvd(rc2i[1][0], -0.2384253169452306581e-7, 1e-12, "c2i06a", "21");
vvd(rc2i[1][1], 0.9999999991917467827, 1e-12, "c2i06a", "22");
vvd(rc2i[1][2], -0.4020579392895682558e-4, 1e-12, "c2i06a", "23");
vvd(rc2i[2][0], 0.5791308482835292617e-3, 1e-12, "c2i06a", "31");
vvd(rc2i[2][1], 0.4020580099454020310e-4, 1e-12, "c2i06a", "32");
vvd(rc2i[2][2], 0.9999998314954628695, 1e-12, "c2i06a", "33");
}
#[test]
fn test_c2ibpn() {
let rbpn = [
[
9.999962358680738e-1,
-2.516417057665452e-3,
-1.093569785342370e-3,
],
[
2.516462370370876e-3,
9.999968329010883e-1,
4.006159587358310e-5,
],
[
1.093465510215479e-3,
-4.281337229063151e-5,
9.999994012499173e-1,
],
];
let rc2i = c2ibpn(2400000.5, 50123.9999, &rbpn);
vvd(rc2i[0][0], 0.9999994021664089977, 1e-12, "c2ibpn", "11");
vvd(rc2i[0][1], -0.3869195948017503664e-8, 1e-12, "c2ibpn", "12");
vvd(rc2i[0][2], -0.1093465511383285076e-2, 1e-12, "c2ibpn", "13");
vvd(rc2i[1][0], 0.5068413965715446111e-7, 1e-12, "c2ibpn", "21");
vvd(rc2i[1][1], 0.9999999990835075686, 1e-12, "c2ibpn", "22");
vvd(rc2i[1][2], 0.4281334246452708915e-4, 1e-12, "c2ibpn", "23");
vvd(rc2i[2][0], 0.1093465510215479000e-2, 1e-12, "c2ibpn", "31");
vvd(rc2i[2][1], -0.4281337229063151000e-4, 1e-12, "c2ibpn", "32");
vvd(rc2i[2][2], 0.9999994012499173103, 1e-12, "c2ibpn", "33");
}
#[test]
fn test_c2ixy() {
let x = 0.5791308486706011000e-3;
let y = 0.4020579816732961219e-4;
let rc2i = c2ixy(2400000.5, 53736.0, x, y);
vvd(rc2i[0][0], 0.9999998323037157138, 1e-12, "c2ixy", "11");
vvd(rc2i[0][1], 0.5581526349032241205e-9, 1e-12, "c2ixy", "12");
vvd(rc2i[0][2], -0.5791308491611263745e-3, 1e-12, "c2ixy", "13");
vvd(rc2i[1][0], -0.2384257057469842953e-7, 1e-12, "c2ixy", "21");
vvd(rc2i[1][1], 0.9999999991917468964, 1e-12, "c2ixy", "22");
vvd(rc2i[1][2], -0.4020579110172324363e-4, 1e-12, "c2ixy", "23");
vvd(rc2i[2][0], 0.5791308486706011000e-3, 1e-12, "c2ixy", "31");
vvd(rc2i[2][1], 0.4020579816732961219e-4, 1e-12, "c2ixy", "32");
vvd(rc2i[2][2], 0.9999998314954627590, 1e-12, "c2ixy", "33");
}
#[test]
fn test_pnm00b() {
let rbpn = pnm00b(2400000.5, 50123.9999);
vvd(rbpn[0][0], 0.9999995832776208280, 1e-12, "pnm00b", "11");
vvd(rbpn[0][1], 0.8372401264429654837e-3, 1e-14, "pnm00b", "12");
vvd(rbpn[0][2], 0.3639691681450271771e-3, 1e-14, "pnm00b", "13");
vvd(rbpn[1][0], -0.8372552234147137424e-3, 1e-14, "pnm00b", "21");
vvd(rbpn[1][1], 0.9999996486477686123, 1e-12, "pnm00b", "22");
vvd(rbpn[1][2], 0.4132832190946052890e-4, 1e-14, "pnm00b", "23");
vvd(rbpn[2][0], -0.3639344385341866407e-3, 1e-14, "pnm00b", "31");
vvd(rbpn[2][1], -0.4163303977421522785e-4, 1e-14, "pnm00b", "32");
vvd(rbpn[2][2], 0.9999999329092049734, 1e-12, "pnm00b", "33");
}
#[test]
fn test_pom00() {
let xp = 2.55060238e-7;
let yp = 1.860359247e-6;
let sp = -0.1367174580728891460e-10;
let rpom = pom00(xp, yp, sp);
vvd(rpom[0][0], 0.9999999999999674721, 1e-12, "pom00", "11");
vvd(rpom[0][1], -0.1367174580728846989e-10, 1e-16, "pom00", "12");
vvd(rpom[0][2], 0.2550602379999972345e-6, 1e-16, "pom00", "13");
vvd(rpom[1][0], 0.1414624947957029801e-10, 1e-16, "pom00", "21");
vvd(rpom[1][1], 0.9999999999982695317, 1e-12, "pom00", "22");
vvd(rpom[1][2], -0.1860359246998866389e-5, 1e-16, "pom00", "23");
vvd(rpom[2][0], -0.2550602379741215021e-6, 1e-16, "pom00", "31");
vvd(rpom[2][1], 0.1860359247002414021e-5, 1e-16, "pom00", "32");
vvd(rpom[2][2], 0.9999999999982370039, 1e-12, "pom00", "33");
}
#[test]
fn test_sp00() {
let s = sp00(2400000.5, 52541.0);
vvd(s, -0.6216698469981019309e-11, 1e-12, "sp00", "");
}
#[test]
fn test_pn00() {
let dpsi = -0.9632552291149335877e-5;
let deps = 0.4063197106621141414e-4;
let (epsa, rb, _, _, _, _) = pn00(2400000.5, 53736.0, dpsi, deps);
vvd(epsa, 0.4090791789404229916, 1e-12, "pn00", "epsa");
vvd(rb[0][0], 0.9999999999999942498, 1e-12, "pn00", "rb11");
vvd(rb[0][1], -0.7078279744199196626e-7, 1e-18, "pn00", "rb12");
vvd(rb[0][2], 0.8056217146976134152e-7, 1e-18, "pn00", "rb13");
vvd(rb[1][0], 0.7078279477857337206e-7, 1e-18, "pn00", "rb21");
vvd(rb[1][1], 0.9999999999999969484, 1e-12, "pn00", "rb22");
vvd(rb[1][2], 0.3306041454222136517e-7, 1e-18, "pn00", "rb23");
vvd(rb[2][0], -0.8056217380986972157e-7, 1e-18, "pn00", "rb31");
vvd(rb[2][1], -0.3306040883980552500e-7, 1e-18, "pn00", "rb32");
vvd(rb[2][2], 0.9999999999999962084, 1e-12, "pn00", "rb33");
}
#[test]
fn test_pmat00() {
let rbp = pmat00(2400000.5, 50123.9999);
vvd(rbp[0][0], 0.9999995505175087260, 1e-12, "pmat00", "11");
vvd(rbp[0][1], 0.8695405883617884705e-3, 1e-14, "pmat00", "12");
vvd(rbp[0][2], 0.3779734722239007105e-3, 1e-14, "pmat00", "13");
vvd(rbp[1][0], -0.8695405990410863719e-3, 1e-14, "pmat00", "21");
vvd(rbp[1][1], 0.9999996219494925900, 1e-12, "pmat00", "22");
vvd(rbp[1][2], -0.1360775820404982209e-6, 1e-14, "pmat00", "23");
vvd(rbp[2][0], -0.3779734476558184991e-3, 1e-14, "pmat00", "31");
vvd(rbp[2][1], -0.1925857585832024058e-6, 1e-14, "pmat00", "32");
vvd(rbp[2][2], 0.9999999285680153377, 1e-12, "pmat00", "33");
}
#[test]
fn test_eo06a() {
let eo = eo06a(2400000.5, 53736.0);
vvd(eo, -0.1332882371941833644e-2, 1e-15, "eo06a", "");
}
#[test]
fn test_fw2xy() {
let gamb = -0.2243387670997992368e-5;
let phib = 0.4091014602391312982;
let psi = -0.9501954178013015092e-3;
let eps = 0.4091014316587367472;
let (x, y) = fw2xy(gamb, phib, psi, eps);
vvd(x, -0.3779734957034082790e-3, 1e-14, "fw2xy", "x");
vvd(y, -0.1924880848087615651e-6, 1e-14, "fw2xy", "y");
}
#[test]
fn test_ltp() {
let epj = 1666.666;
let rp = ltp(epj);
vvd(rp[0][0], 0.9967044141159213819, 1e-14, "ltp", "rp11");
vvd(rp[0][1], 0.7437801893193210840e-1, 1e-14, "ltp", "rp12");
vvd(rp[0][2], 0.3237624409345603401e-1, 1e-14, "ltp", "rp13");
vvd(rp[1][0], -0.7437802731819618167e-1, 1e-14, "ltp", "rp21");
vvd(rp[1][1], 0.9972293894454533070, 1e-14, "ltp", "rp22");
vvd(rp[1][2], -0.1205768842723593346e-2, 1e-14, "ltp", "rp23");
vvd(rp[2][0], -0.3237622482766575399e-1, 1e-14, "ltp", "rp31");
vvd(rp[2][1], -0.1206286039697609008e-2, 1e-14, "ltp", "rp32");
vvd(rp[2][2], 0.9994750246704010914, 1e-14, "ltp", "rp33");
}
#[test]
fn test_ltpb() {
let epj = 1666.666;
let rpb = ltpb(epj);
vvd(rpb[0][0], 0.9967044167723271851, 1e-14, "ltpb", "rpb11");
vvd(rpb[0][1], 0.7437794731203340345e-1, 1e-14, "ltpb", "rpb12");
vvd(rpb[0][2], 0.3237632684841625547e-1, 1e-14, "ltpb", "rpb13");
vvd(rpb[1][0], -0.7437795663437177152e-1, 1e-14, "ltpb", "rpb21");
vvd(rpb[1][1], 0.9972293947500013666, 1e-14, "ltpb", "rpb22");
vvd(rpb[1][2], -0.1205741865911243235e-2, 1e-14, "ltpb", "rpb23");
vvd(rpb[2][0], -0.3237630543224664992e-1, 1e-14, "ltpb", "rpb31");
vvd(rpb[2][1], -0.1206316791076485295e-2, 1e-14, "ltpb", "rpb32");
vvd(rpb[2][2], 0.9994750220222438819, 1e-14, "ltpb", "rpb33");
}
#[test]
fn test_ltpecl() {
let epj = -1500.0;
let vec = ltpecl(epj);
vvd(vec[0], 0.4768625676477096525e-3, 1e-14, "ltpecl", "vec1");
vvd(vec[1], -0.4052259533091875112, 1e-14, "ltpecl", "vec2");
vvd(vec[2], 0.9142164401096448012, 1e-14, "ltpecl", "vec3");
}
#[test]
fn test_ltpequ() {
let epj = -2500.0;
let veq = ltpequ(epj);
vvd(veq[0], -0.3586652560237326659, 1e-14, "ltpequ", "veq1");
vvd(veq[1], -0.1996978910771128475, 1e-14, "ltpequ", "veq2");
vvd(veq[2], 0.9118552442250819624, 1e-14, "ltpequ", "veq3");
}
#[test]
fn test_num00a() {
let rmatn = num00a(2400000.5, 53736.0);
vvd(rmatn[0][0], 0.9999999999536227949, 1e-12, "num00a", "11");
vvd(rmatn[0][1], 0.8836238544090873336e-5, 1e-12, "num00a", "12");
vvd(rmatn[0][2], 0.3830835237722400669e-5, 1e-12, "num00a", "13");
vvd(
rmatn[1][0],
-0.8836082880798569274e-5,
1e-12,
"num00a",
"21",
);
vvd(rmatn[1][1], 0.9999999991354655028, 1e-12, "num00a", "22");
vvd(
rmatn[1][2],
-0.4063240865362499850e-4,
1e-12,
"num00a",
"23",
);
vvd(
rmatn[2][0],
-0.3831194272065995866e-5,
1e-12,
"num00a",
"31",
);
vvd(rmatn[2][1], 0.4063237480216291775e-4, 1e-12, "num00a", "32");
vvd(rmatn[2][2], 0.9999999991671660338, 1e-12, "num00a", "33");
}
#[test]
fn test_num00b() {
let rmatn = num00b(2400000.5, 53736.0);
vvd(rmatn[0][0], 0.9999999999536069682, 1e-12, "num00b", "11");
vvd(rmatn[0][1], 0.8837746144871248011e-5, 1e-12, "num00b", "12");
vvd(rmatn[0][2], 0.3831488838252202945e-5, 1e-12, "num00b", "13");
vvd(
rmatn[1][0],
-0.8837590456632304720e-5,
1e-12,
"num00b",
"21",
);
vvd(rmatn[1][1], 0.9999999991354692733, 1e-12, "num00b", "22");
vvd(
rmatn[1][2],
-0.4063198798559591654e-4,
1e-12,
"num00b",
"23",
);
vvd(
rmatn[2][0],
-0.3831847930134941271e-5,
1e-12,
"num00b",
"31",
);
vvd(rmatn[2][1], 0.4063195412258168380e-4, 1e-12, "num00b", "32");
vvd(rmatn[2][2], 0.9999999991671806225, 1e-12, "num00b", "33");
}
#[test]
fn test_num06a() {
let rmatn = num06a(2400000.5, 53736.0);
vvd(rmatn[0][0], 0.9999999999536227668, 1e-12, "num06a", "11");
vvd(rmatn[0][1], 0.8836241998111535233e-5, 1e-12, "num06a", "12");
vvd(rmatn[0][2], 0.3830834608415287707e-5, 1e-12, "num06a", "13");
vvd(
rmatn[1][0],
-0.8836086334870740138e-5,
1e-12,
"num06a",
"21",
);
vvd(rmatn[1][1], 0.9999999991354657474, 1e-12, "num06a", "22");
vvd(
rmatn[1][2],
-0.4063240188248455065e-4,
1e-12,
"num06a",
"23",
);
vvd(
rmatn[2][0],
-0.3831193642839398128e-5,
1e-12,
"num06a",
"31",
);
vvd(rmatn[2][1], 0.4063236803101479770e-4, 1e-12, "num06a", "32");
vvd(rmatn[2][2], 0.9999999991671663114, 1e-12, "num06a", "33");
}
#[test]
fn test_nutm80() {
let rmatn = nutm80(2400000.5, 53736.0);
vvd(rmatn[0][0], 0.9999999999534999268, 1e-12, "nutm80", "11");
vvd(rmatn[0][1], 0.8847935789636432161e-5, 1e-12, "nutm80", "12");
vvd(rmatn[0][2], 0.3835906502164019142e-5, 1e-12, "nutm80", "13");
vvd(
rmatn[1][0],
-0.8847780042583435924e-5,
1e-12,
"nutm80",
"21",
);
vvd(rmatn[1][1], 0.9999999991366569963, 1e-12, "nutm80", "22");
vvd(
rmatn[1][2],
-0.4060052702727130809e-4,
1e-12,
"nutm80",
"23",
);
vvd(
rmatn[2][0],
-0.3836265729708478796e-5,
1e-12,
"nutm80",
"31",
);
vvd(rmatn[2][1], 0.4060049308612638555e-4, 1e-12, "nutm80", "32");
vvd(rmatn[2][2], 0.9999999991684415129, 1e-12, "nutm80", "33");
}
#[test]
fn test_pb06() {
let (bzeta, bz, btheta) = pb06(2400000.5, 50123.9999);
vvd(bzeta, -0.5092634016326478238e-3, 1e-12, "pb06", "bzeta");
vvd(bz, -0.3602772060566044413e-3, 1e-12, "pb06", "bz");
vvd(btheta, -0.3779735537167811177e-3, 1e-12, "pb06", "btheta");
}
#[test]
fn test_pn06() {
let dpsi = -0.9632552291149335877e-5;
let deps = 0.4063197106621141414e-4;
let (epsa, rb, rp, rbp, rn, rbpn) = pn06(2400000.5, 53736.0, dpsi, deps);
vvd(epsa, 0.4090789763356509926, 1e-12, "pn06", "epsa");
vvd(rb[0][0], 0.9999999999999942497, 1e-12, "pn06", "rb11");
vvd(rb[0][1], -0.7078368960971557145e-7, 1e-14, "pn06", "rb12");
vvd(rb[0][2], 0.8056213977613185606e-7, 1e-14, "pn06", "rb13");
vvd(rb[1][0], 0.7078368694637674333e-7, 1e-14, "pn06", "rb21");
vvd(rb[1][1], 0.9999999999999969484, 1e-12, "pn06", "rb22");
vvd(rb[1][2], 0.3305943742989134124e-7, 1e-14, "pn06", "rb23");
vvd(rb[2][0], -0.8056214211620056792e-7, 1e-14, "pn06", "rb31");
vvd(rb[2][1], -0.3305943172740586950e-7, 1e-14, "pn06", "rb32");
vvd(rb[2][2], 0.9999999999999962084, 1e-12, "pn06", "rb33");
vvd(rp[0][0], 0.9999989300536854831, 1e-12, "pn06", "rp11");
vvd(rp[0][1], -0.1341646886204443795e-2, 1e-14, "pn06", "rp12");
vvd(rp[0][2], -0.5829880933488627759e-3, 1e-14, "pn06", "rp13");
vvd(rp[1][0], 0.1341646890569782183e-2, 1e-14, "pn06", "rp21");
vvd(rp[1][1], 0.9999990999913319321, 1e-12, "pn06", "rp22");
vvd(rp[1][2], -0.3835944216374477457e-6, 1e-14, "pn06", "rp23");
vvd(rp[2][0], 0.5829880833027867368e-3, 1e-14, "pn06", "rp31");
vvd(rp[2][1], -0.3985701514686976112e-6, 1e-14, "pn06", "rp32");
vvd(rp[2][2], 0.9999998300623534950, 1e-12, "pn06", "rp33");
vvd(rbp[0][0], 0.9999989300056797893, 1e-12, "pn06", "rbp11");
vvd(rbp[0][1], -0.1341717650545059598e-2, 1e-14, "pn06", "rbp12");
vvd(rbp[0][2], -0.5829075756493728856e-3, 1e-14, "pn06", "rbp13");
vvd(rbp[1][0], 0.1341717674223918101e-2, 1e-14, "pn06", "rbp21");
vvd(rbp[1][1], 0.9999990998963748448, 1e-12, "pn06", "rbp22");
vvd(rbp[1][2], -0.3504269280170069029e-6, 1e-14, "pn06", "rbp23");
vvd(rbp[2][0], 0.5829075211461454599e-3, 1e-14, "pn06", "rbp31");
vvd(rbp[2][1], -0.4316708436255949093e-6, 1e-14, "pn06", "rbp32");
vvd(rbp[2][2], 0.9999998301093032943, 1e-12, "pn06", "rbp33");
vvd(rn[0][0], 0.9999999999536069682, 1e-12, "pn06", "rn11");
vvd(rn[0][1], 0.8837746921149881914e-5, 1e-14, "pn06", "rn12");
vvd(rn[0][2], 0.3831487047682968703e-5, 1e-14, "pn06", "rn13");
vvd(rn[1][0], -0.8837591232983692340e-5, 1e-14, "pn06", "rn21");
vvd(rn[1][1], 0.9999999991354692664, 1e-12, "pn06", "rn22");
vvd(rn[1][2], -0.4063198798558931215e-4, 1e-14, "pn06", "rn23");
vvd(rn[2][0], -0.3831846139597250235e-5, 1e-14, "pn06", "rn31");
vvd(rn[2][1], 0.4063195412258792914e-4, 1e-14, "pn06", "rn32");
vvd(rn[2][2], 0.9999999991671806293, 1e-12, "pn06", "rn33");
vvd(rbpn[0][0], 0.9999989440504506688, 1e-12, "pn06", "rbpn11");
vvd(
rbpn[0][1],
-0.1332879913170492655e-2,
1e-14,
"pn06",
"rbpn12",
);
vvd(
rbpn[0][2],
-0.5790760923225655753e-3,
1e-14,
"pn06",
"rbpn13",
);
vvd(
rbpn[1][0],
0.1332856406595754748e-2,
1e-14,
"pn06",
"rbpn21",
);
vvd(rbpn[1][1], 0.9999991109069366795, 1e-12, "pn06", "rbpn22");
vvd(
rbpn[1][2],
-0.4097725651142641812e-4,
1e-14,
"pn06",
"rbpn23",
);
vvd(
rbpn[2][0],
0.5791301952321296716e-3,
1e-14,
"pn06",
"rbpn31",
);
vvd(
rbpn[2][1],
0.4020538796195230577e-4,
1e-14,
"pn06",
"rbpn32",
);
vvd(rbpn[2][2], 0.9999998314958576778, 1e-12, "pn06", "rbpn33");
}
#[test]
fn test_pn06a() {
let (dpsi, deps, epsa, rb, rp, rbp, rn, rbpn) = pn06a(2400000.5, 53736.0);
vvd(dpsi, -0.9630912025820308797e-5, 1e-12, "pn06a", "dpsi");
vvd(deps, 0.4063238496887249798e-4, 1e-12, "pn06a", "deps");
vvd(epsa, 0.4090789763356509926, 1e-12, "pn06a", "epsa");
vvd(rb[0][0], 0.9999999999999942497, 1e-12, "pn06a", "rb11");
vvd(rb[0][1], -0.7078368960971557145e-7, 1e-14, "pn06a", "rb12");
vvd(rb[0][2], 0.8056213977613185606e-7, 1e-14, "pn06a", "rb13");
vvd(rb[1][0], 0.7078368694637674333e-7, 1e-14, "pn06a", "rb21");
vvd(rb[1][1], 0.9999999999999969484, 1e-12, "pn06a", "rb22");
vvd(rb[1][2], 0.3305943742989134124e-7, 1e-14, "pn06a", "rb23");
vvd(rb[2][0], -0.8056214211620056792e-7, 1e-14, "pn06a", "rb31");
vvd(rb[2][1], -0.3305943172740586950e-7, 1e-14, "pn06a", "rb32");
vvd(rb[2][2], 0.9999999999999962084, 1e-12, "pn06a", "rb33");
vvd(rp[0][0], 0.9999989300536854831, 1e-12, "pn06a", "rp11");
vvd(rp[0][1], -0.1341646886204443795e-2, 1e-14, "pn06a", "rp12");
vvd(rp[0][2], -0.5829880933488627759e-3, 1e-14, "pn06a", "rp13");
vvd(rp[1][0], 0.1341646890569782183e-2, 1e-14, "pn06a", "rp21");
vvd(rp[1][1], 0.9999990999913319321, 1e-12, "pn06a", "rp22");
vvd(rp[1][2], -0.3835944216374477457e-6, 1e-14, "pn06a", "rp23");
vvd(rp[2][0], 0.5829880833027867368e-3, 1e-14, "pn06a", "rp31");
vvd(rp[2][1], -0.3985701514686976112e-6, 1e-14, "pn06a", "rp32");
vvd(rp[2][2], 0.9999998300623534950, 1e-12, "pn06a", "rp33");
vvd(rbp[0][0], 0.9999989300056797893, 1e-12, "pn06a", "rbp11");
vvd(
rbp[0][1],
-0.1341717650545059598e-2,
1e-14,
"pn06a",
"rbp12",
);
vvd(
rbp[0][2],
-0.5829075756493728856e-3,
1e-14,
"pn06a",
"rbp13",
);
vvd(rbp[1][0], 0.1341717674223918101e-2, 1e-14, "pn06a", "rbp21");
vvd(rbp[1][1], 0.9999990998963748448, 1e-12, "pn06a", "rbp22");
vvd(
rbp[1][2],
-0.3504269280170069029e-6,
1e-14,
"pn06a",
"rbp23",
);
vvd(rbp[2][0], 0.5829075211461454599e-3, 1e-14, "pn06a", "rbp31");
vvd(
rbp[2][1],
-0.4316708436255949093e-6,
1e-14,
"pn06a",
"rbp32",
);
vvd(rbp[2][2], 0.9999998301093032943, 1e-12, "pn06a", "rbp33");
vvd(rn[0][0], 0.9999999999536227668, 1e-12, "pn06a", "rn11");
vvd(rn[0][1], 0.8836241998111535233e-5, 1e-14, "pn06a", "rn12");
vvd(rn[0][2], 0.3830834608415287707e-5, 1e-14, "pn06a", "rn13");
vvd(rn[1][0], -0.8836086334870740138e-5, 1e-14, "pn06a", "rn21");
vvd(rn[1][1], 0.9999999991354657474, 1e-12, "pn06a", "rn22");
vvd(rn[1][2], -0.4063240188248455065e-4, 1e-14, "pn06a", "rn23");
vvd(rn[2][0], -0.3831193642839398128e-5, 1e-14, "pn06a", "rn31");
vvd(rn[2][1], 0.4063236803101479770e-4, 1e-14, "pn06a", "rn32");
vvd(rn[2][2], 0.9999999991671663114, 1e-12, "pn06a", "rn33");
vvd(rbpn[0][0], 0.9999989440480669738, 1e-12, "pn06a", "rbpn11");
vvd(
rbpn[0][1],
-0.1332881418091915973e-2,
1e-14,
"pn06a",
"rbpn12",
);
vvd(
rbpn[0][2],
-0.5790767447612042565e-3,
1e-14,
"pn06a",
"rbpn13",
);
vvd(
rbpn[1][0],
0.1332857911250989133e-2,
1e-14,
"pn06a",
"rbpn21",
);
vvd(rbpn[1][1], 0.9999991109049141908, 1e-12, "pn06a", "rbpn22");
vvd(
rbpn[1][2],
-0.4097767128546784878e-4,
1e-14,
"pn06a",
"rbpn23",
);
vvd(
rbpn[2][0],
0.5791308482835292617e-3,
1e-14,
"pn06a",
"rbpn31",
);
vvd(
rbpn[2][1],
0.4020580099454020310e-4,
1e-14,
"pn06a",
"rbpn32",
);
vvd(rbpn[2][2], 0.9999998314954628695, 1e-12, "pn06a", "rbpn33");
}
#[test]
fn test_pmat76() {
let rmatp = pmat76(2400000.5, 50123.9999);
vvd(rmatp[0][0], 0.9999995504328350733, 1e-12, "pmat76", "11");
vvd(rmatp[0][1], 0.8696632209480960785e-3, 1e-14, "pmat76", "12");
vvd(rmatp[0][2], 0.3779153474959888345e-3, 1e-14, "pmat76", "13");
vvd(
rmatp[1][0],
-0.8696632209485112192e-3,
1e-14,
"pmat76",
"21",
);
vvd(rmatp[1][1], 0.9999996218428560614, 1e-12, "pmat76", "22");
vvd(
rmatp[1][2],
-0.1643284776111886407e-6,
1e-14,
"pmat76",
"23",
);
vvd(
rmatp[2][0],
-0.3779153474950335077e-3,
1e-14,
"pmat76",
"31",
);
vvd(
rmatp[2][1],
-0.1643306746147366896e-6,
1e-14,
"pmat76",
"32",
);
vvd(rmatp[2][2], 0.9999999285899790119, 1e-12, "pmat76", "33");
}
#[test]
fn test_pnm80() {
let rmatpn = pnm80(2400000.5, 50123.9999);
vvd(rmatpn[0][0], 0.9999995831934611169, 1e-12, "pnm80", "11");
vvd(rmatpn[0][1], 0.8373654045728124011e-3, 1e-14, "pnm80", "12");
vvd(rmatpn[0][2], 0.3639121916933106191e-3, 1e-14, "pnm80", "13");
vvd(
rmatpn[1][0],
-0.8373804896118301316e-3,
1e-14,
"pnm80",
"21",
);
vvd(rmatpn[1][1], 0.9999996485439674092, 1e-12, "pnm80", "22");
vvd(rmatpn[1][2], 0.4130202510421549752e-4, 1e-14, "pnm80", "23");
vvd(
rmatpn[2][0],
-0.3638774789072144473e-3,
1e-14,
"pnm80",
"31",
);
vvd(
rmatpn[2][1],
-0.4160674085851722359e-4,
1e-14,
"pnm80",
"32",
);
vvd(rmatpn[2][2], 0.9999999329310274805, 1e-12, "pnm80", "33");
}
#[test]
fn test_p06e() {
let (
eps0,
psia,
oma,
bpa,
bqa,
pia,
bpia,
epsa,
chia,
za,
zetaa,
thetaa,
pa,
gam,
phi,
psi,
) = p06e(2400000.5, 52541.0);
vvd(eps0, 0.4090926006005828715, 1e-14, "p06e", "eps0");
vvd(psia, 0.6664369630191613431e-3, 1e-14, "p06e", "psia");
vvd(oma, 0.4090925973783255982, 1e-14, "p06e", "oma");
vvd(bpa, 0.5561149371265209445e-6, 1e-14, "p06e", "bpa");
vvd(bqa, -0.6191517193290621270e-5, 1e-14, "p06e", "bqa");
vvd(pia, 0.6216441751884382923e-5, 1e-14, "p06e", "pia");
vvd(bpia, 3.052014180023779882, 1e-14, "p06e", "bpia");
vvd(epsa, 0.4090864054922431688, 1e-14, "p06e", "epsa");
vvd(chia, 0.1387703379530915364e-5, 1e-14, "p06e", "chia");
vvd(za, 0.2921789846651790546e-3, 1e-14, "p06e", "za");
vvd(zetaa, 0.3178773290332009310e-3, 1e-14, "p06e", "zetaa");
vvd(thetaa, 0.2650932701657497181e-3, 1e-14, "p06e", "thetaa");
vvd(pa, 0.6651637681381016288e-3, 1e-14, "p06e", "pa");
vvd(gam, 0.1398077115963754987e-5, 1e-14, "p06e", "gam");
vvd(phi, 0.4090864090837462602, 1e-14, "p06e", "phi");
vvd(psi, 0.6664464807480920325e-3, 1e-14, "p06e", "psi");
}
#[test]
fn test_prec76() {
let ep01 = 2400000.5;
let ep02 = 33282.0;
let ep11 = 2400000.5;
let ep12 = 51544.0;
let (zeta, z, theta) = prec76(ep01, ep02, ep11, ep12);
vvd(zeta, 0.5588961642000161243e-2, 1e-12, "prec76", "zeta");
vvd(z, 0.5589922365870680624e-2, 1e-12, "prec76", "z");
vvd(theta, 0.4858945471687296760e-2, 1e-12, "prec76", "theta");
}
#[test]
fn test_s00a() {
let s = s00a(2400000.5, 52541.0);
vvd(s, -0.1340684448919163584e-7, 1e-18, "s00a", "");
}
#[test]
fn test_s00b() {
let s = s00b(2400000.5, 52541.0);
vvd(s, -0.1340695782951026584e-7, 1e-18, "s00b", "");
}
#[test]
fn test_s00() {
let x = 0.5791308486706011000e-3;
let y = 0.4020579816732961219e-4;
let s = s00(2400000.5, 53736.0, x, y);
vvd(s, -0.1220036263270905693e-7, 1e-18, "s00", "");
}
#[test]
fn test_s06a() {
let s = s06a(2400000.5, 52541.0);
vvd(s, -0.1340680437291812383e-7, 1e-18, "s06a", "");
}
#[test]
fn test_xy06() {
let (x, y) = xy06(2400000.5, 53736.0);
vvd(x, 0.5791308486706010975e-3, 1e-15, "xy06", "x");
vvd(y, 0.4020579816732958141e-4, 1e-16, "xy06", "y");
}
#[test]
fn test_bi00() {
let (dpsibi, depsbi, dra) = bi00();
vvd(dpsibi, -0.2025309152835086613e-6, 1e-12, "bi00", "dpsibi");
vvd(depsbi, -0.3306041454222147847e-7, 1e-12, "bi00", "depsbi");
vvd(dra, -0.7078279744199225506e-7, 1e-12, "bi00", "dra");
}
#[test]
fn test_bpn2xy() {
let rbpn = [
[
9.999962358680738e-1,
-2.516417057665452e-3,
-1.093569785342370e-3,
],
[
2.516462370370876e-3,
9.999968329010883e-1,
4.006159587358310e-5,
],
[
1.093465510215479e-3,
-4.281337229063151e-5,
9.999994012499173e-1,
],
];
let (x, y) = bpn2xy(&rbpn);
vvd(x, 1.093465510215479e-3, 1e-12, "bpn2xy", "x");
vvd(y, -4.281337229063151e-5, 1e-12, "bpn2xy", "y");
}
#[test]
fn test_c2t00a() {
let tta = 2400000.5;
let ttb = 53736.0;
let uta = 2400000.5;
let utb = 53736.0;
let xp = 2.55060238e-7;
let yp = 1.860359247e-6;
let rc2t = c2t00a(tta, ttb, uta, utb, xp, yp);
vvd(rc2t[0][0], -0.1810332128307182668, 1e-12, "c2t00a", "11");
vvd(rc2t[0][1], 0.9834769806938457836, 1e-12, "c2t00a", "12");
vvd(rc2t[0][2], 0.6555535638688341725e-4, 1e-12, "c2t00a", "13");
vvd(rc2t[1][0], -0.9834768134135984552, 1e-12, "c2t00a", "21");
vvd(rc2t[1][1], -0.1810332203649520727, 1e-12, "c2t00a", "22");
vvd(rc2t[1][2], 0.5749801116141056317e-3, 1e-12, "c2t00a", "23");
vvd(rc2t[2][0], 0.5773474014081406921e-3, 1e-12, "c2t00a", "31");
vvd(rc2t[2][1], 0.3961832391770163647e-4, 1e-12, "c2t00a", "32");
vvd(rc2t[2][2], 0.9999998325501692289, 1e-12, "c2t00a", "33");
}
#[test]
fn test_c2t00b() {
let tta = 2400000.5;
let ttb = 53736.0;
let uta = 2400000.5;
let utb = 53736.0;
let xp = 2.55060238e-7;
let yp = 1.860359247e-6;
let rc2t = c2t00b(tta, ttb, uta, utb, xp, yp);
vvd(rc2t[0][0], -0.1810332128439678965, 1e-12, "c2t00b", "11");
vvd(rc2t[0][1], 0.9834769806913872359, 1e-12, "c2t00b", "12");
vvd(rc2t[0][2], 0.6555565082458415611e-4, 1e-12, "c2t00b", "13");
vvd(rc2t[1][0], -0.9834768134115435923, 1e-12, "c2t00b", "21");
vvd(rc2t[1][1], -0.1810332203784001946, 1e-12, "c2t00b", "22");
vvd(rc2t[1][2], 0.5749793922030017230e-3, 1e-12, "c2t00b", "23");
vvd(rc2t[2][0], 0.5773467471863534901e-3, 1e-12, "c2t00b", "31");
vvd(rc2t[2][1], 0.3961790411549945020e-4, 1e-12, "c2t00b", "32");
vvd(rc2t[2][2], 0.9999998325505635738, 1e-12, "c2t00b", "33");
}
#[test]
fn test_c2t06a() {
let tta = 2400000.5;
let ttb = 53736.0;
let uta = 2400000.5;
let utb = 53736.0;
let xp = 2.55060238e-7;
let yp = 1.860359247e-6;
let rc2t = c2t06a(tta, ttb, uta, utb, xp, yp);
vvd(rc2t[0][0], -0.1810332128305897282, 1e-12, "c2t06a", "11");
vvd(rc2t[0][1], 0.9834769806938592296, 1e-12, "c2t06a", "12");
vvd(rc2t[0][2], 0.6555550962998436505e-4, 1e-12, "c2t06a", "13");
vvd(rc2t[1][0], -0.9834768134136214897, 1e-12, "c2t06a", "21");
vvd(rc2t[1][1], -0.1810332203649130832, 1e-12, "c2t06a", "22");
vvd(rc2t[1][2], 0.5749800844905594110e-3, 1e-12, "c2t06a", "23");
vvd(rc2t[2][0], 0.5773474024748545878e-3, 1e-12, "c2t06a", "31");
vvd(rc2t[2][1], 0.3961816829632690581e-4, 1e-12, "c2t06a", "32");
vvd(rc2t[2][2], 0.9999998325501747785, 1e-12, "c2t06a", "33");
}
#[test]
fn test_c2tcio() {
let rc2i = [
[
0.9999998323037165557,
0.5581526348992140183e-9,
-0.5791308477073443415e-3,
],
[
-0.2384266227870752452e-7,
0.9999999991917405258,
-0.4020594955030704125e-4,
],
[
0.5791308472168153320e-3,
0.4020595661593994396e-4,
0.9999998314954572365,
],
];
let era = 1.75283325530307;
let rpom = [
[
0.9999999999999674705,
-0.1367174580728847031e-10,
0.2550602379999972723e-6,
],
[
0.1414624947957029721e-10,
0.9999999999982694954,
-0.1860359246998866338e-5,
],
[
-0.2550602379741215275e-6,
0.1860359247002413923e-5,
0.9999999999982369658,
],
];
let rc2t = c2tcio(&rc2i, era, &rpom);
vvd(rc2t[0][0], -0.1810332128307110439, 1e-12, "c2tcio", "11");
vvd(rc2t[0][1], 0.9834769806938470149, 1e-12, "c2tcio", "12");
vvd(rc2t[0][2], 0.6555535638685466874e-4, 1e-12, "c2tcio", "13");
vvd(rc2t[1][0], -0.9834768134135996657, 1e-12, "c2tcio", "21");
vvd(rc2t[1][1], -0.1810332203649448367, 1e-12, "c2tcio", "22");
vvd(rc2t[1][2], 0.5749801116141106528e-3, 1e-12, "c2tcio", "23");
vvd(rc2t[2][0], 0.5773474014081407076e-3, 1e-12, "c2tcio", "31");
vvd(rc2t[2][1], 0.3961832391772658944e-4, 1e-12, "c2tcio", "32");
vvd(rc2t[2][2], 0.9999998325501691969, 1e-12, "c2tcio", "33");
}
#[test]
fn test_c2teqx() {
let rbpn = [
[
0.9999989440476103608,
-0.1332881761240011518e-2,
-0.5790767434730085097e-3,
],
[
0.1332858254308954453e-2,
0.9999991109044505944,
-0.4097782710401555759e-4,
],
[
0.5791308472168153320e-3,
0.4020595661593994396e-4,
0.9999998314954572365,
],
];
let gst = 1.754166138040730516;
let rpom = [
[
0.9999999999999674705,
-0.1367174580728847031e-10,
0.2550602379999972723e-6,
],
[
0.1414624947957029721e-10,
0.9999999999982694954,
-0.1860359246998866338e-5,
],
[
-0.2550602379741215275e-6,
0.1860359247002413923e-5,
0.9999999999982369658,
],
];
let rc2t = c2teqx(&rbpn, gst, &rpom);
vvd(rc2t[0][0], -0.1810332128528685730, 1e-12, "c2teqx", "11");
vvd(rc2t[0][1], 0.9834769806897685071, 1e-12, "c2teqx", "12");
vvd(rc2t[0][2], 0.6555535639982634449e-4, 1e-12, "c2teqx", "13");
vvd(rc2t[1][0], -0.9834768134095211257, 1e-12, "c2teqx", "21");
vvd(rc2t[1][1], -0.1810332203871023800, 1e-12, "c2teqx", "22");
vvd(rc2t[1][2], 0.5749801116126438962e-3, 1e-12, "c2teqx", "23");
vvd(rc2t[2][0], 0.5773474014081539467e-3, 1e-12, "c2teqx", "31");
vvd(rc2t[2][1], 0.3961832391768640871e-4, 1e-12, "c2teqx", "32");
vvd(rc2t[2][2], 0.9999998325501691969, 1e-12, "c2teqx", "33");
}
#[test]
fn test_c2tpe() {
let tta = 2400000.5;
let ttb = 53736.0;
let uta = 2400000.5;
let utb = 53736.0;
let deps = 0.4090789763356509900;
let dpsi = -0.9630909107115582393e-5;
let xp = 2.55060238e-7;
let yp = 1.860359247e-6;
let rc2t = c2tpe(tta, ttb, uta, utb, dpsi, deps, xp, yp);
vvd(rc2t[0][0], -0.1813677995763029394, 1e-12, "c2tpe", "11");
vvd(rc2t[0][1], 0.9023482206891683275, 1e-12, "c2tpe", "12");
vvd(rc2t[0][2], -0.3909902938641085751, 1e-12, "c2tpe", "13");
vvd(rc2t[1][0], -0.9834147641476804807, 1e-12, "c2tpe", "21");
vvd(rc2t[1][1], -0.1659883635434995121, 1e-12, "c2tpe", "22");
vvd(rc2t[1][2], 0.7309763898042819705e-1, 1e-12, "c2tpe", "23");
vvd(rc2t[2][0], 0.1059685430673215247e-2, 1e-12, "c2tpe", "31");
vvd(rc2t[2][1], 0.3977631855605078674, 1e-12, "c2tpe", "32");
vvd(rc2t[2][2], 0.9174875068792735362, 1e-12, "c2tpe", "33");
}
#[test]
fn test_c2txy() {
let tta = 2400000.5;
let ttb = 53736.0;
let uta = 2400000.5;
let utb = 53736.0;
let x = 0.5791308486706011000e-3;
let y = 0.4020579816732961219e-4;
let xp = 2.55060238e-7;
let yp = 1.860359247e-6;
let rc2t = c2txy(tta, ttb, uta, utb, x, y, xp, yp);
vvd(rc2t[0][0], -0.1810332128306279253, 1e-12, "c2txy", "11");
vvd(rc2t[0][1], 0.9834769806938520084, 1e-12, "c2txy", "12");
vvd(rc2t[0][2], 0.6555551248057665829e-4, 1e-12, "c2txy", "13");
vvd(rc2t[1][0], -0.9834768134136142314, 1e-12, "c2txy", "21");
vvd(rc2t[1][1], -0.1810332203649529312, 1e-12, "c2txy", "22");
vvd(rc2t[1][2], 0.5749800843594139912e-3, 1e-12, "c2txy", "23");
vvd(rc2t[2][0], 0.5773474028619264494e-3, 1e-12, "c2txy", "31");
vvd(rc2t[2][1], 0.3961816546911624260e-4, 1e-12, "c2txy", "32");
vvd(rc2t[2][2], 0.9999998325501746670, 1e-12, "c2txy", "33");
}
#[test]
fn test_eors() {
let rnpb = [
[
0.9999989440476103608,
-0.1332881761240011518e-2,
-0.5790767434730085097e-3,
],
[
0.1332858254308954453e-2,
0.9999991109044505944,
-0.4097782710401555759e-4,
],
[
0.5791308472168153320e-3,
0.4020595661593994396e-4,
0.9999998314954572365,
],
];
let s = -0.1220040848472271978e-7;
let eo = eors(&rnpb, s);
vvd(eo, -0.1332882715130744606e-2, 1e-14, "eors", "");
}
#[test]
fn test_fw2m() {
let gamb = -0.2243387670997992368e-5;
let phib = 0.4091014602391312982;
let psi = -0.9501954178013015092e-3;
let eps = 0.4091014316587367472;
let r = fw2m(gamb, phib, psi, eps);
vvd(r[0][0], 0.9999995505176007047, 1e-12, "fw2m", "11");
vvd(r[0][1], 0.8695404617348192957e-3, 1e-12, "fw2m", "12");
vvd(r[0][2], 0.3779735201865582571e-3, 1e-12, "fw2m", "13");
vvd(r[1][0], -0.8695404723772016038e-3, 1e-12, "fw2m", "21");
vvd(r[1][1], 0.9999996219496027161, 1e-12, "fw2m", "22");
vvd(r[1][2], -0.1361752496887100026e-6, 1e-12, "fw2m", "23");
vvd(r[2][0], -0.3779734957034082790e-3, 1e-12, "fw2m", "31");
vvd(r[2][1], -0.1924880848087615651e-6, 1e-12, "fw2m", "32");
vvd(r[2][2], 0.9999999285679971958, 1e-12, "fw2m", "33");
}
#[test]
fn test_numat() {
let epsa = 0.4090789763356509900;
let dpsi = -0.9630909107115582393e-5;
let deps = 0.4063239174001678826e-4;
let rmatn = numat(epsa, dpsi, deps);
vvd(rmatn[0][0], 0.9999999999536227949, 1e-12, "numat", "11");
vvd(rmatn[0][1], 0.8836239320236250577e-5, 1e-12, "numat", "12");
vvd(rmatn[0][2], 0.3830833447458251908e-5, 1e-12, "numat", "13");
vvd(rmatn[1][0], -0.8836083657016688588e-5, 1e-12, "numat", "21");
vvd(rmatn[1][1], 0.9999999991354654959, 1e-12, "numat", "22");
vvd(rmatn[1][2], -0.4063240865361857698e-4, 1e-12, "numat", "23");
vvd(rmatn[2][0], -0.3831192481833385226e-5, 1e-12, "numat", "31");
vvd(rmatn[2][1], 0.4063237480216934159e-4, 1e-12, "numat", "32");
vvd(rmatn[2][2], 0.9999999991671660407, 1e-12, "numat", "33");
}
#[test]
fn test_obl06() {
let eps = obl06(2400000.5, 54388.0);
vvd(eps, 0.4090749229387258204, 1e-14, "obl06", "");
}
#[test]
fn test_obl80() {
let eps0 = obl80(2400000.5, 54388.0);
vvd(eps0, 0.4090751347643816218, 1e-14, "obl80", "");
}
#[test]
fn test_pfw06() {
let (gamb, phib, psib, epsa) = pfw06(2400000.5, 50123.9999);
vvd(gamb, -0.2243387670997995690e-5, 1e-16, "pfw06", "gamb");
vvd(phib, 0.4091014602391312808, 1e-12, "pfw06", "phib");
vvd(psib, -0.9501954178013031895e-3, 1e-14, "pfw06", "psib");
vvd(epsa, 0.4091014316587367491, 1e-12, "pfw06", "epsa");
}
#[test]
fn test_pmat06() {
let rbp = pmat06(2400000.5, 50123.9999);
vvd(rbp[0][0], 0.9999995505176007047, 1e-12, "pmat06", "11");
vvd(rbp[0][1], 0.8695404617348208406e-3, 1e-14, "pmat06", "12");
vvd(rbp[0][2], 0.3779735201865589104e-3, 1e-14, "pmat06", "13");
vvd(rbp[1][0], -0.8695404723772031414e-3, 1e-14, "pmat06", "21");
vvd(rbp[1][1], 0.9999996219496027161, 1e-12, "pmat06", "22");
vvd(rbp[1][2], -0.1361752497080270143e-6, 1e-14, "pmat06", "23");
vvd(rbp[2][0], -0.3779734957034089490e-3, 1e-14, "pmat06", "31");
vvd(rbp[2][1], -0.1924880847894457113e-6, 1e-14, "pmat06", "32");
vvd(rbp[2][2], 0.9999999285679971958, 1e-12, "pmat06", "33");
}
#[test]
fn test_pn00b() {
let (dpsi, deps, epsa, rb, rp, rbp, rn, rbpn) = pn00b(2400000.5, 53736.0);
vvd(dpsi, -0.9632552291148362783e-5, 1e-12, "pn00b", "dpsi");
vvd(deps, 0.4063197106621159367e-4, 1e-12, "pn00b", "deps");
vvd(epsa, 0.4090791789404229916, 1e-12, "pn00b", "epsa");
vvd(rb[0][0], 0.9999999999999942498, 1e-12, "pn00b", "rb11");
vvd(rb[0][1], -0.7078279744199196626e-7, 1e-16, "pn00b", "rb12");
vvd(rb[0][2], 0.8056217146976134152e-7, 1e-16, "pn00b", "rb13");
vvd(rb[1][0], 0.7078279477857337206e-7, 1e-16, "pn00b", "rb21");
vvd(rb[1][1], 0.9999999999999969484, 1e-12, "pn00b", "rb22");
vvd(rb[1][2], 0.3306041454222136517e-7, 1e-16, "pn00b", "rb23");
vvd(rb[2][0], -0.8056217380986972157e-7, 1e-16, "pn00b", "rb31");
vvd(rb[2][1], -0.3306040883980552500e-7, 1e-16, "pn00b", "rb32");
vvd(rb[2][2], 0.9999999999999962084, 1e-12, "pn00b", "rb33");
vvd(rp[0][0], 0.9999989300532289018, 1e-12, "pn00b", "rp11");
vvd(rp[0][1], -0.1341647226791824349e-2, 1e-14, "pn00b", "rp12");
vvd(rp[0][2], -0.5829880927190296547e-3, 1e-14, "pn00b", "rp13");
vvd(rp[1][0], 0.1341647231069759008e-2, 1e-14, "pn00b", "rp21");
vvd(rp[1][1], 0.9999990999908750433, 1e-12, "pn00b", "rp22");
vvd(rp[1][2], -0.3837444441583715468e-6, 1e-14, "pn00b", "rp23");
vvd(rp[2][0], 0.5829880828740957684e-3, 1e-14, "pn00b", "rp31");
vvd(rp[2][1], -0.3984203267708834759e-6, 1e-14, "pn00b", "rp32");
vvd(rp[2][2], 0.9999998300623538046, 1e-12, "pn00b", "rp33");
vvd(rbp[0][0], 0.9999989300052243993, 1e-12, "pn00b", "rbp11");
vvd(
rbp[0][1],
-0.1341717990239703727e-2,
1e-14,
"pn00b",
"rbp12",
);
vvd(
rbp[0][2],
-0.5829075749891684053e-3,
1e-14,
"pn00b",
"rbp13",
);
vvd(rbp[1][0], 0.1341718013831739992e-2, 1e-14, "pn00b", "rbp21");
vvd(rbp[1][1], 0.9999990998959191343, 1e-12, "pn00b", "rbp22");
vvd(
rbp[1][2],
-0.3505759733565421170e-6,
1e-14,
"pn00b",
"rbp23",
);
vvd(rbp[2][0], 0.5829075206857717883e-3, 1e-14, "pn00b", "rbp31");
vvd(
rbp[2][1],
-0.4315219955198608970e-6,
1e-14,
"pn00b",
"rbp32",
);
vvd(rbp[2][2], 0.9999998301093036269, 1e-12, "pn00b", "rbp33");
vvd(rn[0][0], 0.9999999999536069682, 1e-12, "pn00b", "rn11");
vvd(rn[0][1], 0.8837746144871248011e-5, 1e-14, "pn00b", "rn12");
vvd(rn[0][2], 0.3831488838252202945e-5, 1e-14, "pn00b", "rn13");
vvd(rn[1][0], -0.8837590456632304720e-5, 1e-14, "pn00b", "rn21");
vvd(rn[1][1], 0.9999999991354692733, 1e-12, "pn00b", "rn22");
vvd(rn[1][2], -0.4063198798559591654e-4, 1e-14, "pn00b", "rn23");
vvd(rn[2][0], -0.3831847930134941271e-5, 1e-14, "pn00b", "rn31");
vvd(rn[2][1], 0.4063195412258168380e-4, 1e-14, "pn00b", "rn32");
vvd(rn[2][2], 0.9999999991671806225, 1e-12, "pn00b", "rn33");
vvd(rbpn[0][0], 0.9999989440499982806, 1e-12, "pn00b", "rbpn11");
vvd(
rbpn[0][1],
-0.1332880253640849194e-2,
1e-14,
"pn00b",
"rbpn12",
);
vvd(
rbpn[0][2],
-0.5790760898731091166e-3,
1e-14,
"pn00b",
"rbpn13",
);
vvd(
rbpn[1][0],
0.1332856746979949638e-2,
1e-14,
"pn00b",
"rbpn21",
);
vvd(rbpn[1][1], 0.9999991109064768883, 1e-12, "pn00b", "rbpn22");
vvd(
rbpn[1][2],
-0.4097740555723081811e-4,
1e-14,
"pn00b",
"rbpn23",
);
vvd(
rbpn[2][0],
0.5791301929950208873e-3,
1e-14,
"pn00b",
"rbpn31",
);
vvd(
rbpn[2][1],
0.4020553681373720832e-4,
1e-14,
"pn00b",
"rbpn32",
);
vvd(rbpn[2][2], 0.9999998314958529887, 1e-12, "pn00b", "rbpn33");
}
#[test]
fn test_pr00() {
let (dpsipr, depspr) = pr00(2400000.5, 53736.0);
vvd(dpsipr, -0.8716465172668347629e-7, 1e-22, "pr00", "dpsipr");
vvd(depspr, -0.7342018386722813087e-8, 1e-22, "pr00", "depspr");
}
#[test]
fn test_xys00a() {
let (x, y, s) = xys00a(2400000.5, 53736.0);
vvd(x, 0.5791308472168152904e-3, 1e-14, "xys00a", "x");
vvd(y, 0.4020595661591500259e-4, 1e-15, "xys00a", "y");
vvd(s, -0.1220040848471549623e-7, 1e-18, "xys00a", "s");
}
#[test]
fn test_xys00b() {
let (x, y, s) = xys00b(2400000.5, 53736.0);
vvd(x, 0.5791301929950208873e-3, 1e-14, "xys00b", "x");
vvd(y, 0.4020553681373720832e-4, 1e-15, "xys00b", "y");
vvd(s, -0.1220027377285083189e-7, 1e-18, "xys00b", "s");
}
#[test]
fn test_xys06a() {
let (x, y, s) = xys06a(2400000.5, 53736.0);
vvd(x, 0.5791308482835292617e-3, 1e-14, "xys06a", "x");
vvd(y, 0.4020580099454020310e-4, 1e-15, "xys06a", "y");
vvd(s, -0.1220032294164579896e-7, 1e-18, "xys06a", "s");
}
}