public void TestDeltaTWithoutEspenakMeeus2006() { using (var swe = new Sweph()) { swe.Date.UseEspenakMeeus2006 = false; double deltaPrec = 0.000000000001; Assert.AreEqual(1.5716511059188, swe.Date.DeltaT(0.0), deltaPrec); Assert.AreEqual(0.294436185639733, swe.Date.DeltaT(swe.JulianDay(-1010, 2, 2, 12.5)), deltaPrec); Assert.AreEqual(0.0375610997366034, swe.Date.DeltaT(2000000.0), deltaPrec); Assert.AreEqual(0.0375610327085927, swe.Date.DeltaT(2000000.25), deltaPrec); Assert.AreEqual(0.0375609656805818, swe.Date.DeltaT(2000000.5), deltaPrec); Assert.AreEqual(0.0375608986525707, swe.Date.DeltaT(2000000.75), deltaPrec); Assert.AreEqual(0.000848297829347124, swe.Date.DeltaT(2317746.13090277789), deltaPrec); var tjd = SweDate.J2000 + (365.25 * (1610 - 2000.0)); Assert.AreEqual(0.00138947083317893, swe.Date.DeltaT(tjd), deltaPrec); Assert.AreEqual(0.101230433035332, swe.Date.DeltaT(3000000), deltaPrec); Assert.AreEqual(0.101230598229371, swe.Date.DeltaT(3000000.5), deltaPrec); Assert.AreEqual(0.101230680826441, swe.Date.DeltaT(3000000.75), deltaPrec); Assert.AreEqual(0.000828297529544201, swe.Date.DeltaT(swe.JulianDay(2020, 1, 1, 10.5)), deltaPrec); } }
public void TestJulianDay() { using (var swe = new Sweph()) { Assert.AreEqual(0.0, swe.JulianDay(new DateUT(-4713, 11, 24, 12, 0, 0), DateCalendar.Gregorian).Value); Assert.AreEqual(0.0, swe.JulianDay(-4713, 11, 24, 12, 0, 0, DateCalendar.Gregorian).Value); Assert.AreEqual(0.0, swe.JulianDay(-4713, 11, 24, 12.0, DateCalendar.Gregorian).Value); Assert.AreEqual(0.0, swe.JulianDay(-4712, 1, 1, 12.0, DateCalendar.Julian).Value); Assert.AreEqual(2000000.0, swe.JulianDay(763, 9, 18, 12.0, DateCalendar.Gregorian).Value); Assert.AreEqual(2000000.0, swe.JulianDay(763, 9, 14, 12.0, DateCalendar.Julian).Value); Assert.AreEqual(1063884.0, swe.JulianDay(-1800, 9, 18, 12.0, DateCalendar.Gregorian).Value); Assert.AreEqual(1063865.0, swe.JulianDay(-1800, 9, 14, 12.0, DateCalendar.Julian).Value); } }
public void TestDeltaTWithLoadFile() { using (var swe = new Sweph()) { swe.OnLoadFile += (s, e) => { if (e.FileName == "sedeltat.txt") { e.File = new MemoryStream(System.Text.Encoding.Default.GetBytes(@"2000 30.0 2010 40.0 2020 50.0 2030 60.0 ")); } }; double deltaPrec = 0.000000000001; Assert.AreEqual(0.294436185639733, swe.Date.DeltaT(swe.JulianDay(-1010, 2, 2, 12.5)), deltaPrec); Assert.AreEqual(0.0375610997366034, swe.Date.DeltaT(2000000.0), deltaPrec); Assert.AreEqual(0.000347222222222222, swe.Date.DeltaT(SweDate.J2000), deltaPrec); Assert.AreEqual(0.000578564998305795, swe.Date.DeltaT(swe.JulianDay(2020, 1, 1, 10.5)), deltaPrec); } }
public void TestDeltaTWithEspenakMeeus2006() { using (var swe = new Sweph()) { swe.Date.UseEspenakMeeus2006 = true; double deltaPrec = 0.00000000000001; Assert.AreEqual(1.5716511059188, swe.Date.DeltaT(0.0), deltaPrec); var vals = new Dictionary <double, double>() { { swe.JulianDay(-1010, 2, 2, 12.5), 0.2947146757992 }, { swe.JulianDay(410, 2, 2, 12.5), 0.0759254042309472 }, { swe.JulianDay(1010, 2, 2, 12.5), 0.017408820265673 }, { swe.JulianDay(1650, 2, 2, 12.5), 0.000536887552700585 }, { swe.JulianDay(1750, 2, 2, 12.5), 0.000143408234925189 }, { swe.JulianDay(1850, 2, 2, 12.5), 8.02298701914818E-05 }, { swe.JulianDay(1870, 2, 2, 12.5), 1.61408658417223E-05 }, { swe.JulianDay(1910, 2, 2, 12.5), 0.000121668188266053 }, { swe.JulianDay(1930, 2, 2, 12.5), 0.000277897213030198 }, { swe.JulianDay(1950, 2, 2, 12.5), 0.000337817215327823 }, { swe.JulianDay(1970, 2, 2, 12.5), 0.000466047488324088 }, { swe.JulianDay(1990, 2, 2, 12.5), 0.000658780771068347 }, { swe.JulianDay(2000, 2, 2, 12.5), 0.000739073662856691 }, }; foreach (var kvp in vals) { Assert.AreEqual(kvp.Value, swe.Date.DeltaT(kvp.Key), deltaPrec, String.Format("deltat({0})", kvp.Key)); } Assert.AreEqual(0.0374254553961889, swe.Date.DeltaT(2000000.0), deltaPrec); Assert.AreEqual(0.0374253886123893, swe.Date.DeltaT(2000000.25), deltaPrec); Assert.AreEqual(0.0374253218286385, swe.Date.DeltaT(2000000.5), deltaPrec); Assert.AreEqual(0.0374252550449363, swe.Date.DeltaT(2000000.75), deltaPrec); Assert.AreEqual(0.000848297829347124, swe.Date.DeltaT(2317746.13090277789), deltaPrec); // 2415020.0 vals = new Dictionary <double, double>() { { 2400000.0, 8.85169749775391E-05 }, { 2400200.0, 8.89367796449606E-05 }, { 2400400.0, 8.94708209388948E-05 }, { 2400800.0, 8.87232218904813E-05 }, { 2402000.0, 7.08931645254769E-05 }, { 2404000.0, 1.81148433665968E-05 }, { 2408000.0, -6.40563578305767E-05 }, { 2410000.0, -6.57993558330751E-05 }, { 2412000.0, -7.15340361147556E-05 }, { 2414000.0, -6.50989531127749E-05 }, { 2418000.0, 9.19707007809117E-05 }, }; foreach (var kvp in vals) { Assert.AreEqual(kvp.Value, swe.Date.DeltaT(kvp.Key), deltaPrec, String.Format("deltat({0})", kvp.Key)); } Assert.AreEqual(0.101230433035332, swe.Date.DeltaT(3000000), deltaPrec); Assert.AreEqual(0.101230598229371, swe.Date.DeltaT(3000000.5), deltaPrec); Assert.AreEqual(0.101230680826441, swe.Date.DeltaT(3000000.75), deltaPrec); Assert.AreEqual(0.000828297529544201, swe.Date.DeltaT(swe.JulianDay(2020, 1, 1, 10.5)), deltaPrec); } }