Skip to content

Removing unit conversion from ToString methods. ToUnit must be called… #546

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
Nov 3, 2018
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 6 additions & 6 deletions UnitsNet.Tests/CustomCode/TemperatureTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ public void DividedByTemperatureDeltaEqualsTemperature(TemperatureUnit unit, int
// Act
Temperature resultTemp = temperature.Divide(divisor, unit);

string actual = resultTemp.ToString(unit, CultureInfo.InvariantCulture, "{0:0} {1}");
string actual = resultTemp.ToUnit(unit).ToString(CultureInfo.InvariantCulture, "{0:0} {1}");
Assert.Equal(expected, actual);
}

Expand All @@ -81,7 +81,7 @@ public void MultiplyByTemperatureDeltaEqualsTemperature(TemperatureUnit unit, in
// Act
Temperature resultTemp = temperature.Multiply(factor, unit);

string actual = resultTemp.ToString(unit, CultureInfo.InvariantCulture, "{0:0} {1}");
string actual = resultTemp.ToUnit(unit).ToString(CultureInfo.InvariantCulture, "{0:0} {1}");
Assert.Equal(expected, actual);
}

Expand All @@ -100,7 +100,7 @@ public void TemperatureDeltaPlusTemperatureEqualsTemperature(TemperatureUnit uni
// Act
Temperature resultTemp = delta + temperature;

string actual = resultTemp.ToString(unit, CultureInfo.InvariantCulture, "{0:0} {1}");
string actual = resultTemp.ToUnit(unit).ToString(CultureInfo.InvariantCulture, "{0:0} {1}");
Assert.Equal(expected, actual);
}

Expand All @@ -119,7 +119,7 @@ public void TemperatureMinusTemperatureDeltaEqualsTemperature(TemperatureUnit un
// Act
Temperature resultTemp = temperature - delta;

string actual = resultTemp.ToString(unit, CultureInfo.InvariantCulture, "{0:0} {1}");
string actual = resultTemp.ToUnit(unit).ToString(CultureInfo.InvariantCulture, "{0:0} {1}");
Assert.Equal(expected, actual);
}

