mirror of
https://github.com/microsoft/PowerToys.git
synced 2024-12-14 11:39:16 +08:00
465df35d27
* crash fixes and error result * small changes and test fixes * improve exceptions and message * double array crash fix * overflowexception * improve error handling * varous improvements * varous improvements * fix spelling * fix spelling * Revert #16980 * add description * error improvemenet * Update tests * spelling fixes * small changes * add settings * last changes * fix description * update dev docs * spell check
4.4 KiB
4.4 KiB
Calculator Plugin
The Calculator plugin as the name suggests is used to perform calculations on the user entered query.
Optional plugin settings
-
We have the following settings that the user can configure to change the behavior of the plugin:
Key Default value Name Description InputUseEnglishFormat` | false` | se English (United States) number format for input | gnores your system setting and expects numbers in the format '1,000.50' | OutputUseEnglishFormat` | false` | se English (United States) number format for output | gnores your system setting and returns numbers in the format '1000.50' | -
The optional plugin settings are implemented via the
ISettingProvider
interface fromWox.Plugin
project. All available settings for the plugin are defined in theMain
class of the plugin.
Technical details
BracketHelper
- This helper validates the bracket usage in the input string.
CalculateHelper
- The
CalculateHelper.cs
class checks to see if the user entered query is a valid input to the calculator and only if the input is valid does it perform the operation. - It does so by matching the user query to a valid regex.
CalculateEngine
- The main computation is done in the
CalculateEngine.cs
file using theMages
library.
var result = CalculateEngine.Interpret(query.Search, CultureInfo.CurrentUICulture);
CalculateResult
- The class which encapsulates the result of the computation.
- It comprises of the
Result
andRoundedResult
properties.
ErrorHandler
- The class which encapsulates the code to log errors and format the user message.
- It returns an error result if the user searches with the activation command. This error result is shown to the user.
Score
The score of each result from the calculator plugin is 300
.
Unit Tests
We have a Unit Test project that executes various test to ensure that the plugin works as expected.
BracketHelperTests
- The
BracketHelperTests.cs
class contains tests to validate that brackets are handled correctly.
ExtendedCalculatorParserTests
- The
ExtendedCalculatorParserTests.cs
class contains tests to validate that the input is parsed correctly and the result is correct.
NumberTranslatorTests
- The
NumberTranslatorTests.cs
class contains tests to validate that each number is converted correctly based on the defined locals.
QueryTests
- The
QueryTests.cs
class contains tests to validate that the user gets the correct results when searching.