public void TestCastToDouble()
        {
            var jd = new JulianDay(JulianDay.J2000);
            var et = new EphemerisTime(jd, 12.34);

            Assert.Equal(2451545 + 12.34, (double)et);
        }
        public void TestToString()
        {
            var jd = new JulianDay(JulianDay.J2000);
            var et = new EphemerisTime(jd, 12.34);

            Assert.Equal((2451557.34).ToString(), et.ToString());
        }
Beispiel #3
0
        public void TestCreateEmpty()
        {
            EphemerisTime et = new EphemerisTime();

            Assert.AreEqual(0.0, et.JulianDay.Value);
            Assert.AreEqual(0.0, et.DeltaT);
            Assert.AreEqual(0.0, et.Value);
        }
        PlanetValues InternalCalcPlanet(Planet planet, EphemerisTime time, double?armc = null, Longitude?longitude = null, double?trueEclipticObliquity = null)
        {
            CheckInitialized();
            String serr = null;

            Double[] x    = new double[24];
            String   star = String.Empty;
            int      iflgret;
            var      result = new PlanetValues()
            {
                Planet = planet
            };

            if (planet == Planet.FixedStar)
            {
                iflgret           = Sweph.swe_fixstar(star, time, _SwephFlag, x, ref serr);
                result.PlanetName = star;
            }
            else
            {
                iflgret           = Sweph.swe_calc(time, planet, _SwephFlag, x, ref serr);
                result.PlanetName = Sweph.swe_get_planet_name(planet);
                if (planet.IsAsteroid)
                {
                    result.PlanetName = String.Format("#{0}", planet - Planet.FirstAsteroid);
                }
            }
            if (iflgret >= 0)
            {
                result.Longitude      = x[0];
                result.Latitude       = x[1];
                result.Distance       = x[2];
                result.LongitudeSpeed = x[3];
                result.LatitudeSpeed  = x[4];
                result.DistanceSpeed  = x[5];
                if (armc.HasValue && longitude.HasValue && trueEclipticObliquity.HasValue)
                {
                    result.HousePosition = Sweph.swe_house_pos(armc.Value, longitude.Value, trueEclipticObliquity.Value, HouseSystemToChar(_HouseSystem), x, ref serr);
                    if (result.HousePosition == 0)
                    {
                        iflgret = SwissEph.ERR;
                    }
                }
            }
            if (iflgret < 0)
            {
                if (!String.IsNullOrEmpty(serr))
                {
                    result.ErrorMessage = serr;
                }
            }
            else if (!String.IsNullOrEmpty(serr) && String.IsNullOrEmpty(result.WarnMessage))
            {
                result.WarnMessage = serr;
            }
            return(result);
        }
Beispiel #5
0
        public void TestToString()
        {
            var           date = new UniversalTime(2014, 4, 26, 16, 53, 24);
            var           jd   = new JulianDay(date, DateCalendar.Gregorian);
            var           dt   = 0.456;
            EphemerisTime et   = new EphemerisTime(jd, dt);

            Assert.AreEqual(2456774.65975.ToString(), et.ToString());
        }
Beispiel #6
0
        public void TestCastToDouble()
        {
            var           date = new UniversalTime(2014, 4, 26, 16, 53, 24);
            var           jd   = new JulianDay(date, DateCalendar.Gregorian);
            var           dt   = 0.456;
            EphemerisTime et   = new EphemerisTime(jd, dt);
            double        cd   = et;

            Assert.AreEqual(cd, et.Value);
        }
Beispiel #7
0
        public void TestCreate()
        {
            var           date = new UniversalTime(2014, 4, 26, 16, 53, 24);
            var           jd   = new JulianDay(date, DateCalendar.Gregorian);
            var           dt   = 0.456;
            EphemerisTime et   = new EphemerisTime(jd, dt);

            Assert.AreEqual(jd, et.JulianDay);
            Assert.AreEqual(dt, et.DeltaT);
            Assert.AreEqual(jd.Value + dt, et.Value);
        }
 /// <summary>
 /// Reset the result
 /// </summary>
 public void Reset()
 {
     DateUTC               = new DateUT();
     JulianDay             = new JulianDay();
     EphemerisTime         = new EphemerisTime();
     SideralTime           = 0;
     MeanEclipticObliquity = 0;
     TrueEclipticObliquity = 0;
     NutationLongitude     = 0;
     NutationObliquity     = 0;
     Planets.Clear();
     Houses.Clear();
     ASMCs.Clear();
 }
        /// <summary>
        /// Calcul des nutations écliptiques
        /// </summary>
        public EclipticNutationValues CalcEclipticNutation(EphemerisTime time)
        {
            CheckInitialized();
            String serr = null;

            Double[] x       = new double[24];
            var      iflgret = Sweph.swe_calc(time, SwissEph.SE_ECL_NUT, _SwephFlag, x, ref serr);

            return(new EclipticNutationValues {
                TrueEclipticObliquity = x[0],
                MeanEclipticObliquity = x[1],
                NutationLongitude = x[2],
                NutationObliquity = x[3]
            });
        }
        public void TestCreate()
        {
            var et = new EphemerisTime();

            Assert.Equal(0, et.JulianDay);
            Assert.Equal(0, et.DeltaT);
            Assert.Equal(0, et.Value);

            var jd = new JulianDay(JulianDay.J2000);

            et = new EphemerisTime(jd, 12.34);
            Assert.Equal(2451545, et.JulianDay);
            Assert.Equal(12.34, et.DeltaT);
            Assert.Equal(2451545 + 12.34, et.Value);
        }
 /// <summary>
 /// Calcul les informations d'une planète avec sa position dans une maison
 /// </summary>
 public PlanetValues CalcPlanet(Planet planet, EphemerisTime time, double armc, Longitude longitude, double trueEclipticObliquity)
 {
     return(InternalCalcPlanet(planet, time, armc, longitude, trueEclipticObliquity));
 }
 /// <summary>
 /// Calcul les informations d'une planète sans sa position dans une maison
 /// </summary>
 public PlanetValues CalcPlanet(Planet planet, EphemerisTime time)
 {
     return(InternalCalcPlanet(planet, time));
 }