docs/ManualTests.md
These manual tests are run before every release of the Calculator app.
Test 1 Steps:
Test 2 Steps:
Test 1 Steps:
Test 2 Steps:
Test 1 Steps:
Test 2 Steps:
Converter Usage Steps:
Test 1 Steps:
Test 2 Steps:
Test 3 Steps:
Test 4 Steps:
Test 5 Steps:
Launch App Test Steps:
All Calculators Test: Verify All Numbers & Input Methods Steps:
All Calculators Test: Verify Basic Arithmetic Functions Steps:
Scientific Calculator Test: Verify advanced arithmetic functions Steps:
All Calculators Test: Verify memory functions Steps:
Scientific Calculator Test: Verify trigonometric functions Steps:
Programmer Calculator Test: Verify logical functions Steps:
All Calculators and Converters Test: Verify scaling functions and languages Steps:
All Calculators Test: Verify toggling functions Steps:
Graphing Mode Test: Verify Graphing mode functions Steps:
Expected: Function is plotted in the graph area. Line color matches the colored square next to the input field 4. 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 5. Select the colored square for any function
Expected: Visibility of the function in the graph is toggled off/on 6. 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 7. 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 8. 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. 9. 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 10. 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 11. 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:
Currency Converter Test: Verify conversion & updating current currency rates. Steps:
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:
Test 1 Steps: