mirror of
https://github.com/microsoft/PowerToys.git
synced 2025-12-16 11:48:06 +01:00
* 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 InputUseEnglishFormatfalseUse English (United States) number format for input Ignores your system setting and expects numbers in the format '1,000.50' OutputUseEnglishFormatfalseUse English (United States) number format for output Ignores your system setting and returns numbers in the format '1000.50' -
The optional plugin settings are implemented via the
ISettingProviderinterface fromWox.Pluginproject. All available settings for the plugin are defined in theMainclass of the plugin.
Technical details
BracketHelper
- This helper validates the bracket usage in the input string.
CalculateHelper
- The
CalculateHelper.csclass 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.csfile using theMageslibrary.
var result = CalculateEngine.Interpret(query.Search, CultureInfo.CurrentUICulture);
CalculateResult
- The class which encapsulates the result of the computation.
- It comprises of the
ResultandRoundedResultproperties.
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.csclass contains tests to validate that brackets are handled correctly.
ExtendedCalculatorParserTests
- The
ExtendedCalculatorParserTests.csclass contains tests to validate that the input is parsed correctly and the result is correct.
NumberTranslatorTests
- The
NumberTranslatorTests.csclass contains tests to validate that each number is converted correctly based on the defined locals.
QueryTests
- The
QueryTests.csclass contains tests to validate that the user gets the correct results when searching.
