[PTRun][UnitConverter]Increase float number precision (#17758)

* [PT Run]  UnitConverter float number precision is not enough
Introduced rounding to significant digits, not to digits after decimal separator
Added conversion to string to fix last digit errors

* [PT Run]  UnitConverter float number precision is not enough
spell check fixes

* [PT Run]  UnitConverter float number precision is not enough
renamed test method to HandleNanometerToKilometer

* [PT Run]  UnitConverter float number precision is not enough
result copied to clipboard will not have unit, just a number
This commit is contained in:
lncubus
2022-04-19 12:20:12 +02:00
committed by GitHub
parent 38c538b0c5
commit da0aac2a18
4 changed files with 103 additions and 4 deletions

View File

@@ -26,6 +26,14 @@ namespace Community.PowerToys.Run.Plugin.UnitConverter.UnitTest
Assert.AreEqual(100, result);
}
[TestMethod]
public void HandleNanometerToKilometer()
{
var convertModel = new ConvertModel(1, "nanometer", "kilometer");
double result = UnitHandler.ConvertInput(convertModel, UnitsNet.QuantityType.Length);
Assert.AreEqual(1E-12, result);
}
[TestMethod]
public void HandlesByteCapitals()
{
@@ -34,6 +42,26 @@ namespace Community.PowerToys.Run.Plugin.UnitConverter.UnitTest
Assert.AreEqual(8, result);
}
[TestMethod]
public void HandlesParsecToNanometer()
{
var convertModel = new ConvertModel(1, "parsec", "nanometer");
var result = UnitHandler.Convert(convertModel).Single();
var str = result.ToString(System.Globalization.CultureInfo.InvariantCulture);
Assert.AreEqual(3.0857000000000004E+25, result.ConvertedValue);
Assert.AreEqual("3.0857e+25 nanometer", str);
}
[TestMethod]
public void HandlesNanometerToParsec()
{
var convertModel = new ConvertModel(1, "nanometer", "parsec");
var result = UnitHandler.Convert(convertModel).Single();
var str = result.ToString(System.Globalization.CultureInfo.InvariantCulture);
Assert.AreEqual(3.2408000000000005E-26, result.ConvertedValue);
Assert.AreEqual("3.2408e-26 parsec", str);
}
[TestMethod]
public void HandleInvalidModel()
{
@@ -41,5 +69,47 @@ namespace Community.PowerToys.Run.Plugin.UnitConverter.UnitTest
var results = UnitHandler.Convert(convertModel);
Assert.AreEqual(0, results.Count());
}
[TestMethod]
public void RoundZero()
{
double result = UnitHandler.Round(0.0);
Assert.AreEqual(0, result);
}
[TestMethod]
public void RoundNormalValue()
{
double result = UnitHandler.Round(3.141592653589793);
Assert.AreEqual(3.1416, result);
}
[TestMethod]
public void RoundSmallValue()
{
double result = UnitHandler.Round(1.23456789012345E-16);
Assert.AreEqual(1.2346E-16, result);
}
[TestMethod]
public void RoundBigValue()
{
double result = UnitHandler.Round(1234567890123456.0);
Assert.AreEqual(1234600000000000.0, result);
}
[TestMethod]
public void RoundNegativeValue()
{
double result = UnitHandler.Round(-3.141592653589793);
Assert.AreEqual(-3.1416, result);
}
[TestMethod]
public void RoundNinesValue()
{
double result = UnitHandler.Round(999999999999.9998);
Assert.AreEqual(1000000000000.0, result);
}
}
}