mod common;
#[cfg(test)]
mod tests {
use super::common::vvd;
use sofars::star;
#[test]
fn test_fk425() {
let r1950 = 0.07626899753879587532;
let d1950 = -1.137405378399605780;
let dr1950 = 0.1973749217849087460e-4;
let dd1950 = 0.5659714913272723189e-5;
let p1950 = 0.134;
let v1950 = 8.7;
let (r2000, d2000, dr2000, dd2000, p2000, v2000) =
star::fk425(r1950, d1950, dr1950, dd1950, p1950, v1950);
vvd(r2000, 0.08757989933556446040, 1e-14, "fk425", "r2000");
vvd(d2000, -1.132279113042091895, 1e-12, "fk425", "d2000");
vvd(dr2000, 0.1953670614474396139e-4, 1e-17, "fk425", "dr2000");
vvd(dd2000, 0.5637686678659640164e-5, 1e-18, "fk425", "dd2000");
vvd(p2000, 0.1339919950582767871, 1e-13, "fk425", "p2000");
vvd(v2000, 8.736999669183529069, 1e-12, "fk425", "v2000");
}
#[test]
fn test_fk45z() {
let r1950 = 0.01602284975382960982;
let d1950 = -0.1164347929099906024;
let bepoch = 1954.677617625256806;
let (r2000, d2000) = star::fk45z(r1950, d1950, bepoch);
vvd(r2000, 0.02719295911606862303, 1e-15, "fk45z", "r2000");
vvd(d2000, -0.1115766001565926892, 1e-13, "fk45z", "d2000");
}
#[test]
fn test_fk524() {
let r2000 = 0.8723503576487275595;
let d2000 = -0.7517076365138887672;
let dr2000 = 0.2019447755430472323e-4;
let dd2000 = 0.3541563940505160433e-5;
let p2000 = 0.1559;
let v2000 = 86.87;
let (r1950, d1950, dr1950, dd1950, p1950, v1950) =
star::fk524(r2000, d2000, dr2000, dd2000, p2000, v2000);
vvd(r1950, 0.8636359659799603487, 1e-13, "fk524", "r1950");
vvd(d1950, -0.7550281733160843059, 1e-13, "fk524", "d1950");
vvd(dr1950, 0.2023628192747172486e-4, 1e-17, "fk524", "dr1950");
vvd(dd1950, 0.3624459754935334718e-5, 1e-18, "fk524", "dd1950");
vvd(p1950, 0.1560079963299390241, 1e-13, "fk524", "p1950");
vvd(v1950, 86.79606353469163751, 1e-11, "fk524", "v1950");
}
#[test]
fn test_fk52h() {
let r5 = 1.76779433;
let d5 = -0.2917517103;
let dr5 = -1.91851572e-7;
let dd5 = -5.8468475e-6;
let px5 = 0.379210;
let rv5 = -7.6;
let (rh, dh, drh, ddh, pxh, rvh) = star::fk52h(r5, d5, dr5, dd5, px5, rv5);
vvd(rh, 1.767794226299947632, 1e-14, "fk52h", "ra");
vvd(dh, -0.2917516070530391757, 1e-14, "fk52h", "dec");
vvd(drh, -0.1961874125605721270e-6, 1e-19, "fk52h", "drh");
vvd(ddh, -0.58459905176693911e-5, 1e-19, "fk52h", "ddh");
vvd(pxh, 0.37921, 1e-14, "fk52h", "px");
vvd(rvh, -7.6000000940000254, 1e-11, "fk52h", "rv");
}
#[test]
fn test_fk54z() {
let r2000 = 0.02719026625066316119;
let d2000 = -0.1115815170738754813;
let bepoch = 1954.677308160316374;
let (r1950, d1950, dr1950, dd1950) = star::fk54z(r2000, d2000, bepoch);
vvd(r1950, 0.01602015588390065476, 1e-14, "fk54z", "r1950");
vvd(d1950, -0.1164397101110765346, 1e-13, "fk54z", "d1950");
vvd(dr1950, -0.1175712648471090704e-7, 1e-20, "fk54z", "dr1950");
vvd(dd1950, 0.2108109051316431056e-7, 1e-20, "fk54z", "dd1950");
}
#[test]
fn test_fk5hip() {
let (r5h, s5h) = star::fk5hip();
vvd(r5h[0][0], 0.9999999999999928638, 1e-14, "fk5hip", "11");
vvd(r5h[0][1], 0.1110223351022919694e-6, 1e-17, "fk5hip", "12");
vvd(r5h[0][2], 0.4411803962536558154e-7, 1e-17, "fk5hip", "13");
vvd(r5h[1][0], -0.1110223308458746430e-6, 1e-17, "fk5hip", "21");
vvd(r5h[1][1], 0.9999999999999891830, 1e-14, "fk5hip", "22");
vvd(r5h[1][2], -0.9647792498984142358e-7, 1e-17, "fk5hip", "23");
vvd(r5h[2][0], -0.4411805033656962252e-7, 1e-17, "fk5hip", "31");
vvd(r5h[2][1], 0.9647792009175314354e-7, 1e-17, "fk5hip", "32");
vvd(r5h[2][2], 0.9999999999999943728, 1e-14, "fk5hip", "33");
vvd(s5h[0], -0.1454441043328607981e-8, 1e-17, "fk5hip", "s1");
vvd(s5h[1], 0.2908882086657215962e-8, 1e-17, "fk5hip", "s2");
vvd(s5h[2], 0.3393695767766751955e-8, 1e-17, "fk5hip", "s3");
}
#[test]
fn test_fk5hz() {
let r5 = 1.76779433;
let d5 = -0.2917517103;
let (rh, dh) = star::fk5hz(r5, d5, 2400000.5, 54479.0);
vvd(rh, 1.767794191464423978, 1e-12, "fk5hz", "ra");
vvd(dh, -0.2917516001679884419, 1e-12, "fk5hz", "dec");
}
#[test]
fn test_h2fk5() {
let rh = 1.767794352;
let dh = -0.2917512594;
let drh = -2.76413026e-6;
let ddh = -5.92994449e-6;
let pxh = 0.379210;
let rvh = -7.6;
let (r5, d5, dr5, dd5, px5, rv5) = star::h2fk5(rh, dh, drh, ddh, pxh, rvh);
vvd(r5, 1.767794455700065506, 1e-13, "h2fk5", "ra");
vvd(d5, -0.2917513626469638890, 1e-13, "h2fk5", "dec");
vvd(dr5, -0.27597945024511204e-5, 1e-18, "h2fk5", "drh");
vvd(dd5, -0.59308014093262838e-5, 1e-18, "h2fk5", "ddh");
vvd(px5, 0.37921, 1e-13, "h2fk5", "px");
vvd(rv5, -7.6000001309071126, 1e-11, "h2fk5", "rv");
}
#[test]
fn test_hfk5z() {
let rh = 1.767794352;
let dh = -0.2917512594;
let (r5, d5, dr5, dd5) = star::hfk5z(rh, dh, 2400000.5, 54479.0);
vvd(r5, 1.767794490535581026, 1e-13, "hfk5z", "ra");
vvd(d5, -0.2917513695320114258, 1e-14, "hfk5z", "dec");
vvd(dr5, 0.4335890983539243029e-8, 1e-22, "hfk5z", "dr5");
vvd(dd5, -0.8569648841237745902e-9, 1e-23, "hfk5z", "dd5");
}
}