diff --git a/UnitsNet.Tests/CustomCode/LengthTests.cs b/UnitsNet.Tests/CustomCode/LengthTests.cs index ad183c9d35..197853bcc2 100644 --- a/UnitsNet.Tests/CustomCode/LengthTests.cs +++ b/UnitsNet.Tests/CustomCode/LengthTests.cs @@ -20,6 +20,7 @@ // THE SOFTWARE. using NUnit.Framework; +using UnitsNet.Units; namespace UnitsNet.Tests.CustomCode { @@ -88,5 +89,25 @@ public void LengthTimesLengthEqualsArea() Area area = Length.FromMeters(10)*Length.FromMeters(2); Assert.AreEqual(area, Area.FromSquareMeters(20)); } + + [Test] + public void ToStringReturnsCorrectNumberAndUnitWithDefaultUnitWhichIsMeter() + { + Length.ToStringDefaultUnit = LengthUnit.Meter; + Length meter = Length.FromMeters(5); + string meterString = meter.ToString(); + Assert.AreEqual("5 m", meterString); + } + + [Test] + public void ToStringReturnsCorrectNumberAndUnitWithCentimeterAsDefualtUnit() + { + LengthUnit oldUnit = Length.ToStringDefaultUnit; + Length.ToStringDefaultUnit = LengthUnit.Centimeter; + Length value = Length.From(2, LengthUnit.Centimeter); + string valueString = value.ToString(); + Length.ToStringDefaultUnit = oldUnit; + Assert.AreEqual("2 cm", valueString); + } } } \ No newline at end of file diff --git a/UnitsNet.Tests/CustomCode/VolumeTests.cs b/UnitsNet.Tests/CustomCode/VolumeTests.cs index 9d20fde52a..241889b9ab 100644 --- a/UnitsNet.Tests/CustomCode/VolumeTests.cs +++ b/UnitsNet.Tests/CustomCode/VolumeTests.cs @@ -43,6 +43,8 @@ public class VolumeTests : VolumeTestsBase protected override double CubicMillimetersInOneCubicMeter => 1E9; + protected override double CubicMicrometersInOneCubicMeter => 1E18; + protected override double CubicYardsInOneCubicMeter => 1.30795062; protected override double DecilitersInOneCubicMeter => 1E4; diff --git a/UnitsNet.Tests/GeneratedCode/VolumeTestsBase.g.cs b/UnitsNet.Tests/GeneratedCode/VolumeTestsBase.g.cs index 97a0f13a8b..ff47f26b60 100644 --- a/UnitsNet.Tests/GeneratedCode/VolumeTestsBase.g.cs +++ b/UnitsNet.Tests/GeneratedCode/VolumeTestsBase.g.cs @@ -43,6 +43,7 @@ public abstract partial class VolumeTestsBase protected abstract double CubicInchesInOneCubicMeter { get; } protected abstract double CubicKilometersInOneCubicMeter { get; } protected abstract double CubicMetersInOneCubicMeter { get; } + protected abstract double CubicMicrometersInOneCubicMeter { get; } protected abstract double CubicMilesInOneCubicMeter { get; } protected abstract double CubicMillimetersInOneCubicMeter { get; } protected abstract double CubicYardsInOneCubicMeter { get; } @@ -68,6 +69,7 @@ public abstract partial class VolumeTestsBase protected virtual double CubicInchesTolerance { get { return 1e-5; } } protected virtual double CubicKilometersTolerance { get { return 1e-5; } } protected virtual double CubicMetersTolerance { get { return 1e-5; } } + protected virtual double CubicMicrometersTolerance { get { return 1e-5; } } protected virtual double CubicMilesTolerance { get { return 1e-5; } } protected virtual double CubicMillimetersTolerance { get { return 1e-5; } } protected virtual double CubicYardsTolerance { get { return 1e-5; } } @@ -97,6 +99,7 @@ public void CubicMeterToVolumeUnits() Assert.AreEqual(CubicInchesInOneCubicMeter, cubicmeter.CubicInches, CubicInchesTolerance); Assert.AreEqual(CubicKilometersInOneCubicMeter, cubicmeter.CubicKilometers, CubicKilometersTolerance); Assert.AreEqual(CubicMetersInOneCubicMeter, cubicmeter.CubicMeters, CubicMetersTolerance); + Assert.AreEqual(CubicMicrometersInOneCubicMeter, cubicmeter.CubicMicrometers, CubicMicrometersTolerance); Assert.AreEqual(CubicMilesInOneCubicMeter, cubicmeter.CubicMiles, CubicMilesTolerance); Assert.AreEqual(CubicMillimetersInOneCubicMeter, cubicmeter.CubicMillimeters, CubicMillimetersTolerance); Assert.AreEqual(CubicYardsInOneCubicMeter, cubicmeter.CubicYards, CubicYardsTolerance); @@ -125,6 +128,7 @@ public void FromValueAndUnit() Assert.AreEqual(1, Volume.From(1, VolumeUnit.CubicInch).CubicInches, CubicInchesTolerance); Assert.AreEqual(1, Volume.From(1, VolumeUnit.CubicKilometer).CubicKilometers, CubicKilometersTolerance); Assert.AreEqual(1, Volume.From(1, VolumeUnit.CubicMeter).CubicMeters, CubicMetersTolerance); + Assert.AreEqual(1, Volume.From(1, VolumeUnit.CubicMicrometer).CubicMicrometers, CubicMicrometersTolerance); Assert.AreEqual(1, Volume.From(1, VolumeUnit.CubicMile).CubicMiles, CubicMilesTolerance); Assert.AreEqual(1, Volume.From(1, VolumeUnit.CubicMillimeter).CubicMillimeters, CubicMillimetersTolerance); Assert.AreEqual(1, Volume.From(1, VolumeUnit.CubicYard).CubicYards, CubicYardsTolerance); @@ -154,6 +158,7 @@ public void As() Assert.AreEqual(CubicInchesInOneCubicMeter, cubicmeter.As(VolumeUnit.CubicInch), CubicInchesTolerance); Assert.AreEqual(CubicKilometersInOneCubicMeter, cubicmeter.As(VolumeUnit.CubicKilometer), CubicKilometersTolerance); Assert.AreEqual(CubicMetersInOneCubicMeter, cubicmeter.As(VolumeUnit.CubicMeter), CubicMetersTolerance); + Assert.AreEqual(CubicMicrometersInOneCubicMeter, cubicmeter.As(VolumeUnit.CubicMicrometer), CubicMicrometersTolerance); Assert.AreEqual(CubicMilesInOneCubicMeter, cubicmeter.As(VolumeUnit.CubicMile), CubicMilesTolerance); Assert.AreEqual(CubicMillimetersInOneCubicMeter, cubicmeter.As(VolumeUnit.CubicMillimeter), CubicMillimetersTolerance); Assert.AreEqual(CubicYardsInOneCubicMeter, cubicmeter.As(VolumeUnit.CubicYard), CubicYardsTolerance); @@ -183,6 +188,7 @@ public void ConversionRoundTrip() Assert.AreEqual(1, Volume.FromCubicInches(cubicmeter.CubicInches).CubicMeters, CubicInchesTolerance); Assert.AreEqual(1, Volume.FromCubicKilometers(cubicmeter.CubicKilometers).CubicMeters, CubicKilometersTolerance); Assert.AreEqual(1, Volume.FromCubicMeters(cubicmeter.CubicMeters).CubicMeters, CubicMetersTolerance); + Assert.AreEqual(1, Volume.FromCubicMicrometers(cubicmeter.CubicMicrometers).CubicMeters, CubicMicrometersTolerance); Assert.AreEqual(1, Volume.FromCubicMiles(cubicmeter.CubicMiles).CubicMeters, CubicMilesTolerance); Assert.AreEqual(1, Volume.FromCubicMillimeters(cubicmeter.CubicMillimeters).CubicMeters, CubicMillimetersTolerance); Assert.AreEqual(1, Volume.FromCubicYards(cubicmeter.CubicYards).CubicMeters, CubicYardsTolerance); diff --git a/UnitsNet/CustomCode/UnitClasses/Length.extra.cs b/UnitsNet/CustomCode/UnitClasses/Length.extra.cs index f25926111b..fb530ed0cd 100644 --- a/UnitsNet/CustomCode/UnitClasses/Length.extra.cs +++ b/UnitsNet/CustomCode/UnitClasses/Length.extra.cs @@ -20,6 +20,7 @@ // THE SOFTWARE. using System; +using System.Diagnostics; using System.Globalization; using UnitsNet.Units; diff --git a/UnitsNet/GeneratedCode/Enums/VolumeUnit.g.cs b/UnitsNet/GeneratedCode/Enums/VolumeUnit.g.cs index 36e409a7d3..16741221c6 100644 --- a/UnitsNet/GeneratedCode/Enums/VolumeUnit.g.cs +++ b/UnitsNet/GeneratedCode/Enums/VolumeUnit.g.cs @@ -32,6 +32,7 @@ public enum VolumeUnit CubicInch, CubicKilometer, CubicMeter, + CubicMicrometer, CubicMile, CubicMillimeter, CubicYard, diff --git a/UnitsNet/GeneratedCode/UnitClasses/Acceleration.g.cs b/UnitsNet/GeneratedCode/UnitClasses/Acceleration.g.cs index 2e97a8bb1d..1f693b5a27 100644 --- a/UnitsNet/GeneratedCode/UnitClasses/Acceleration.g.cs +++ b/UnitsNet/GeneratedCode/UnitClasses/Acceleration.g.cs @@ -473,13 +473,18 @@ public static AccelerationUnit ParseUnit(string str, IFormatProvider formatProvi #endregion + /// + /// Set the default unit used by ToString(). Default is MeterPerSecondSquared + /// + public static AccelerationUnit ToStringDefaultUnit { get; set; } = AccelerationUnit.MeterPerSecondSquared; + /// /// Get default string representation of value and unit. /// /// String representation. public override string ToString() { - return ToString(AccelerationUnit.MeterPerSecondSquared); + return ToString(ToStringDefaultUnit); } /// diff --git a/UnitsNet/GeneratedCode/UnitClasses/AmplitudeRatio.g.cs b/UnitsNet/GeneratedCode/UnitClasses/AmplitudeRatio.g.cs index af61d1867c..665f7932cb 100644 --- a/UnitsNet/GeneratedCode/UnitClasses/AmplitudeRatio.g.cs +++ b/UnitsNet/GeneratedCode/UnitClasses/AmplitudeRatio.g.cs @@ -401,13 +401,18 @@ public static AmplitudeRatioUnit ParseUnit(string str, IFormatProvider formatPro #endregion + /// + /// Set the default unit used by ToString(). Default is DecibelVolt + /// + public static AmplitudeRatioUnit ToStringDefaultUnit { get; set; } = AmplitudeRatioUnit.DecibelVolt; + /// /// Get default string representation of value and unit. /// /// String representation. public override string ToString() { - return ToString(AmplitudeRatioUnit.DecibelVolt); + return ToString(ToStringDefaultUnit); } /// diff --git a/UnitsNet/GeneratedCode/UnitClasses/Angle.g.cs b/UnitsNet/GeneratedCode/UnitClasses/Angle.g.cs index e47a9faa7c..0cc5293fae 100644 --- a/UnitsNet/GeneratedCode/UnitClasses/Angle.g.cs +++ b/UnitsNet/GeneratedCode/UnitClasses/Angle.g.cs @@ -533,13 +533,18 @@ public static AngleUnit ParseUnit(string str, IFormatProvider formatProvider = n #endregion + /// + /// Set the default unit used by ToString(). Default is Degree + /// + public static AngleUnit ToStringDefaultUnit { get; set; } = AngleUnit.Degree; + /// /// Get default string representation of value and unit. /// /// String representation. public override string ToString() { - return ToString(AngleUnit.Degree); + return ToString(ToStringDefaultUnit); } /// diff --git a/UnitsNet/GeneratedCode/UnitClasses/Area.g.cs b/UnitsNet/GeneratedCode/UnitClasses/Area.g.cs index 726318e673..8ae5edfda5 100644 --- a/UnitsNet/GeneratedCode/UnitClasses/Area.g.cs +++ b/UnitsNet/GeneratedCode/UnitClasses/Area.g.cs @@ -533,13 +533,18 @@ public static AreaUnit ParseUnit(string str, IFormatProvider formatProvider = nu #endregion + /// + /// Set the default unit used by ToString(). Default is SquareMeter + /// + public static AreaUnit ToStringDefaultUnit { get; set; } = AreaUnit.SquareMeter; + /// /// Get default string representation of value and unit. /// /// String representation. public override string ToString() { - return ToString(AreaUnit.SquareMeter); + return ToString(ToStringDefaultUnit); } /// diff --git a/UnitsNet/GeneratedCode/UnitClasses/Density.g.cs b/UnitsNet/GeneratedCode/UnitClasses/Density.g.cs index 839f6c968f..842783bed7 100644 --- a/UnitsNet/GeneratedCode/UnitClasses/Density.g.cs +++ b/UnitsNet/GeneratedCode/UnitClasses/Density.g.cs @@ -533,13 +533,18 @@ public static DensityUnit ParseUnit(string str, IFormatProvider formatProvider = #endregion + /// + /// Set the default unit used by ToString(). Default is KilogramPerCubicMeter + /// + public static DensityUnit ToStringDefaultUnit { get; set; } = DensityUnit.KilogramPerCubicMeter; + /// /// Get default string representation of value and unit. /// /// String representation. public override string ToString() { - return ToString(DensityUnit.KilogramPerCubicMeter); + return ToString(ToStringDefaultUnit); } /// diff --git a/UnitsNet/GeneratedCode/UnitClasses/Duration.g.cs b/UnitsNet/GeneratedCode/UnitClasses/Duration.g.cs index bf8c463258..5734d29371 100644 --- a/UnitsNet/GeneratedCode/UnitClasses/Duration.g.cs +++ b/UnitsNet/GeneratedCode/UnitClasses/Duration.g.cs @@ -533,13 +533,18 @@ public static DurationUnit ParseUnit(string str, IFormatProvider formatProvider #endregion + /// + /// Set the default unit used by ToString(). Default is Second + /// + public static DurationUnit ToStringDefaultUnit { get; set; } = DurationUnit.Second; + /// /// Get default string representation of value and unit. /// /// String representation. public override string ToString() { - return ToString(DurationUnit.Second); + return ToString(ToStringDefaultUnit); } /// diff --git a/UnitsNet/GeneratedCode/UnitClasses/ElectricCurrent.g.cs b/UnitsNet/GeneratedCode/UnitClasses/ElectricCurrent.g.cs index f7125fafa8..b27d9ed508 100644 --- a/UnitsNet/GeneratedCode/UnitClasses/ElectricCurrent.g.cs +++ b/UnitsNet/GeneratedCode/UnitClasses/ElectricCurrent.g.cs @@ -453,13 +453,18 @@ public static ElectricCurrentUnit ParseUnit(string str, IFormatProvider formatPr #endregion + /// + /// Set the default unit used by ToString(). Default is Ampere + /// + public static ElectricCurrentUnit ToStringDefaultUnit { get; set; } = ElectricCurrentUnit.Ampere; + /// /// Get default string representation of value and unit. /// /// String representation. public override string ToString() { - return ToString(ElectricCurrentUnit.Ampere); + return ToString(ToStringDefaultUnit); } /// diff --git a/UnitsNet/GeneratedCode/UnitClasses/ElectricPotential.g.cs b/UnitsNet/GeneratedCode/UnitClasses/ElectricPotential.g.cs index a722ba2583..2697432f2b 100644 --- a/UnitsNet/GeneratedCode/UnitClasses/ElectricPotential.g.cs +++ b/UnitsNet/GeneratedCode/UnitClasses/ElectricPotential.g.cs @@ -433,13 +433,18 @@ public static ElectricPotentialUnit ParseUnit(string str, IFormatProvider format #endregion + /// + /// Set the default unit used by ToString(). Default is Volt + /// + public static ElectricPotentialUnit ToStringDefaultUnit { get; set; } = ElectricPotentialUnit.Volt; + /// /// Get default string representation of value and unit. /// /// String representation. public override string ToString() { - return ToString(ElectricPotentialUnit.Volt); + return ToString(ToStringDefaultUnit); } /// diff --git a/UnitsNet/GeneratedCode/UnitClasses/ElectricResistance.g.cs b/UnitsNet/GeneratedCode/UnitClasses/ElectricResistance.g.cs index ea491f99d8..c7f4dbb522 100644 --- a/UnitsNet/GeneratedCode/UnitClasses/ElectricResistance.g.cs +++ b/UnitsNet/GeneratedCode/UnitClasses/ElectricResistance.g.cs @@ -393,13 +393,18 @@ public static ElectricResistanceUnit ParseUnit(string str, IFormatProvider forma #endregion + /// + /// Set the default unit used by ToString(). Default is Ohm + /// + public static ElectricResistanceUnit ToStringDefaultUnit { get; set; } = ElectricResistanceUnit.Ohm; + /// /// Get default string representation of value and unit. /// /// String representation. public override string ToString() { - return ToString(ElectricResistanceUnit.Ohm); + return ToString(ToStringDefaultUnit); } /// diff --git a/UnitsNet/GeneratedCode/UnitClasses/Energy.g.cs b/UnitsNet/GeneratedCode/UnitClasses/Energy.g.cs index c8ae39b475..91d0404698 100644 --- a/UnitsNet/GeneratedCode/UnitClasses/Energy.g.cs +++ b/UnitsNet/GeneratedCode/UnitClasses/Energy.g.cs @@ -593,13 +593,18 @@ public static EnergyUnit ParseUnit(string str, IFormatProvider formatProvider = #endregion + /// + /// Set the default unit used by ToString(). Default is Joule + /// + public static EnergyUnit ToStringDefaultUnit { get; set; } = EnergyUnit.Joule; + /// /// Get default string representation of value and unit. /// /// String representation. public override string ToString() { - return ToString(EnergyUnit.Joule); + return ToString(ToStringDefaultUnit); } /// diff --git a/UnitsNet/GeneratedCode/UnitClasses/Flow.g.cs b/UnitsNet/GeneratedCode/UnitClasses/Flow.g.cs index 42b467469c..fa590a1243 100644 --- a/UnitsNet/GeneratedCode/UnitClasses/Flow.g.cs +++ b/UnitsNet/GeneratedCode/UnitClasses/Flow.g.cs @@ -453,13 +453,18 @@ public static FlowUnit ParseUnit(string str, IFormatProvider formatProvider = nu #endregion + /// + /// Set the default unit used by ToString(). Default is CubicMeterPerSecond + /// + public static FlowUnit ToStringDefaultUnit { get; set; } = FlowUnit.CubicMeterPerSecond; + /// /// Get default string representation of value and unit. /// /// String representation. public override string ToString() { - return ToString(FlowUnit.CubicMeterPerSecond); + return ToString(ToStringDefaultUnit); } /// diff --git a/UnitsNet/GeneratedCode/UnitClasses/Force.g.cs b/UnitsNet/GeneratedCode/UnitClasses/Force.g.cs index 5c2c200dd4..4e84c3aaf2 100644 --- a/UnitsNet/GeneratedCode/UnitClasses/Force.g.cs +++ b/UnitsNet/GeneratedCode/UnitClasses/Force.g.cs @@ -493,13 +493,18 @@ public static ForceUnit ParseUnit(string str, IFormatProvider formatProvider = n #endregion + /// + /// Set the default unit used by ToString(). Default is Newton + /// + public static ForceUnit ToStringDefaultUnit { get; set; } = ForceUnit.Newton; + /// /// Get default string representation of value and unit. /// /// String representation. public override string ToString() { - return ToString(ForceUnit.Newton); + return ToString(ToStringDefaultUnit); } /// diff --git a/UnitsNet/GeneratedCode/UnitClasses/ForceChangeRate.g.cs b/UnitsNet/GeneratedCode/UnitClasses/ForceChangeRate.g.cs index 1aea4c3271..3f7d44cb17 100644 --- a/UnitsNet/GeneratedCode/UnitClasses/ForceChangeRate.g.cs +++ b/UnitsNet/GeneratedCode/UnitClasses/ForceChangeRate.g.cs @@ -353,13 +353,18 @@ public static ForceChangeRateUnit ParseUnit(string str, IFormatProvider formatPr #endregion + /// + /// Set the default unit used by ToString(). Default is NewtonPerSecond + /// + public static ForceChangeRateUnit ToStringDefaultUnit { get; set; } = ForceChangeRateUnit.NewtonPerSecond; + /// /// Get default string representation of value and unit. /// /// String representation. public override string ToString() { - return ToString(ForceChangeRateUnit.NewtonPerSecond); + return ToString(ToStringDefaultUnit); } /// diff --git a/UnitsNet/GeneratedCode/UnitClasses/Frequency.g.cs b/UnitsNet/GeneratedCode/UnitClasses/Frequency.g.cs index 537dda7d9e..4110be7e44 100644 --- a/UnitsNet/GeneratedCode/UnitClasses/Frequency.g.cs +++ b/UnitsNet/GeneratedCode/UnitClasses/Frequency.g.cs @@ -493,13 +493,18 @@ public static FrequencyUnit ParseUnit(string str, IFormatProvider formatProvider #endregion + /// + /// Set the default unit used by ToString(). Default is Hertz + /// + public static FrequencyUnit ToStringDefaultUnit { get; set; } = FrequencyUnit.Hertz; + /// /// Get default string representation of value and unit. /// /// String representation. public override string ToString() { - return ToString(FrequencyUnit.Hertz); + return ToString(ToStringDefaultUnit); } /// diff --git a/UnitsNet/GeneratedCode/UnitClasses/Information.g.cs b/UnitsNet/GeneratedCode/UnitClasses/Information.g.cs index dc0def7001..dca8726316 100644 --- a/UnitsNet/GeneratedCode/UnitClasses/Information.g.cs +++ b/UnitsNet/GeneratedCode/UnitClasses/Information.g.cs @@ -853,13 +853,18 @@ public static InformationUnit ParseUnit(string str, IFormatProvider formatProvid #endregion + /// + /// Set the default unit used by ToString(). Default is Bit + /// + public static InformationUnit ToStringDefaultUnit { get; set; } = InformationUnit.Bit; + /// /// Get default string representation of value and unit. /// /// String representation. public override string ToString() { - return ToString(InformationUnit.Bit); + return ToString(ToStringDefaultUnit); } /// diff --git a/UnitsNet/GeneratedCode/UnitClasses/KinematicViscosity.g.cs b/UnitsNet/GeneratedCode/UnitClasses/KinematicViscosity.g.cs index 26d841a987..1f797d8697 100644 --- a/UnitsNet/GeneratedCode/UnitClasses/KinematicViscosity.g.cs +++ b/UnitsNet/GeneratedCode/UnitClasses/KinematicViscosity.g.cs @@ -493,13 +493,18 @@ public static KinematicViscosityUnit ParseUnit(string str, IFormatProvider forma #endregion + /// + /// Set the default unit used by ToString(). Default is SquareMeterPerSecond + /// + public static KinematicViscosityUnit ToStringDefaultUnit { get; set; } = KinematicViscosityUnit.SquareMeterPerSecond; + /// /// Get default string representation of value and unit. /// /// String representation. public override string ToString() { - return ToString(KinematicViscosityUnit.SquareMeterPerSecond); + return ToString(ToStringDefaultUnit); } /// diff --git a/UnitsNet/GeneratedCode/UnitClasses/Length.g.cs b/UnitsNet/GeneratedCode/UnitClasses/Length.g.cs index 7846ba599f..04b1c8f347 100644 --- a/UnitsNet/GeneratedCode/UnitClasses/Length.g.cs +++ b/UnitsNet/GeneratedCode/UnitClasses/Length.g.cs @@ -613,13 +613,18 @@ public static LengthUnit ParseUnit(string str, IFormatProvider formatProvider = #endregion + /// + /// Set the default unit used by ToString(). Default is Meter + /// + public static LengthUnit ToStringDefaultUnit { get; set; } = LengthUnit.Meter; + /// /// Get default string representation of value and unit. /// /// String representation. public override string ToString() { - return ToString(LengthUnit.Meter); + return ToString(ToStringDefaultUnit); } /// diff --git a/UnitsNet/GeneratedCode/UnitClasses/Level.g.cs b/UnitsNet/GeneratedCode/UnitClasses/Level.g.cs index de8f5d6018..7138756d94 100644 --- a/UnitsNet/GeneratedCode/UnitClasses/Level.g.cs +++ b/UnitsNet/GeneratedCode/UnitClasses/Level.g.cs @@ -381,13 +381,18 @@ public static LevelUnit ParseUnit(string str, IFormatProvider formatProvider = n #endregion + /// + /// Set the default unit used by ToString(). Default is Decibel + /// + public static LevelUnit ToStringDefaultUnit { get; set; } = LevelUnit.Decibel; + /// /// Get default string representation of value and unit. /// /// String representation. public override string ToString() { - return ToString(LevelUnit.Decibel); + return ToString(ToStringDefaultUnit); } /// diff --git a/UnitsNet/GeneratedCode/UnitClasses/Mass.g.cs b/UnitsNet/GeneratedCode/UnitClasses/Mass.g.cs index 6c649b8c52..f224a1d60a 100644 --- a/UnitsNet/GeneratedCode/UnitClasses/Mass.g.cs +++ b/UnitsNet/GeneratedCode/UnitClasses/Mass.g.cs @@ -673,13 +673,18 @@ public static MassUnit ParseUnit(string str, IFormatProvider formatProvider = nu #endregion + /// + /// Set the default unit used by ToString(). Default is Kilogram + /// + public static MassUnit ToStringDefaultUnit { get; set; } = MassUnit.Kilogram; + /// /// Get default string representation of value and unit. /// /// String representation. public override string ToString() { - return ToString(MassUnit.Kilogram); + return ToString(ToStringDefaultUnit); } /// diff --git a/UnitsNet/GeneratedCode/UnitClasses/MassFlow.g.cs b/UnitsNet/GeneratedCode/UnitClasses/MassFlow.g.cs index 2d0faf105e..79ea970d28 100644 --- a/UnitsNet/GeneratedCode/UnitClasses/MassFlow.g.cs +++ b/UnitsNet/GeneratedCode/UnitClasses/MassFlow.g.cs @@ -533,13 +533,18 @@ public static MassFlowUnit ParseUnit(string str, IFormatProvider formatProvider #endregion + /// + /// Set the default unit used by ToString(). Default is GramPerSecond + /// + public static MassFlowUnit ToStringDefaultUnit { get; set; } = MassFlowUnit.GramPerSecond; + /// /// Get default string representation of value and unit. /// /// String representation. public override string ToString() { - return ToString(MassFlowUnit.GramPerSecond); + return ToString(ToStringDefaultUnit); } /// diff --git a/UnitsNet/GeneratedCode/UnitClasses/Power.g.cs b/UnitsNet/GeneratedCode/UnitClasses/Power.g.cs index 8c88158567..a23d1db5f2 100644 --- a/UnitsNet/GeneratedCode/UnitClasses/Power.g.cs +++ b/UnitsNet/GeneratedCode/UnitClasses/Power.g.cs @@ -653,13 +653,18 @@ public static PowerUnit ParseUnit(string str, IFormatProvider formatProvider = n #endregion + /// + /// Set the default unit used by ToString(). Default is Watt + /// + public static PowerUnit ToStringDefaultUnit { get; set; } = PowerUnit.Watt; + /// /// Get default string representation of value and unit. /// /// String representation. public override string ToString() { - return ToString(PowerUnit.Watt); + return ToString(ToStringDefaultUnit); } /// diff --git a/UnitsNet/GeneratedCode/UnitClasses/PowerRatio.g.cs b/UnitsNet/GeneratedCode/UnitClasses/PowerRatio.g.cs index 607ee46d94..e74ad6ff08 100644 --- a/UnitsNet/GeneratedCode/UnitClasses/PowerRatio.g.cs +++ b/UnitsNet/GeneratedCode/UnitClasses/PowerRatio.g.cs @@ -381,13 +381,18 @@ public static PowerRatioUnit ParseUnit(string str, IFormatProvider formatProvide #endregion + /// + /// Set the default unit used by ToString(). Default is DecibelWatt + /// + public static PowerRatioUnit ToStringDefaultUnit { get; set; } = PowerRatioUnit.DecibelWatt; + /// /// Get default string representation of value and unit. /// /// String representation. public override string ToString() { - return ToString(PowerRatioUnit.DecibelWatt); + return ToString(ToStringDefaultUnit); } /// diff --git a/UnitsNet/GeneratedCode/UnitClasses/Pressure.g.cs b/UnitsNet/GeneratedCode/UnitClasses/Pressure.g.cs index 1d6531cd75..88057cb0e3 100644 --- a/UnitsNet/GeneratedCode/UnitClasses/Pressure.g.cs +++ b/UnitsNet/GeneratedCode/UnitClasses/Pressure.g.cs @@ -993,13 +993,18 @@ public static PressureUnit ParseUnit(string str, IFormatProvider formatProvider #endregion + /// + /// Set the default unit used by ToString(). Default is Pascal + /// + public static PressureUnit ToStringDefaultUnit { get; set; } = PressureUnit.Pascal; + /// /// Get default string representation of value and unit. /// /// String representation. public override string ToString() { - return ToString(PressureUnit.Pascal); + return ToString(ToStringDefaultUnit); } /// diff --git a/UnitsNet/GeneratedCode/UnitClasses/PressureChangeRate.g.cs b/UnitsNet/GeneratedCode/UnitClasses/PressureChangeRate.g.cs index ab502194ae..13cc2bde4a 100644 --- a/UnitsNet/GeneratedCode/UnitClasses/PressureChangeRate.g.cs +++ b/UnitsNet/GeneratedCode/UnitClasses/PressureChangeRate.g.cs @@ -413,13 +413,18 @@ public static PressureChangeRateUnit ParseUnit(string str, IFormatProvider forma #endregion + /// + /// Set the default unit used by ToString(). Default is PascalPerSecond + /// + public static PressureChangeRateUnit ToStringDefaultUnit { get; set; } = PressureChangeRateUnit.PascalPerSecond; + /// /// Get default string representation of value and unit. /// /// String representation. public override string ToString() { - return ToString(PressureChangeRateUnit.PascalPerSecond); + return ToString(ToStringDefaultUnit); } /// diff --git a/UnitsNet/GeneratedCode/UnitClasses/Ratio.g.cs b/UnitsNet/GeneratedCode/UnitClasses/Ratio.g.cs index d981186fee..00db256403 100644 --- a/UnitsNet/GeneratedCode/UnitClasses/Ratio.g.cs +++ b/UnitsNet/GeneratedCode/UnitClasses/Ratio.g.cs @@ -453,13 +453,18 @@ public static RatioUnit ParseUnit(string str, IFormatProvider formatProvider = n #endregion + /// + /// Set the default unit used by ToString(). Default is DecimalFraction + /// + public static RatioUnit ToStringDefaultUnit { get; set; } = RatioUnit.DecimalFraction; + /// /// Get default string representation of value and unit. /// /// String representation. public override string ToString() { - return ToString(RatioUnit.DecimalFraction); + return ToString(ToStringDefaultUnit); } /// diff --git a/UnitsNet/GeneratedCode/UnitClasses/RotationalSpeed.g.cs b/UnitsNet/GeneratedCode/UnitClasses/RotationalSpeed.g.cs index 7a06a8b558..f818695f20 100644 --- a/UnitsNet/GeneratedCode/UnitClasses/RotationalSpeed.g.cs +++ b/UnitsNet/GeneratedCode/UnitClasses/RotationalSpeed.g.cs @@ -493,13 +493,18 @@ public static RotationalSpeedUnit ParseUnit(string str, IFormatProvider formatPr #endregion + /// + /// Set the default unit used by ToString(). Default is RadianPerSecond + /// + public static RotationalSpeedUnit ToStringDefaultUnit { get; set; } = RotationalSpeedUnit.RadianPerSecond; + /// /// Get default string representation of value and unit. /// /// String representation. public override string ToString() { - return ToString(RotationalSpeedUnit.RadianPerSecond); + return ToString(ToStringDefaultUnit); } /// diff --git a/UnitsNet/GeneratedCode/UnitClasses/SpecificEnergy.g.cs b/UnitsNet/GeneratedCode/UnitClasses/SpecificEnergy.g.cs index 39099ca08d..1c28a48375 100644 --- a/UnitsNet/GeneratedCode/UnitClasses/SpecificEnergy.g.cs +++ b/UnitsNet/GeneratedCode/UnitClasses/SpecificEnergy.g.cs @@ -493,13 +493,18 @@ public static SpecificEnergyUnit ParseUnit(string str, IFormatProvider formatPro #endregion + /// + /// Set the default unit used by ToString(). Default is JoulePerKilogram + /// + public static SpecificEnergyUnit ToStringDefaultUnit { get; set; } = SpecificEnergyUnit.JoulePerKilogram; + /// /// Get default string representation of value and unit. /// /// String representation. public override string ToString() { - return ToString(SpecificEnergyUnit.JoulePerKilogram); + return ToString(ToStringDefaultUnit); } /// diff --git a/UnitsNet/GeneratedCode/UnitClasses/SpecificWeight.g.cs b/UnitsNet/GeneratedCode/UnitClasses/SpecificWeight.g.cs index 9c3420821c..77901424d9 100644 --- a/UnitsNet/GeneratedCode/UnitClasses/SpecificWeight.g.cs +++ b/UnitsNet/GeneratedCode/UnitClasses/SpecificWeight.g.cs @@ -653,13 +653,18 @@ public static SpecificWeightUnit ParseUnit(string str, IFormatProvider formatPro #endregion + /// + /// Set the default unit used by ToString(). Default is NewtonPerCubicMeter + /// + public static SpecificWeightUnit ToStringDefaultUnit { get; set; } = SpecificWeightUnit.NewtonPerCubicMeter; + /// /// Get default string representation of value and unit. /// /// String representation. public override string ToString() { - return ToString(SpecificWeightUnit.NewtonPerCubicMeter); + return ToString(ToStringDefaultUnit); } /// diff --git a/UnitsNet/GeneratedCode/UnitClasses/Speed.g.cs b/UnitsNet/GeneratedCode/UnitClasses/Speed.g.cs index b26772f673..989ae5eaba 100644 --- a/UnitsNet/GeneratedCode/UnitClasses/Speed.g.cs +++ b/UnitsNet/GeneratedCode/UnitClasses/Speed.g.cs @@ -573,13 +573,18 @@ public static SpeedUnit ParseUnit(string str, IFormatProvider formatProvider = n #endregion + /// + /// Set the default unit used by ToString(). Default is MeterPerSecond + /// + public static SpeedUnit ToStringDefaultUnit { get; set; } = SpeedUnit.MeterPerSecond; + /// /// Get default string representation of value and unit. /// /// String representation. public override string ToString() { - return ToString(SpeedUnit.MeterPerSecond); + return ToString(ToStringDefaultUnit); } /// diff --git a/UnitsNet/GeneratedCode/UnitClasses/Temperature.g.cs b/UnitsNet/GeneratedCode/UnitClasses/Temperature.g.cs index c6cdbfebee..c6e437c5b4 100644 --- a/UnitsNet/GeneratedCode/UnitClasses/Temperature.g.cs +++ b/UnitsNet/GeneratedCode/UnitClasses/Temperature.g.cs @@ -493,13 +493,18 @@ public static TemperatureUnit ParseUnit(string str, IFormatProvider formatProvid #endregion + /// + /// Set the default unit used by ToString(). Default is Kelvin + /// + public static TemperatureUnit ToStringDefaultUnit { get; set; } = TemperatureUnit.Kelvin; + /// /// Get default string representation of value and unit. /// /// String representation. public override string ToString() { - return ToString(TemperatureUnit.Kelvin); + return ToString(ToStringDefaultUnit); } /// diff --git a/UnitsNet/GeneratedCode/UnitClasses/TemperatureChangeRate.g.cs b/UnitsNet/GeneratedCode/UnitClasses/TemperatureChangeRate.g.cs index cdbbc6777d..798bd9bc70 100644 --- a/UnitsNet/GeneratedCode/UnitClasses/TemperatureChangeRate.g.cs +++ b/UnitsNet/GeneratedCode/UnitClasses/TemperatureChangeRate.g.cs @@ -513,13 +513,18 @@ public static TemperatureChangeRateUnit ParseUnit(string str, IFormatProvider fo #endregion + /// + /// Set the default unit used by ToString(). Default is DegreeCelsiusPerSecond + /// + public static TemperatureChangeRateUnit ToStringDefaultUnit { get; set; } = TemperatureChangeRateUnit.DegreeCelsiusPerSecond; + /// /// Get default string representation of value and unit. /// /// String representation. public override string ToString() { - return ToString(TemperatureChangeRateUnit.DegreeCelsiusPerSecond); + return ToString(ToStringDefaultUnit); } /// diff --git a/UnitsNet/GeneratedCode/UnitClasses/Torque.g.cs b/UnitsNet/GeneratedCode/UnitClasses/Torque.g.cs index 9db32f4dac..63a0344b56 100644 --- a/UnitsNet/GeneratedCode/UnitClasses/Torque.g.cs +++ b/UnitsNet/GeneratedCode/UnitClasses/Torque.g.cs @@ -653,13 +653,18 @@ public static TorqueUnit ParseUnit(string str, IFormatProvider formatProvider = #endregion + /// + /// Set the default unit used by ToString(). Default is NewtonMeter + /// + public static TorqueUnit ToStringDefaultUnit { get; set; } = TorqueUnit.NewtonMeter; + /// /// Get default string representation of value and unit. /// /// String representation. public override string ToString() { - return ToString(TorqueUnit.NewtonMeter); + return ToString(ToStringDefaultUnit); } /// diff --git a/UnitsNet/GeneratedCode/UnitClasses/VitaminA.g.cs b/UnitsNet/GeneratedCode/UnitClasses/VitaminA.g.cs index 9fd638199d..6521795793 100644 --- a/UnitsNet/GeneratedCode/UnitClasses/VitaminA.g.cs +++ b/UnitsNet/GeneratedCode/UnitClasses/VitaminA.g.cs @@ -353,13 +353,18 @@ public static VitaminAUnit ParseUnit(string str, IFormatProvider formatProvider #endregion + /// + /// Set the default unit used by ToString(). Default is InternationalUnit + /// + public static VitaminAUnit ToStringDefaultUnit { get; set; } = VitaminAUnit.InternationalUnit; + /// /// Get default string representation of value and unit. /// /// String representation. public override string ToString() { - return ToString(VitaminAUnit.InternationalUnit); + return ToString(ToStringDefaultUnit); } /// diff --git a/UnitsNet/GeneratedCode/UnitClasses/Volume.g.cs b/UnitsNet/GeneratedCode/UnitClasses/Volume.g.cs index 53d824909f..335c8af90c 100644 --- a/UnitsNet/GeneratedCode/UnitClasses/Volume.g.cs +++ b/UnitsNet/GeneratedCode/UnitClasses/Volume.g.cs @@ -110,6 +110,14 @@ public double CubicMeters get { return _cubicMeters; } } + /// + /// Get Volume in CubicMicrometers. + /// + public double CubicMicrometers + { + get { return _cubicMeters*1e18; } + } + /// /// Get Volume in CubicMiles. /// @@ -303,6 +311,14 @@ public static Volume FromCubicMeters(double cubicmeters) return new Volume(cubicmeters); } + /// + /// Get Volume from CubicMicrometers. + /// + public static Volume FromCubicMicrometers(double cubicmicrometers) + { + return new Volume(cubicmicrometers/1e18); + } + /// /// Get Volume from CubicMiles. /// @@ -456,6 +472,8 @@ public static Volume From(double value, VolumeUnit fromUnit) return FromCubicKilometers(value); case VolumeUnit.CubicMeter: return FromCubicMeters(value); + case VolumeUnit.CubicMicrometer: + return FromCubicMicrometers(value); case VolumeUnit.CubicMile: return FromCubicMiles(value); case VolumeUnit.CubicMillimeter: @@ -635,6 +653,8 @@ public double As(VolumeUnit unit) return CubicKilometers; case VolumeUnit.CubicMeter: return CubicMeters; + case VolumeUnit.CubicMicrometer: + return CubicMicrometers; case VolumeUnit.CubicMile: return CubicMiles; case VolumeUnit.CubicMillimeter: @@ -793,13 +813,18 @@ public static VolumeUnit ParseUnit(string str, IFormatProvider formatProvider = #endregion + /// + /// Set the default unit used by ToString(). Default is CubicMeter + /// + public static VolumeUnit ToStringDefaultUnit { get; set; } = VolumeUnit.CubicMeter; + /// /// Get default string representation of value and unit. /// /// String representation. public override string ToString() { - return ToString(VolumeUnit.CubicMeter); + return ToString(ToStringDefaultUnit); } /// diff --git a/UnitsNet/GeneratedCode/UnitSystem.Default.g.cs b/UnitsNet/GeneratedCode/UnitSystem.Default.g.cs index 34f44e565c..36d0f6fe45 100644 --- a/UnitsNet/GeneratedCode/UnitSystem.Default.g.cs +++ b/UnitsNet/GeneratedCode/UnitSystem.Default.g.cs @@ -1911,6 +1911,12 @@ private static readonly ReadOnlyCollection DefaultLocalization new AbbreviationsForCulture("en-US", "m³"), new AbbreviationsForCulture("ru-RU", "м³"), }), + new CulturesForEnumValue((int) VolumeUnit.CubicMicrometer, + new[] + { + new AbbreviationsForCulture("en-US", "µm³"), + new AbbreviationsForCulture("ru-RU", "мкм³"), + }), new CulturesForEnumValue((int) VolumeUnit.CubicMile, new[] { diff --git a/UnitsNet/Scripts/Include-GenerateUnitClassSourceCode.ps1 b/UnitsNet/Scripts/Include-GenerateUnitClassSourceCode.ps1 index 211c3dece8..3e0bfb2d69 100644 --- a/UnitsNet/Scripts/Include-GenerateUnitClassSourceCode.ps1 +++ b/UnitsNet/Scripts/Include-GenerateUnitClassSourceCode.ps1 @@ -386,13 +386,18 @@ namespace UnitsNet #endregion + /// + /// Set the default unit used by ToString(). Default is $baseUnitSingularName + /// + public static $unitEnumName ToStringDefaultUnit { get; set; } = $unitEnumName.$baseUnitSingularName; + /// /// Get default string representation of value and unit. /// /// String representation. public override string ToString() { - return ToString($unitEnumName.$baseUnitSingularName); + return ToString(ToStringDefaultUnit); } /// diff --git a/UnitsNet/Scripts/Include-GenerateUnitTestBaseClassSourceCode.ps1 b/UnitsNet/Scripts/Include-GenerateUnitTestBaseClassSourceCode.ps1 index 4d707f64df..3eadcdfb21 100644 --- a/UnitsNet/Scripts/Include-GenerateUnitTestBaseClassSourceCode.ps1 +++ b/UnitsNet/Scripts/Include-GenerateUnitTestBaseClassSourceCode.ps1 @@ -197,4 +197,4 @@ namespace UnitsNet.Tests } } "@; -} \ No newline at end of file +} diff --git a/UnitsNet/Scripts/UnitDefinitions/Volume.json b/UnitsNet/Scripts/UnitDefinitions/Volume.json index 2f191efcb9..f1a49ec419 100644 --- a/UnitsNet/Scripts/UnitDefinitions/Volume.json +++ b/UnitsNet/Scripts/UnitDefinitions/Volume.json @@ -101,6 +101,22 @@ } ] }, + { + "SingularName": "CubicMicrometer", + "PluralName": "CubicMicrometers", + "FromUnitToBaseFunc": "x/1e18", + "FromBaseToUnitFunc": "x*1e18", + "Localization": [ + { + "Culture": "en-US", + "Abbreviations": ["µm³"] + }, + { + "Culture": "ru-RU", + "Abbreviations": ["мкм³"] + } + ] + }, { "SingularName": "CubicMile", "PluralName": "CubicMiles", @@ -287,10 +303,10 @@ "FromUnitToBaseFunc": "x*0.0002365882365", "FromBaseToUnitFunc": "x/0.0002365882365", "Localization": [ - { - "Culture": "en-US", - "Abbreviations": [] - } + { + "Culture": "en-US", + "Abbreviations": [ ] + } ] }, {