Expand All @@ -138,8 +138,8 @@ public void TemperaturePlusTemperatureDeltaEqualsTemperature(TemperatureUnit uni
// Act
Temperature resultTemp = temperature + delta;

string actual = resultTemp.ToString(unit, CultureInfo.InvariantCulture, "{0:0} {1}");
string actual = resultTemp.ToUnit(unit).ToString(CultureInfo.InvariantCulture, "{0:0} {1}");
Assert.Equal(expected, actual);
}
}
}
}
20 changes: 10 additions & 10 deletions UnitsNet.Tests/QuantityTests.ToString.cs
Original file line number Diff line number Diff line change
Expand Up @@ -106,10 +106,10 @@ public void ConvertsToTheGivenUnit()
try
{
GlobalConfiguration.DefaultCulture = CultureInfo.InvariantCulture;
Assert.Equal("5,000 g", Mass.FromKilograms(5).ToString(MassUnit.Gram));
Assert.Equal("5 kg", Mass.FromGrams(5000).ToString(MassUnit.Kilogram));
Assert.Equal("0.05 m", Length.FromCentimeters(5).ToString(LengthUnit.Meter));
Assert.Equal("1.97 in", Length.FromCentimeters(5).ToString(LengthUnit.Inch));
Assert.Equal("5,000 g", Mass.FromKilograms(5).ToUnit(MassUnit.Gram).ToString());
Assert.Equal("5 kg", Mass.FromGrams(5000).ToUnit(MassUnit.Kilogram).ToString());
Assert.Equal("0.05 m", Length.FromCentimeters(5).ToUnit(LengthUnit.Meter).ToString());
Assert.Equal("1.97 in", Length.FromCentimeters(5).ToUnit(LengthUnit.Inch).ToString());
}
finally
{
Expand All @@ -124,9 +124,9 @@ public void FormatsNumberUsingGivenCulture()
try
{
GlobalConfiguration.DefaultCulture = CultureInfo.InvariantCulture;
Assert.Equal("0.05 m", Length.FromCentimeters(5).ToString(LengthUnit.Meter, null));
Assert.Equal("0.05 m", Length.FromCentimeters(5).ToString(LengthUnit.Meter, CultureInfo.InvariantCulture));
Assert.Equal("0,05 m", Length.FromCentimeters(5).ToString(LengthUnit.Meter, new CultureInfo("nb-NO")));
Assert.Equal("0.05 m", Length.FromCentimeters(5).ToUnit(LengthUnit.Meter).ToString(null));
Assert.Equal("0.05 m", Length.FromCentimeters(5).ToUnit(LengthUnit.Meter).ToString(CultureInfo.InvariantCulture));
Assert.Equal("0,05 m", Length.FromCentimeters(5).ToUnit(LengthUnit.Meter).ToString(new CultureInfo("nb-NO")));
}
finally
{
Expand All @@ -141,9 +141,9 @@ public void FormatsNumberUsingGivenDigitsAfterRadix()
try
{
GlobalConfiguration.DefaultCulture = CultureInfo.InvariantCulture;
Assert.Equal("0.05 m", Length.FromCentimeters(5).ToString(LengthUnit.Meter, null, 4));
Assert.Equal("1.97 in", Length.FromCentimeters(5).ToString(LengthUnit.Inch, null, 2));
Assert.Equal("1.9685 in", Length.FromCentimeters(5).ToString(LengthUnit.Inch, null, 4));
Assert.Equal("0.05 m", Length.FromCentimeters(5).ToUnit(LengthUnit.Meter).ToString(null, 4));
Assert.Equal("1.97 in", Length.FromCentimeters(5).ToUnit(LengthUnit.Inch).ToString(null, 2));
Assert.Equal("1.9685 in", Length.FromCentimeters(5).ToUnit(LengthUnit.Inch).ToString(null, 4));
}
finally
{
Expand Down
72 changes: 36 additions & 36 deletions UnitsNet.Tests/UnitAbbreviationsCacheTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ public UnitAbbreviationsCacheTests(ITestOutputHelper output)
[InlineData(0.115, "0.12 m")]
public void DefaultToStringFormatting(double value, string expected)
{
string actual = Length.FromMeters(value).ToString(LengthUnit.Meter, AmericanCulture);
string actual = Length.FromMeters(value).ToUnit(LengthUnit.Meter).ToString(AmericanCulture);
Assert.Equal(expected, actual);
}

Expand All @@ -77,7 +77,7 @@ private enum CustomUnit
[InlineData("it-IT")]
public void CommaRadixPointCultureFormatting(string culture)
{
Assert.Equal("0,12 m", Length.FromMeters(0.12).ToString(LengthUnit.Meter, GetCulture(culture)));
Assert.Equal("0,12 m", Length.FromMeters(0.12).ToUnit(LengthUnit.Meter).ToString(GetCulture(culture)));
}

// These cultures all use a decimal point for the radix point
Expand All @@ -89,7 +89,7 @@ public void CommaRadixPointCultureFormatting(string culture)
[InlineData("es-MX")]
public void DecimalRadixPointCultureFormatting(string culture)
{
Assert.Equal("0.12 m", Length.FromMeters(0.12).ToString(LengthUnit.Meter, GetCulture(culture)));
Assert.Equal("0.12 m", Length.FromMeters(0.12).ToUnit(LengthUnit.Meter).ToString(GetCulture(culture)));
}

// These cultures all use a comma in digit grouping
Expand All @@ -102,7 +102,7 @@ public void DecimalRadixPointCultureFormatting(string culture)
public void CommaDigitGroupingCultureFormatting(string cultureName)
{
CultureInfo culture = GetCulture(cultureName);
Assert.Equal("1,111 m", Length.FromMeters(1111).ToString(LengthUnit.Meter, culture));
Assert.Equal("1,111 m", Length.FromMeters(1111).ToUnit(LengthUnit.Meter).ToString(culture));

// Feet/Inch and Stone/Pound combinations are only used (customarily) in the US, UK and maybe Ireland - all English speaking countries.
// FeetInches returns a whole number of feet, with the remainder expressed (rounded) in inches. Same for SonePounds.
Expand All @@ -119,7 +119,7 @@ public void CommaDigitGroupingCultureFormatting(string cultureName)
public void SpaceDigitGroupingCultureFormatting(string culture)
{
// Note: the space used in digit groupings is actually a "thin space" Unicode character U+2009
Assert.Equal("1 111 m", Length.FromMeters(1111).ToString(LengthUnit.Meter, GetCulture(culture)));
Assert.Equal("1 111 m", Length.FromMeters(1111).ToUnit(LengthUnit.Meter).ToString(GetCulture(culture)));
}

// These cultures all use a decimal point in digit grouping
Expand All @@ -131,7 +131,7 @@ public void SpaceDigitGroupingCultureFormatting(string culture)
[InlineData("it-IT")]
public void DecimalPointDigitGroupingCultureFormatting(string culture)
{
Assert.Equal("1.111 m", Length.FromMeters(1111).ToString(LengthUnit.Meter, GetCulture(culture)));
Assert.Equal("1.111 m", Length.FromMeters(1111).ToUnit(LengthUnit.Meter).ToString(GetCulture(culture)));
}

[Theory]
Expand All @@ -143,7 +143,7 @@ public void DecimalPointDigitGroupingCultureFormatting(string culture)
[InlineData(6, "1.123457 m")]
public void CustomNumberOfSignificantDigitsAfterRadixFormatting(int significantDigitsAfterRadix, string expected)
{
string actual = Length.FromMeters(1.123456789).ToString(LengthUnit.Meter, AmericanCulture, significantDigitsAfterRadix);
string actual = Length.FromMeters(1.123456789).ToUnit(LengthUnit.Meter).ToString(AmericanCulture, significantDigitsAfterRadix);
Assert.Equal(expected, actual);
}

Expand All @@ -158,7 +158,7 @@ public void CustomNumberOfSignificantDigitsAfterRadixFormatting(int significantD
public void RoundingErrorsWithSignificantDigitsAfterRadixFormatting(double value,
int maxSignificantDigitsAfterRadix, string expected)
{
string actual = Length.FromMeters(value).ToString(LengthUnit.Meter, AmericanCulture, maxSignificantDigitsAfterRadix);
string actual = Length.FromMeters(value).ToUnit(LengthUnit.Meter).ToString(AmericanCulture, maxSignificantDigitsAfterRadix);
Assert.Equal(expected, actual);
}

Expand All @@ -170,7 +170,7 @@ public void RoundingErrorsWithSignificantDigitsAfterRadixFormatting(double value
[InlineData(1.99e-4, "1.99e-04 m")]
public void ScientificNotationLowerInterval(double value, string expected)
{
string actual = Length.FromMeters(value).ToString(LengthUnit.Meter, AmericanCulture);
string actual = Length.FromMeters(value).ToUnit(LengthUnit.Meter).ToString(AmericanCulture);
Assert.Equal(expected, actual);
}

Expand All @@ -181,7 +181,7 @@ public void ScientificNotationLowerInterval(double value, string expected)
[InlineData(999.99, "999.99 m")]
public void FixedPointNotationIntervalFormatting(double value, string expected)
{
string actual = Length.FromMeters(value).ToString(LengthUnit.Meter, AmericanCulture);
string actual = Length.FromMeters(value).ToUnit(LengthUnit.Meter).ToString(AmericanCulture);
Assert.Equal(expected, actual);
}

Expand All @@ -193,7 +193,7 @@ public void FixedPointNotationIntervalFormatting(double value, string expected)
[InlineData(999999.99, "999,999.99 m")]
public void FixedPointNotationWithDigitGroupingIntervalFormatting(double value, string expected)
{
string actual = Length.FromMeters(value).ToString(LengthUnit.Meter, AmericanCulture);
string actual = Length.FromMeters(value).ToUnit(LengthUnit.Meter).ToString(AmericanCulture);
Assert.Equal(expected, actual);
}

Expand All @@ -204,7 +204,7 @@ public void FixedPointNotationWithDigitGroupingIntervalFormatting(double value,
[InlineData(double.MaxValue, "1.8e+308 m")]
public void ScientificNotationUpperIntervalFormatting(double value, string expected)
{
string actual = Length.FromMeters(value).ToString(LengthUnit.Meter, AmericanCulture);
string actual = Length.FromMeters(value).ToUnit(LengthUnit.Meter).ToString(AmericanCulture);
Assert.Equal(expected, actual);
}

Expand All @@ -231,35 +231,35 @@ public void AllUnitsImplementToStringForInvariantCulture()
[Fact]
public void ToString_WithNorwegianCulture()
{
Assert.Equal("1 °", Angle.FromDegrees(1).ToString(AngleUnit.Degree, NorwegianCulture));
Assert.Equal("1 m²", Area.FromSquareMeters(1).ToString(AreaUnit.SquareMeter, NorwegianCulture));
Assert.Equal("1 V", ElectricPotential.FromVolts(1).ToString(ElectricPotentialUnit.Volt, NorwegianCulture));
Assert.Equal("1 m³/s", VolumeFlow.FromCubicMetersPerSecond(1).ToString(VolumeFlowUnit.CubicMeterPerSecond, NorwegianCulture));
Assert.Equal("1 N", Force.FromNewtons(1).ToString(ForceUnit.Newton, NorwegianCulture));
Assert.Equal("1 m", Length.FromMeters(1).ToString(LengthUnit.Meter, NorwegianCulture));
Assert.Equal("1 kg", Mass.FromKilograms(1).ToString(MassUnit.Kilogram, NorwegianCulture));
Assert.Equal("1 Pa", Pressure.FromPascals(1).ToString(PressureUnit.Pascal, NorwegianCulture));
Assert.Equal("1 rad/s", RotationalSpeed.FromRadiansPerSecond(1).ToString(RotationalSpeedUnit.RadianPerSecond, NorwegianCulture));
Assert.Equal("1 K", Temperature.FromKelvins(1).ToString(TemperatureUnit.Kelvin, NorwegianCulture));
Assert.Equal("1 N·m", Torque.FromNewtonMeters(1).ToString(TorqueUnit.NewtonMeter, NorwegianCulture));
Assert.Equal("1 m³", Volume.FromCubicMeters(1).ToString(VolumeUnit.CubicMeter, NorwegianCulture));
Assert.Equal("1 °", Angle.FromDegrees(1).ToUnit(AngleUnit.Degree).ToString(NorwegianCulture));
Assert.Equal("1 m²", Area.FromSquareMeters(1).ToUnit(AreaUnit.SquareMeter).ToString(NorwegianCulture));
Assert.Equal("1 V", ElectricPotential.FromVolts(1).ToUnit(ElectricPotentialUnit.Volt).ToString(NorwegianCulture));
Assert.Equal("1 m³/s", VolumeFlow.FromCubicMetersPerSecond(1).ToUnit(VolumeFlowUnit.CubicMeterPerSecond).ToString(NorwegianCulture));
Assert.Equal("1 N", Force.FromNewtons(1).ToUnit(ForceUnit.Newton).ToString(NorwegianCulture));
Assert.Equal("1 m", Length.FromMeters(1).ToUnit(LengthUnit.Meter).ToString(NorwegianCulture));
Assert.Equal("1 kg", Mass.FromKilograms(1).ToUnit(MassUnit.Kilogram).ToString(NorwegianCulture));
Assert.Equal("1 Pa", Pressure.FromPascals(1).ToUnit(PressureUnit.Pascal).ToString(NorwegianCulture));
Assert.Equal("1 rad/s", RotationalSpeed.FromRadiansPerSecond(1).ToUnit(RotationalSpeedUnit.RadianPerSecond).ToString(NorwegianCulture));
Assert.Equal("1 K", Temperature.FromKelvins(1).ToUnit(TemperatureUnit.Kelvin).ToString(NorwegianCulture));
Assert.Equal("1 N·m", Torque.FromNewtonMeters(1).ToUnit(TorqueUnit.NewtonMeter).ToString(NorwegianCulture));
Assert.Equal("1 m³", Volume.FromCubicMeters(1).ToUnit(VolumeUnit.CubicMeter).ToString(NorwegianCulture));
}

[Fact]
public void ToString_WithRussianCulture()
{
Assert.Equal("1 °", Angle.FromDegrees(1).ToString(AngleUnit.Degree, RussianCulture));
Assert.Equal("1 м²", Area.FromSquareMeters(1).ToString(AreaUnit.SquareMeter, RussianCulture));
Assert.Equal("1 В", ElectricPotential.FromVolts(1).ToString(ElectricPotentialUnit.Volt, RussianCulture));
Assert.Equal("1 м³/с", VolumeFlow.FromCubicMetersPerSecond(1).ToString(VolumeFlowUnit.CubicMeterPerSecond, RussianCulture));
Assert.Equal("1 Н", Force.FromNewtons(1).ToString(ForceUnit.Newton, RussianCulture));
Assert.Equal("1 м", Length.FromMeters(1).ToString(LengthUnit.Meter, RussianCulture));
Assert.Equal("1 кг", Mass.FromKilograms(1).ToString(MassUnit.Kilogram, RussianCulture));
Assert.Equal("1 Па", Pressure.FromPascals(1).ToString(PressureUnit.Pascal, RussianCulture));
Assert.Equal("1 рад/с", RotationalSpeed.FromRadiansPerSecond(1).ToString(RotationalSpeedUnit.RadianPerSecond, RussianCulture));
Assert.Equal("1 K", Temperature.FromKelvins(1).ToString(TemperatureUnit.Kelvin, RussianCulture));
Assert.Equal("1 Н·м", Torque.FromNewtonMeters(1).ToString(TorqueUnit.NewtonMeter, RussianCulture));
Assert.Equal("1 м³", Volume.FromCubicMeters(1).ToString(VolumeUnit.CubicMeter, RussianCulture));
Assert.Equal("1 °", Angle.FromDegrees(1).ToUnit(AngleUnit.Degree).ToString(RussianCulture));
Assert.Equal("1 м²", Area.FromSquareMeters(1).ToUnit(AreaUnit.SquareMeter).ToString(RussianCulture));
Assert.Equal("1 В", ElectricPotential.FromVolts(1).ToUnit(ElectricPotentialUnit.Volt).ToString(RussianCulture));
Assert.Equal("1 м³/с", VolumeFlow.FromCubicMetersPerSecond(1).ToUnit(VolumeFlowUnit.CubicMeterPerSecond).ToString(RussianCulture));
Assert.Equal("1 Н", Force.FromNewtons(1).ToUnit(ForceUnit.Newton).ToString(RussianCulture));
Assert.Equal("1 м", Length.FromMeters(1).ToUnit(LengthUnit.Meter).ToString(RussianCulture));
Assert.Equal("1 кг", Mass.FromKilograms(1).ToUnit(MassUnit.Kilogram).ToString(RussianCulture));
Assert.Equal("1 Па", Pressure.FromPascals(1).ToUnit(PressureUnit.Pascal).ToString(RussianCulture));
Assert.Equal("1 рад/с", RotationalSpeed.FromRadiansPerSecond(1).ToUnit(RotationalSpeedUnit.RadianPerSecond).ToString(RussianCulture));
Assert.Equal("1 K", Temperature.FromKelvins(1).ToUnit(TemperatureUnit.Kelvin).ToString(RussianCulture));
Assert.Equal("1 Н·м", Torque.FromNewtonMeters(1).ToUnit(TorqueUnit.NewtonMeter).ToString(RussianCulture));
Assert.Equal("1 м³", Volume.FromCubicMeters(1).ToUnit(VolumeUnit.CubicMeter).ToString(RussianCulture));
}

[Fact]
Expand Down
Loading