These manual tests are run before every release of the Calculator app.
Test 1 Steps:
- From the Standard Calculator page, input “3”, “+”, “3”, “Enter” on the keyboard *Expected: “6” shows up in the display *
- Input “4”, “-”, “2”, “=” using the in-app buttons Expected: “2” shows up in the display
Test 2 Steps:
- From the Standard Calculator page, input “3”, “+”, “3”, “Enter” on the keyboard
- Navigate to the History pane, and verify that “3 + 3 = 6” shows up in the pane
- Input “MS” using the in-app buttons
- Navigate to the Memory pane Expected: “6” shows up in the pane
Test 1 Steps:
- From the Scientific Calculator page, input “3”, “^”, “3”, “Enter” on the keyboard Expected: “27” shows up in the display
Test 2 Steps:
- Input “5”, “n!”, “=” using the in-app buttons Expected: “120” shows up in the display
Test 1 Steps:
- From the Programmer Calculator page, input “1”, “&”, “0”, “Enter” on the keyboard Expected: “0” shows up in the display
Test 2 Steps:
- Input “15” using the in-app buttons and select “HEX” Expected: “F” shows up in the display and the letters A-F show up as in-app buttons
Converter Usage Steps:
- From the Length Converter page, select “kilometers” as the unit type in the input field and input “5” using the keyboard
- Select “miles” as the unit type in the output field Expected: The output starts with is “3.106856”
Test 1 Steps:
- Launch the "Calculator" app and navigate to "Standard" Calculator Expected: Always-on-Top button's tooltip says "Keep on top"
- Click the Always-on-Top button Expected: Always-on-Top button's tooltip now says "Back to full view"
- Launch the "Notepad" app and put it in full-screen mode Expected: Calculator is still on top of Notepad and in Always-on-Top mode
Test 2 Steps:
- Launch the "Calculator" app and from "Standard" Calculator, input “3”, “+”, “3” (do not press “Enter”)
- Tab over the Always-on-Top button and press "Enter" on the keyboard Expected: The application title, hamburger menu, calculator type title, calculation expression (the secondary line above the main display), history button and memory buttons are no longer visible. The main display shows "3"
- Press “Enter” Expected: The main display shows "6"
- Press "Ctrl-H" on the keyboard Expected: Nothing happens (history keyboard shortcuts are disabled)
- Press "Ctrl-P" on the keyboard, then tab over the Always-on-Top button and press "Enter" on the keyboard again
- Open the Memory panel Expected: Nothing is stored in memory (memory keyboard shortcuts are disabled in Always-on-Top mode) and "6" is in history
Test 3 Steps:
- Launch the "Calculator" app and from "Standard" Calculator, click the Always-on-Top button
- Resize the window horizontally Expected: The buttons automatically expand or shrink to fit the available screen size
- Resize the window vertically Expected: The buttons automatically expand or shrink to fit the available screen size and the percent, square-root, squared and reciprocal buttons disappear when the screen height is small
- Click the Always-on-Top button again Expected: Calculator is in Standard mode and the original window layout from before Step 1 is restored
- Click the Always-on-Top button again Expected: Calculator is in Always-on-Top mode and the window size from after Step 3 is restored
- Close the "Calculator" app
- Launch the "Calculator" app again and click the Always-on-Top button Expected: The window size from right before closing from Always-on-Top mode (ie. after Step 5) is restored
Test 4 Steps:
- Launch the "Calculator" app and from "Standard" Calculator, click the Always-on-Top button
- Input "/", "0", “Enter” on the keyboard Expected: "Result is undefined" is displayed in the system default app language
- Click the Always-on-Top button again *Expected: Calculator is in Standard mode and all operator (except for "CE", "C", "Delete" and "=") and memory buttons are disabled
Test 5 Steps:
- Launch the "Calculator" app and navigate to "Scientific" Calculator Expected: The Always-on-Top button is hidden
- Navigate to "Standard" Calculator Expected: The Always-on-Top button is visible
Launch App Test Steps:
- Press the Windows key.
- Navigate to "all apps".
- Look for "Calculator".
- Click to launch the "Calculator" app. Expected: The calculator app launches gracefully.
All Calculators Test: Verify All Numbers & Input Methods Steps:
- Launch the "Calculator" app.
- Navigate to "Standard" Calculator.
- Mouse Input Expected: All numbers work via mouse click.
- Keyboard Input: Expected: All numbers work via number pad.
- Navigate to "Scientific" Calculator and Repeat Steps 3-5 Expected: Steps 3-5 pass in Scientific mode
- Navigate to "Programmer" Calculator and Repeat Steps 3-5 Expected: Steps 3-5 pass in Programmer mode
All Calculators Test: Verify Basic Arithmetic Functions Steps:
- Launch the "Calculator" app.
- Navigate to "Standard" Calculator.
- Using the Number Pad and Mouse perform the following arithmetic functions and verify the result. a. (+) Addition b. (-) Subtraction c. (x) Multiplication d. (÷) Division e. (1/x) Reciprocal f. (√) Square Root g. (x²) Squared h. (x³) Cubed i. (%) Percent j. (±) Positive / Negative k. (=) Equals l. Delete Button (flag with x in it) m. [CE] Clear n. [C] Global Clear o. (.) Decimal
- Navigate to "Scientific" Calculator and Repeat Steps 3-19.
- Navigate to "Programmer" Calculator and Repeat Steps 3-18 (No Decimal in Programming Calc).
Scientific Calculator Test: Verify advanced arithmetic functions Steps:
- Launch the "Calculator" app.
- Navigate to "Scientific" Calculator.
- Using the Number Pad and Mouse perform the following arithmetic functions and verify the result. a. (xʸ) Xth Power of Y b. (y√x) Y Root of X c. (10ˣ) 10 Power of X d. (ex) E Power of X e. (π) Pi f. (n!) Factorial g. (Ln) Natural Logarithm h. (Log) Logarithm i. (Exp) Exponential j. (dms) Degrees, Minutes, Seconds k. (deg) Degrees l. (Mod) Modulo m. “( )" Parenthesis
All Calculators Test: Verify memory functions Steps:
- Launch the "Calculator" app.
- Navigate to "Standard" Calculator.
- Perform a calculation and press the MS button.
- If small scale, Select the (M) with the drop down arrow Expected: Calculation from previous step is present.
- Click the (M+) Add to Memory. Expected: Previous calculation is added to itself.
- Click the (M-) Subtract from Memory. Expected: Previous calculation is subtracted from the base calculation.
- Click the (MR) Memory Recall. Expected: Previous calculation is made primary (This is not available in the Programmer mode).
- Check the MC button. Expected: The stored information is cleared.
- Navigate to "Scientific" Calculator and Repeat Steps 3-8. Expected: All in "Scientific" mode.
- Navigate to "Programmer" Calculator and Repeat Steps 3-8. Expected: All in "Programmer" mode.
Scientific Calculator Test: Verify trigonometric functions Steps:
- Launch the "Calculator" app.
- Navigate to "Scientific" Calculator.
- Using the Number Pad and Mouse perform the following trigonometric functions and verify the result.
- Sine (sin)
- Cosine (cos)
- Tangent (tan)
- Inverse Sine (sin-1)
- Inverse Cosine (cos-1)
- Inverse Tangent (tan-1) Inverse Tangent:
- Press (HYP) for Hyperbolic trig functions: Expected: Trig function buttons show hyperbolic trig functions.
- Hyperbolic Sine (sinh)
- Hyperbolic Tangent (tanh)
- Hyperbolic Cosine (cosh)
- Inverse Hyperbolic Sine (sinh-1)
- Inverse Hyperbolic Tangent (tanh-1)
- Inverse Hyperbolic Cosine (cosh-1)
Programmer Calculator Test: Verify logical functions Steps:
- Launch the "Calculator" app
- Navigate to "Programmer" Calculator.
- Using the Number Pad and Mouse perform the following trigonometric functions and verify the result.
- Rotate Left (RoL) Logical Operator: 01011001 rol 3 = 11001010.
- Rotate Right (RoR) Logical Operator: 01011001 RoR 3 = 00101011.
- (Lsh) Logical Operator: (10 multiplied by 2 three times) 10 Lsh 3 = gives 80. 10.345 Lsh 3 = also gives 80.
- (Rsh) Logical Operator: (16 divided by 2 twice) 16 Rsh 2 = gives 4. 16.999 Rsh 2 = also gives 4.
- (Or) Logical Operator 101 OR 110 = gives 111.
- Exclusive Or (Xor) Logical Operator: 101 XOR 110 = gives 11.
- (Not) Logical Operator NOT 1001100111001001 = 0110011000110110.
- (And) Logical Operator 101 AND 110 = gives 100.
- (Mod) Logical Operator Remainder of integer division (Modulo x)
- "( )" Parenthesis
All Calculators and Converters Test: Verify scaling functions and languages Steps:
- Launch the "Calculator" app.
- For All Modes: While scaling in both directions to capacity Expected: Elements like Memory and History are shifted or integrated appropriately.
- In Any Mode: While at the Smallest scale, Select the Menu Button Expected: The menu items are scrollable with nothing overlapping.
- While in the Menu: Check the About Page Expected: Everything in the about page fits into its window
- For Scientific Mode: At a Larger Scale Expected: All buttons are present and the 2nd button is grayed out.
- For Scientific Mode: At a Smaller Scale Expected: All buttons are present and the 2nd button is able to be toggled.
- For Programmer Mode: At a Any Scale Expected: All buttons are present and the 2nd button is able to be toggled.
- For Converter Mode: While Scaling Expected: The number pad and input areas move around each other gracefully.
- For Graphing Mode: While Scaling Expected: The number pad, graph area, and input areas move around each other gracefully.
- Changing Language: Open Settings app > Time & language > Region & language > Add a language > Select a Right to Left (RTL) language such as Hebrew > Install the associated files> Set it to the system default.
- Set the system number format preference: Open a Run dialog (WIN + R) > type ‘intl.cpl’ > Enter > In the format dropdown list > Select Hebrew > Apply.
- Initiating the change: Package has completed installing > Sign out > Sign in. (This change to the app may also require a reinstallation of the build)
- Repeat Steps 2-6 again in a (RTL) language. Expected: No elements fall out of intended boundaries.
All Calculators Test: Verify toggling functions Steps:
- Launch the "Calculator" app.
- For Standard & Scientific Modes: While in the Smallest scale, verify that the History Icon brings up the history panel gracefully and is displayed appropriately. For Scientific Mode: At a Smaller Scale Verify the following:
- Grad / Deg / Rad Perform a trig function Expected: The answer to the function is in the selected grad/deg/rad. Repeat for each of the modes.
- (Hyp) Hyperbolic Expected: Sin toggles to Sinh, Cos toggles to Cosh, Tan toggles to Tanh.
- (F-E key) Floating Point Notation & Scientific Notation. Expected: Display toggles between floating point and Scientific notation. For Programmer Mode Verify the following:
- "Bit Toggling Keypad": Expected: In app keypad changes to represent Bits (1s and 0s).
- "QWORD / DWORD / WORD / BYTE": Expected: Toggles as expected.
- "Hex" Hexadecimal: Expected: A B C D E F become active and user can use them. A maximum of 16 characters can be entered.
- "Dec" Decimal: Expected: A B C D E F are inactive. A maximum of 19 characters can be entered.
- "Oct" Octal: Expected: A B C D E F 8 9 are inactive. A maximum of 22 characters can be entered.
- "Bin" Binary: Expected: A B C D E F 2 3 4 5 6 7 8 9 are inactive. A maximum of 64 characters can be entered.
Graphing Mode Test: Verify Graphing mode functions Steps:
- Launch the "Calculator" app
- Navigate to "Graphing" Calculator
- Enter a function of x in the input field
Expected: Function is plotted in the graph area. Line color matches the colored square next to the input field - Select the "+" button below the function input and enter more functions in the fields that appear
Expected: All functions are plotted in the graph area and match the colors of the input field squares - Select the colored square for any function
Expected: Visibility of the function in the graph is toggled off/on - Select the "Zoom In", "Zoom Out", and "Reset View' buttons in the graph area
Expected: Both X and Y axes zoom in, out, and revert to default settings, respectively - Select the Trace button, then click + drag the graph until the red square is near a graphed function
Expected: Closest (X, Y) coordinates of the function to the red square are displayed with a black dot to indicate the location - Enter "y=mx+b" into a function input field, then select "Variables" button
Expected: y=x+1 function is plotted in the graph, "Variables" modal window shows two variables "m" and "b" with values set to 1. - Adjust the value, minimum, maximum, and step for each variable
Expected: y=mx+b graph adjusts to the new values for m and b, step size changes the increments of the slider for each value - Share the graph via OneNote, Outlook/Mail, Twitter, and Feedback Hub
Expected: Modifiable message that contains an image of the graph customized for the chosen application opens - Verify Key Graph Features tab shows the correct information for the following functions:
(Note: IP = Inflection Points, VA = Vertical Asymptotes, HA = Horizontal Asymptotes, OA = Oblique Asymptotes)
a. y=x
Expected: Domain: ⁅𝑥∈ℝ⁆; Range: ⁅y∈ℝ⁆; X/Y Intercepts: (0)/(0); Max: none; Min: none; IP: none; VA: none; HA: none; OA: none; Parity: Odd; Monotonicity: (-∞, ∞) Increasing
b. y=1/x
Expected: Domain: ⁅𝑥≠0⁆; Range: ⁅y∈ℝ{0}⁆; X/Y Intercepts: ø/ø; Max: none; Min: none; IP: none; VA: x=0; HA: y=0; OA: none; Parity: Odd; Monotonicity: (0, ∞) Decreasing, (-∞, 0) Increasing
c. y=x^2
Expected: Domain: ⁅𝑥∈ℝ⁆; Range: ⁅y∈{0, ∞)⁆; X/Y Intercepts: (0)/(0); Max: none; Min: (0,0); IP: none; VA: none; HA: none; OA: none; Parity: Even; Monotonicity: (0, ∞) Increasing, (-∞, 0) Decreasing
d. y=x^3
Expected: Domain: ⁅𝑥∈ℝ⁆; Range: ⁅y∈ℝ⁆; X/Y Intercepts: (0)/(0); Max: none; Min: none; IP: (0,0); VA: none; HA: none; OA: none; Parity: Odd; Monotonicity: (-∞, ∞) Increasing
e. y=e^x
Expected: Domain: ⁅𝑥∈ℝ⁆; Range: ⁅y∈(0, ∞)⁆; X/Y Intercepts: ø/(1); Max: none; Min: none; IP: none; VA: none; HA: y=0; OA: none; Parity: none; Monotonicity: (-∞, ∞) Increasing
f. y=ln(x)
Expected: Domain: ⁅𝑥>0⁆; Range: ⁅y∈ℝ⁆; X/Y Intercepts: (1)/ø; Max: none; Min: none; IP: none; VA: x=0; HA: none; OA: none; Parity: none; Monotonicity: (0, ∞) Increasing
g. y=sin(x)
Expected: Domain: ⁅𝑥∈ℝ⁆; Range: ⁅𝑦∈[−1,1]⁆; X/Y Intercepts: (⁅𝜋n1,n1∈ℤ⁆)/(0); Max: ⁅(2𝜋n1+𝜋/2,1),n1∈ℤ⁆; Min: ⁅(2𝜋n1+3𝜋/2,−1),n1∈ℤ⁆; IP: ⁅(𝜋n1,0),n1∈ℤ⁆; VA: none; HA: none; OA: none; Parity: Odd; Monotonicity: ⁅(2𝜋n1+𝜋/2,2𝜋n1+3𝜋/2),n1∈ℤ⁆ Decreasing; ⁅(2𝜋n1+3𝜋/2,2𝜋n1+5𝜋/2),n1∈ℤ⁆ Increasing; Period: 2𝜋
h. y=cos(x)
Expected: Domain: ⁅𝑥∈ℝ⁆; Range: ⁅𝑦∈[−1,1]⁆; X/Y Intercepts: (⁅𝜋n1+𝜋/2,n1∈ℤ⁆)/(1); Max: ⁅(2𝜋n1,1),n1∈ℤ⁆; Min: ⁅(2𝜋n1+𝜋,-1),n1∈ℤ⁆; IP: ⁅(𝜋n1+𝜋/2,0),n1∈ℤ⁆; VA: none; HA: none; OA: none; Parity: Even; Monotonicity: ⁅(2𝜋n1+𝜋,2𝜋n1+2𝜋),n1∈ℤ⁆ Increasing, ⁅(2𝜋n1,2𝜋n1+𝜋),n1∈ℤ⁆ Decreasing; Period: 2𝜋
i. y=tan(x)
Expected: Domain: ⁅x≠𝜋n1+𝜋/2,∀n1∈ℤ⁆; Range: ⁅𝑦∈ℝ⁆; X/Y Intercepts: (x=𝜋n1, n1 ∈ℤ)/(0); Max: none; Min: none; IP: x=𝜋n1, n1 ∈ℤ; VA: x=𝜋n1+𝜋/2, n1∈ℤ; HA: none; OA: none; Parity: Odd; Monotonicity: ⁅(𝜋n1+𝜋/2,𝜋n1+3𝜋/2),n1∈ℤ⁆ Increasing; Period: 𝜋
j. y=sqrt(25-x^2)
Expected: Domain: ⁅x∈[-5,5]⁆; Range: ⁅𝑦∈[0,5]⁆; X/Y Intercepts: (5),(-5)/(5); Max: (0,5); Min: (-5,0) and (5,0); IP: none; VA: none; HA: none; OA: none; Parity: Even; Monotonicity: (0,5) Decreasing, (-5,0) Increasing
k. y=(-3x^2+2)/(x-1)
Expected: Domain: ⁅x≠1⁆; Range: ⁅𝑦∈(-∞, -2√3 - 6}U{2√3 -6,∞⁆; X/Y Intercepts: (-√6/3),(√6/3)/(-2); Max: ⁅(√3/3+1,-2√3−6)⁆; Min: ⁅(−√3/3+1,2√3−6)⁆; IP: none; VA: x=1; HA: none; OA: y=-3x-3; Parity: none; Monotonicity: (√3/3+1,∞) Decreasing, (1,√3/3+1,) Increasing(-√3/3+1,1), Increasing, (-∞,-√3/3+1) Decreasing
l. y=sin(sin(x)) ("too complex" error test)
Expected: Domain: ⁅𝑥∈ℝ⁆; Range: Unable to calculate range for this function; X/Y Intercepts: none; Max: none; Min: none; IP: none; VA: none; HA: none; OA: none; Parity: odd; Monotonicity: Unable to determine the monotonicity of the function
These features are too complex for Calculator to calculate: Range, X Intercept, Period, Minima, Maxima, Inflection Points, Monotonicity m. y=mx+b
Expected: Analysis is not supported for this function
Date Calculation Test: Verify dates can be calculated. Steps:
- Launch the "Calculator" app
- Navigate to "Date Calculation" Calculator
- With "Difference between dates" Selected Change the various date input fields Expected: From and To reflect dates input respectively.
- With "Add or Subtract days" Selected Change the various date input fields Expected: Verify changes made to both add and subtract reflect input respectively.
Currency Converter Test: Verify conversion & updating current currency rates. Steps:
- Launch the "Calculator" app.
- Navigate to "Currency Converter" Calculator.
- Select 2 Currency types from the dropdowns & enter a "1" into a conversion slot. Expected: The currency is slotted properly and converted rate matches the ratio provided under the selected currency types.
- Click "Updated" Expected: Display matches PC's date and time.
- After at least a minute: Select "Update rates" & Check "Updated" again: Expected: The "Update Rates" button changes the date and time to match the computer's current date and time.
All Calculators Test: Hotkeys: Verify Hot Key function. Steps:
-
Launch the "Calculator" app.
For All Applicable Modes verify the following (note: only 11-15 and 20 work in Always-on-Top mode):
-
Press Alt +1 to enter "Standard" mode Expected: Move to "Standard" screen.
-
Press Alt +2 to enter "Scientific" mode Expected: Move to "Scientific" screen.
-
Press Alt +3 to enter "Programmer" mode Expected: Move to "Programming" screen.
-
Press Alt +4 to enter "Date Calculation" mode Expected: Move to "Date Calculation" screen. 6 Press Alt +5 to enter "Graphing" mode Expected: Move to "Graphing" screen.
-
Press Ctrl +M to Store in Memory
-
Press Ctrl +P to Add to Active Memory
-
Press Ctrl +Q to Subtract form Active Memory
-
Press Ctrl +R to Recall from Memory
-
Press Ctrl +L to Clear from Memory
-
Press Delete to Clear Current Input 'CE'
-
Press Esc to Full Clear Input 'C'
-
Press F9 to Toggle '±'
-
Press R to Select '1/x'
-
Press @ to Select '√'
-
Press Ctrl + H to Toggle History Panel Expected: Function when in small scale window.
-
Press Up arrow to Move up History Panel Expected: Function when in small scale window.
-
Press Down arrow to Move Down History Panel Expected: Function when in small scale window.
-
Press Ctrl + Shift + D to Clear History Panel Expected: Function when in small scale window.
-
Press Spacebar to Repeat Last Input
Verify the following in Scientific Mode
-
Press F3 to Select 'DEG'
-
Press F4 to Select 'RAD'
-
Press F5 to Select 'GRAD'
-
Press Ctrl +G to Select '10ˣ'
-
Press Ctrl +Y to Select 'y√x'
-
Press Shift +O to Select 'sin-1'
-
Press Shift + S to Select 'cos-1'
-
Press Shift +T to Select 'tan-1'
-
Press Ctrl +O to Select 'Cosh'
-
Press Ctrl +S to Select 'Sinh'
-
Press Ctrl +T to Select 'Tanh'
-
Press D to Select 'Mod'
-
Press L to Select 'log'
-
Press M to Select 'dms'
-
Press N to Select 'ln'
-
Press Ctrl +N to Select 'ex'
-
Press O to Select 'Cos'
-
Press P to Select 'π'
-
Press Q to Select 'x²'
-
Press S to Select 'Sin'
-
Press T to Select 'Tan'
-
Press V to Toggle 'F-E'
-
Press X to Select 'Exp'
-
Press Y or ^ to Select 'xʸ'
-
Press # to Select 'x³'
-
Press ! to Select 'n!'
Verify the following in Programmer Mode
-
Press F2 to Select 'DWORD'
-
Press F3 to Select 'WORD'
-
Press F4 to Select 'BYTE'
-
Press F5 to Select 'HEX'
-
Press F6 to Select 'DEC'
-
Press F7 to Select 'OCT'
-
Press F8 to Select 'BIN'
-
Press F12 to Select 'QWORD'
-
Press A-F to Input in HEX
-
Press J to Select 'RoL'
-
Press K to Select 'RoR'
-
Press < to Select 'Lsh'
-
Press > to Select 'Rsh'
-
Press % to Select 'Mod'
-
Press | to Select 'Or'
-
Press ~ to Select 'Not'
-
Press & to Select 'And'
Verify the following in Graphing Mode
-
Press x to Select 'x'
-
Press y to Select 'y'
-
Press Ctrl +[Numpad+] to Select 'Zoom In'
-
Press Ctrl +[Numpad-] to Select 'Zoom Out'
Test 1 Steps:
- Change the system default app language to Arabic
- Launch the "Calculator" app and from "Standard" Calculator, click the Always-on-Top button Expected: UI/Menu is localized (for example, the title bar buttons is in right-to-left order)
- Input "/", "0", “Enter” on the keyboard Expected: Error message is in Arabic
Test 1 Steps:
- Open the "Narrator" app
- Launch the "Calculator" app and from "Standard" Calculator, click the Always-on-Top button
- Tab over the Always-on-Top button Expected: Narrator reads the localized version of "Back to full view"
- Tab over the main results field Expected: Narrator reads the localized version of exactly what's displayed (ie. "0")
- Tab over the rest of the UI elements Expected: Narrator reads the localized version of the UI elements' contents