mod common;
#[cfg(test)]
mod tests {
use super::common::{viv, vvd};
use sofars::eph;
#[test]
fn test_epv00() {
match eph::epv00(2400000.5, 53411.52501161) {
Some((pvh, pvb)) => {
vvd(pvh[0][0], -0.7757238809297706813, 1e-14, "epv00", "ph(x)");
vvd(pvh[0][1], 0.5598052241363340596, 1e-14, "epv00", "ph(y)");
vvd(pvh[0][2], 0.2426998466481686993, 1e-14, "epv00", "ph(z)");
vvd(pvh[1][0], -0.01091891824147313846, 1e-15, "epv00", "vh(x)");
vvd(pvh[1][1], -0.01247187268440845008, 1e-15, "epv00", "vh(y)");
vvd(pvh[1][2], -0.005407569418065039061, 1e-15, "epv00", "vh(z)");
vvd(pvb[0][0], -0.7714104440491111971, 1e-14, "epv00", "pb(x)");
vvd(pvb[0][1], 0.5598412061824171323, 1e-14, "epv00", "pb(y)");
vvd(pvb[0][2], 0.2425996277722452400, 1e-14, "epv00", "pb(z)");
vvd(pvb[1][0], -0.01091874268116823295, 1e-15, "epv00", "vb(x)");
vvd(pvb[1][1], -0.01246525461732861538, 1e-15, "epv00", "vb(y)");
vvd(pvb[1][2], -0.005404773180966231279, 1e-15, "epv00", "vb(z)");
}
None => {
panic!("Error: {:?}", "epv00() returned None");
}
}
}
#[test]
fn test_moon98() {
let pv = eph::moon98(2400000.5, 43999.9);
vvd(pv[0][0], -0.2601295959971044180e-2, 1e-11, "moon98", "x 4");
vvd(pv[0][1], 0.6139750944302742189e-3, 1e-11, "moon98", "y 4");
vvd(pv[0][2], 0.2640794528229828909e-3, 1e-11, "moon98", "z 4");
vvd(pv[1][0], -0.1244321506649895021e-3, 1e-11, "moon98", "xd 4");
vvd(pv[1][1], -0.5219076942678119398e-3, 1e-11, "moon98", "yd 4");
vvd(pv[1][2], -0.1716132214378462047e-3, 1e-11, "moon98", "zd 4");
}
#[test]
fn test_plan94() {
let j = eph::plan94(2400000.5, 1e6, 0).unwrap_err();
viv(j, -1, "plan94", "j 1");
let j = eph::plan94(2400000.5, 1e6, 10).unwrap_err();
viv(j, -1, "plan94", "j 2");
let (pv, j) = eph::plan94(2400000.5, -320000.0, 3).unwrap();
vvd(pv[0][0], 0.9308038666832975759, 1e-11, "plan94", "x 3");
vvd(pv[0][1], 0.3258319040261346000, 1e-11, "plan94", "y 3");
vvd(pv[0][2], 0.1422794544481140560, 1e-11, "plan94", "z 3");
vvd(pv[1][0], -0.6429458958255170006e-2, 1e-11, "plan94", "xd 3");
vvd(pv[1][1], 0.1468570657704237764e-1, 1e-11, "plan94", "yd 3");
vvd(pv[1][2], 0.6406996426270981189e-2, 1e-11, "plan94", "zd 3");
viv(j, 1, "plan94", "j 3");
let (pv, j) = eph::plan94(2400000.5, 43999.9, 1).unwrap();
vvd(pv[0][0], 0.2945293959257430832, 1e-11, "plan94", "x 4");
vvd(pv[0][1], -0.2452204176601049596, 1e-11, "plan94", "y 4");
vvd(pv[0][2], -0.1615427700571978153, 1e-11, "plan94", "z 4");
vvd(pv[1][0], 0.1413867871404614441e-1, 1e-11, "plan94", "xd 4");
vvd(pv[1][1], 0.1946548301104706582e-1, 1e-11, "plan94", "yd 4");
vvd(pv[1][2], 0.8929809783898904786e-2, 1e-11, "plan94", "zd 4");
viv(j, 0, "plan94", "j 4");
}
}