public void GetAngularVelocity() { Mass massSM = Mass.FromEarthMasses(1.0); Length radiusKM = Length.FromKilometers(10000.0); Density densityGCC = Density.FromGramsPerCubicCentimeter(2.0); Length semiMajorAxisAU = Length.FromAstronomicalUnits(1.0); bool isGasGiant = false; Mass largeMassSM = Mass.FromSolarMasses(1.0); Duration largeAgeYears = Duration.FromYears365(1e10); Assert.AreEqual(Env.AngularVelocity(massSM.SolarMasses, radiusKM.Kilometers, densityGCC.GramsPerCubicCentimeter, semiMajorAxisAU.AstronomicalUnits, isGasGiant, largeMassSM.SolarMasses, largeAgeYears.Years365), _phy.Dynamics.GetAngularVelocity(massSM, radiusKM, densityGCC, semiMajorAxisAU, isGasGiant, largeMassSM, largeAgeYears).RadiansPerSecond, LowDelta); }
public void ConversionRoundTrip() { Mass kilogram = Mass.FromKilograms(1); AssertEx.EqualTolerance(1, Mass.FromCentigrams(kilogram.Centigrams).Kilograms, CentigramsTolerance); AssertEx.EqualTolerance(1, Mass.FromDecagrams(kilogram.Decagrams).Kilograms, DecagramsTolerance); AssertEx.EqualTolerance(1, Mass.FromDecigrams(kilogram.Decigrams).Kilograms, DecigramsTolerance); AssertEx.EqualTolerance(1, Mass.FromEarthMasses(kilogram.EarthMasses).Kilograms, EarthMassesTolerance); AssertEx.EqualTolerance(1, Mass.FromGrains(kilogram.Grains).Kilograms, GrainsTolerance); AssertEx.EqualTolerance(1, Mass.FromGrams(kilogram.Grams).Kilograms, GramsTolerance); AssertEx.EqualTolerance(1, Mass.FromHectograms(kilogram.Hectograms).Kilograms, HectogramsTolerance); AssertEx.EqualTolerance(1, Mass.FromKilograms(kilogram.Kilograms).Kilograms, KilogramsTolerance); AssertEx.EqualTolerance(1, Mass.FromKilopounds(kilogram.Kilopounds).Kilograms, KilopoundsTolerance); AssertEx.EqualTolerance(1, Mass.FromKilotonnes(kilogram.Kilotonnes).Kilograms, KilotonnesTolerance); AssertEx.EqualTolerance(1, Mass.FromLongHundredweight(kilogram.LongHundredweight).Kilograms, LongHundredweightTolerance); AssertEx.EqualTolerance(1, Mass.FromLongTons(kilogram.LongTons).Kilograms, LongTonsTolerance); AssertEx.EqualTolerance(1, Mass.FromMegapounds(kilogram.Megapounds).Kilograms, MegapoundsTolerance); AssertEx.EqualTolerance(1, Mass.FromMegatonnes(kilogram.Megatonnes).Kilograms, MegatonnesTolerance); AssertEx.EqualTolerance(1, Mass.FromMicrograms(kilogram.Micrograms).Kilograms, MicrogramsTolerance); AssertEx.EqualTolerance(1, Mass.FromMilligrams(kilogram.Milligrams).Kilograms, MilligramsTolerance); AssertEx.EqualTolerance(1, Mass.FromNanograms(kilogram.Nanograms).Kilograms, NanogramsTolerance); AssertEx.EqualTolerance(1, Mass.FromOunces(kilogram.Ounces).Kilograms, OuncesTolerance); AssertEx.EqualTolerance(1, Mass.FromPounds(kilogram.Pounds).Kilograms, PoundsTolerance); AssertEx.EqualTolerance(1, Mass.FromShortHundredweight(kilogram.ShortHundredweight).Kilograms, ShortHundredweightTolerance); AssertEx.EqualTolerance(1, Mass.FromShortTons(kilogram.ShortTons).Kilograms, ShortTonsTolerance); AssertEx.EqualTolerance(1, Mass.FromSlugs(kilogram.Slugs).Kilograms, SlugsTolerance); AssertEx.EqualTolerance(1, Mass.FromSolarMasses(kilogram.SolarMasses).Kilograms, SolarMassesTolerance); AssertEx.EqualTolerance(1, Mass.FromStone(kilogram.Stone).Kilograms, StoneTolerance); AssertEx.EqualTolerance(1, Mass.FromTonnes(kilogram.Tonnes).Kilograms, TonnesTolerance); }
public void TestAtmosphereComposition() { var star = new Star(); var seed = new Seed(Length.FromAstronomicalUnits(1.0), Ratio.FromDecimalFractions(1.0), Mass.FromEarthMasses(1.0), Mass.FromEarthMasses(1.0), Mass.Zero); var layers = new List <Layer>() { new BasicSolidLayer(Length.FromKilometers(10000.0), Mass.FromEarthMasses(1.0), new (Chemical, Ratio)[0]),
public void GetPeriod() { Length separation = Length.FromAstronomicalUnits(1.0); Mass smallMass = Mass.FromEarthMasses(1.0); Mass largeMass = Mass.FromSolarMasses(1.0); Assert.AreEqual(Env.Period(separation.AstronomicalUnits, smallMass.SolarMasses, largeMass.SolarMasses), _phy.Astronomy.GetPeriod(separation, smallMass, largeMass).Days, LowDelta); }
public void GetHillSphere() { Mass sunMass = Mass.FromSolarMasses(1.0); Mass massSM = Mass.FromEarthMasses(1.0); Length semiMajorAxisAU = Length.FromAstronomicalUnits(1.0); Assert.AreEqual(Env.SimplifiedHillSphereAU(sunMass.SolarMasses, massSM.SolarMasses, semiMajorAxisAU.AstronomicalUnits), _phy.Astronomy.GetHillSphere(sunMass, massSM, semiMajorAxisAU).AstronomicalUnits, LowDelta); }
public void GetEscapeVelocity() { Mass massSM = Mass.FromEarthMasses(2.0); Length radius = Length.FromKilometers(10000.0); Assert.AreEqual(Env.EscapeVelocity(massSM.SolarMasses, radius.Kilometers) / 1e5, _phy.Dynamics.GetEscapeVelocity(massSM, radius).KilometersPerSecond, VeryHighDelta); }
public void GetChangeInAngularVelocity() { Density densityGCC = Density.FromGramsPerCubicCentimeter(2.5); Mass massSM = Mass.FromEarthMasses(0.75); Length radiusKM = Length.FromKilometers(2500.0); Length semiMajorAxisAU = Length.FromAstronomicalUnits(1.4); Mass largeMassSM = Mass.FromSolarMasses(1.5); Assert.AreEqual(Env.ChangeInAngularVelocity(densityGCC.GramsPerCubicCentimeter, massSM.SolarMasses, radiusKM.Kilometers, semiMajorAxisAU.AstronomicalUnits, largeMassSM.SolarMasses), _phy.Dynamics.GetChangeInAngularVelocity(densityGCC, massSM, radiusKM, semiMajorAxisAU, largeMassSM).RadiansPerSecond, LowDelta); }
public static Mass EarthMasses <T>(this T value) => Mass.FromEarthMasses(Convert.ToDouble(value));
public void NumberToEarthMassesTest() => Assert.Equal(Mass.FromEarthMasses(2), 2.EarthMasses());
private SatelliteBody GetMockPlanet(Func <IEnumerable <Layer> > mockAtmoGen) { var star = new Star(); var seed = new Seed(Length.FromAstronomicalUnits(1.0), Ratio.FromDecimalFractions(1.0), Mass.FromEarthMasses(1.0), Mass.FromEarthMasses(1.0), Mass.FromEarthMasses(0.000001)); var planet = new Planet(seed, star, star, mockAtmoGen()); //planet.RecalculateGases(mockAtmoGen()); return(planet); }
private SatelliteBody GetTestPlanetNoAtmosphere() { var seed = new Seed(Length.FromAstronomicalUnits(1.0), Ratio.FromDecimalFractions(1.0), Mass.FromEarthMasses(1.0), Mass.FromEarthMasses(1.0), Mass.Zero); var star = GetTestStar(); var planet = new Planet(seed, star, star, new List <Layer>() { new BasicSolidLayer(Length.FromKilometers(10000.0)) }); return(planet); }