[PTRun][UnitConverter]Use capital letters in DegreePrefixer (#34845)

* [Run-UnitConverter] Use capital letters in DegreePrefixer

* doc update

* Update tests

* Remove FeetToFt

* trigger checks
This commit is contained in:
PesBandi 2024-09-25 14:59:49 +02:00 коммит произвёл GitHub
Родитель bbad1eb461
Коммит 7c48f5ebd2
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: B5690EEEBB952194
4 изменённых файлов: 14 добавлений и 31 удалений

Просмотреть файл

@ -19,13 +19,13 @@ This plugin uses a package called [UnitsNet](https://github.com/angularsen/Units
- [Temperature](https://github.com/angularsen/UnitsNet/blob/master/UnitsNet/GeneratedCode/Units/TemperatureUnit.g.cs) - [Temperature](https://github.com/angularsen/UnitsNet/blob/master/UnitsNet/GeneratedCode/Units/TemperatureUnit.g.cs)
- [Volume](https://github.com/angularsen/UnitsNet/blob/master/UnitsNet/GeneratedCode/Units/VolumeUnit.g.cs) - [Volume](https://github.com/angularsen/UnitsNet/blob/master/UnitsNet/GeneratedCode/Units/VolumeUnit.g.cs)
These are the ones that are currently enabled (though UnitsNet supports many more). They are defined in [`Main.cs`](/src/modules/launcher/Plugins/Community.PowerToys.Run.UnitConverter/Main.cs). These are the ones that are currently enabled (though UnitsNet supports many more). They are defined in [`UnitHandler.cs`](/src/modules/launcher/Plugins/Community.PowerToys.Run.Plugin.UnitConverter/UnitHandler.cs).
### [`InputInterpreter`](/src/modules/launcher/Plugins/Community.PowerToys.Run.UnitConverter/InputInterpreter.cs) ### [`InputInterpreter`](/src/modules/launcher/Plugins/Community.PowerToys.Run.Plugin.UnitConverter/InputInterpreter.cs)
- Class which manipulates user input such that it may be interpreted correctly and thus converted. - Class which manipulates user input such that it may be interpreted correctly and thus converted.
- Uses a regex amongst other things to do this. - Uses a regex amongst other things to do this.
### [`UnitHandler`](/src/modules/launcher/Plugins/Community.PowerToys.Run.UnitConverter/UnitHandler.cs) ### [`UnitHandler`](/src/modules/launcher/Plugins/Community.PowerToys.Run.Plugin.UnitConverter/UnitHandler.cs)
- Class that does the actual conversion. - Class that does the actual conversion.
- Supports abbreviations in user input (single, double, or none). - Supports abbreviations in user input (single, double, or none).

Просмотреть файл

@ -68,9 +68,9 @@ namespace Community.PowerToys.Run.Plugin.UnitConverter.UnitTest
[DataTestMethod] [DataTestMethod]
[DataRow(new string[] { "5", "CeLsIuS", "in", "faHrenheiT" }, new string[] { "5", "DegreeCelsius", "in", "DegreeFahrenheit" })] [DataRow(new string[] { "5", "CeLsIuS", "in", "faHrenheiT" }, new string[] { "5", "DegreeCelsius", "in", "DegreeFahrenheit" })]
[DataRow(new string[] { "5", "f", "in", "celsius" }, new string[] { "5", f", "in", "DegreeCelsius" })] [DataRow(new string[] { "5", "f", "in", "celsius" }, new string[] { "5", F", "in", "DegreeCelsius" })]
[DataRow(new string[] { "5", "c", "in", "f" }, new string[] { "5", c", "in", "°f" })] [DataRow(new string[] { "5", "c", "in", "f" }, new string[] { "5", C", "in", "°F" })]
[DataRow(new string[] { "5", "f", "in", "c" }, new string[] { "5", f", "in", "°c" })] [DataRow(new string[] { "5", "f", "in", "c" }, new string[] { "5", F", "in", "°C" })]
#pragma warning restore CA1861 // Avoid constant arrays as arguments #pragma warning restore CA1861 // Avoid constant arrays as arguments
public void PrefixesDegrees(string[] input, string[] expectedResult) public void PrefixesDegrees(string[] input, string[] expectedResult)
{ {

Просмотреть файл

@ -92,7 +92,7 @@ namespace Community.PowerToys.Run.Plugin.UnitConverter
if (!isFeet || !isInches) if (!isFeet || !isInches)
{ {
// atleast one could not be parsed correctly // at least one could not be parsed correctly
break; break;
} }
@ -115,7 +115,7 @@ namespace Community.PowerToys.Run.Plugin.UnitConverter
} }
/// <summary> /// <summary>
/// Adds degree prefixes to degree units for shorthand notation. E.g. '10 c in fahrenheit' becomes '10 °c in DegreeFahrenheit'. /// Adds degree prefixes to degree units for shorthand notation. E.g. '10 c in fahrenheit' becomes '10 °C in DegreeFahrenheit'.
/// </summary> /// </summary>
public static void DegreePrefixer(ref string[] split) public static void DegreePrefixer(ref string[] split)
{ {
@ -130,11 +130,11 @@ namespace Community.PowerToys.Run.Plugin.UnitConverter
break; break;
case "c": case "c":
split[1] = c"; split[1] = C";
break; break;
case "f": case "f":
split[1] = f"; split[1] = F";
break; break;
default: default:
@ -152,11 +152,11 @@ namespace Community.PowerToys.Run.Plugin.UnitConverter
break; break;
case "c": case "c":
split[3] = c"; split[3] = C";
break; break;
case "f": case "f":
split[3] = f"; split[3] = F";
break; break;
default: default:
@ -164,22 +164,6 @@ namespace Community.PowerToys.Run.Plugin.UnitConverter
} }
} }
/// <summary>
/// The plural form "feet" is not recognized by UniteNets. Replace it with "ft".
/// </summary>
public static void FeetToFt(ref string[] split)
{
if (string.Equals(split[1], "feet", StringComparison.OrdinalIgnoreCase))
{
split[1] = "ft";
}
if (string.Equals(split[3], "feet", StringComparison.OrdinalIgnoreCase))
{
split[3] = "ft";
}
}
/// <summary> /// <summary>
/// Converts spelling "kph" to "km/h" /// Converts spelling "kph" to "km/h"
/// </summary> /// </summary>
@ -292,7 +276,6 @@ namespace Community.PowerToys.Run.Plugin.UnitConverter
InputInterpreter.DegreePrefixer(ref split); InputInterpreter.DegreePrefixer(ref split);
InputInterpreter.MetreToMeter(ref split); InputInterpreter.MetreToMeter(ref split);
InputInterpreter.FeetToFt(ref split);
InputInterpreter.KPHHandler(ref split); InputInterpreter.KPHHandler(ref split);
InputInterpreter.GallonHandler(ref split, CultureInfo.CurrentCulture); InputInterpreter.GallonHandler(ref split, CultureInfo.CurrentCulture);
InputInterpreter.OunceHandler(ref split, CultureInfo.CurrentCulture); InputInterpreter.OunceHandler(ref split, CultureInfo.CurrentCulture);

Просмотреть файл

@ -11,7 +11,7 @@ namespace Community.PowerToys.Run.Plugin.UnitConverter
{ {
public static class UnitHandler public static class UnitHandler
{ {
private static readonly int _roundingFractionalDigits = 4; private static readonly int _roundingSignificantDigits = 4;
private static readonly QuantityInfo[] _included = new QuantityInfo[] private static readonly QuantityInfo[] _included = new QuantityInfo[]
{ {
@ -72,7 +72,7 @@ namespace Community.PowerToys.Run.Plugin.UnitConverter
var power = Math.Floor(Math.Log10(Math.Abs(value))); var power = Math.Floor(Math.Log10(Math.Abs(value)));
var exponent = Math.Pow(10, power); var exponent = Math.Pow(10, power);
var rounded = Math.Round(value / exponent, _roundingFractionalDigits) * exponent; var rounded = Math.Round(value / exponent, _roundingSignificantDigits) * exponent;
return rounded; return rounded;
} }