diff --git a/docs/ManualTests.md b/docs/ManualTests.md
index ddc38ac1..884f0aef 100644
--- a/docs/ManualTests.md
+++ b/docs/ManualTests.md
@@ -260,17 +260,19 @@ Steps:
4. While in the Menu: Check the About Page
*Expected: Everything in the about page fits into its window*
5. For Scientific Mode: At a Larger Scale
-*Expected: All buttons are present and the up arrow is grayed out.*
+*Expected: All buttons are present and the 2nd button is grayed out.*
6. For Scientific Mode: At a Smaller Scale
-*Expected: All buttons are present and the up arrow is able to be toggled.*
+*Expected: All buttons are present and the 2nd button is able to be toggled.*
7. For Programmer Mode: At a Any Scale
-*Expected: All buttons are present and the up arrow is able to be toggled.*
+*Expected: All buttons are present and the 2nd button is able to be toggled.*
8. For Converter Mode: While Scaling
*Expected: The number pad and input areas move around each other gracefully.*
-9. 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.
-10. Set the system number format preference: Open a Run dialog (WIN + R) > type ‘intl.cpl’ > Enter > In the format dropdown list > Select Hebrew > Apply.
-11. Initiating the change: Package has completed installing > Sign out > Sign in. (This change to the app may also require a reinstallation of the build)
-12. Repeat Steps 2-6 again in a (RTL) language.
+9. For Graphing Mode: While Scaling
+*Expected: The number pad, graph area, and input areas move around each other gracefully.*
+10. 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.
+11. Set the system number format preference: Open a Run dialog (WIN + R) > type ‘intl.cpl’ > Enter > In the format dropdown list > Select Hebrew > Apply.
+12. Initiating the change: Package has completed installing > Sign out > Sign in. (This change to the app may also require a reinstallation of the build)
+13. Repeat Steps 2-6 again in a (RTL) language.
*Expected: No elements fall out of intended boundaries.*
@@ -302,11 +304,60 @@ Verify the following:
11. "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:
+1. Launch the "Calculator" app
+2. Navigate to "Graphing" Calculator
+3. 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*
+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:
-1. Launch the "Calculator" app.
-2. Navigate to "Date Calculation" Calculator.
+1. Launch the "Calculator" app
+2. Navigate to "Date Calculation" Calculator
3. With "Difference between dates" Selected
Change the various date input fields
*Expected: From and To reflect dates input respectively.*
@@ -332,80 +383,88 @@ Steps:
1. Launch the "Calculator" app.
For All Applicable Modes verify the following (note: only 11-15 and 20 work in Always-on-Top mode):
-2. Press **Alt +1** to Enter "Standard" mode
+2. Press **Alt +1** to enter "Standard" mode
*Expected: Move to "Standard" screen.*
-3. Press **Alt +2** to Enter "Scientific" mode
+3. Press **Alt +2** to enter "Scientific" mode
*Expected: Move to "Scientific" screen.*
-4. Press **Alt +3** to Enter "Programmer" mode
+4. Press **Alt +3** to enter "Programmer" mode
*Expected: Move to "Programming" screen.*
-5. Press **Alt +4** to Enter "Date Calculation" mode
+5. Press **Alt +4** to enter "Date Calculation" mode
*Expected: Move to "Date Calculation" screen.*
-6. Press **Ctrl +M** to Store in Memory
-7. Press **Ctrl +P** to Add to Active Memory
-8. Press **Ctrl +Q** to Subtract form Active Memory
-9. Press **Ctrl +R** to Recall from Memory
-10. Press **Ctrl +L** to Clear from Memory
-11. Press **Delete** to Clear Current Input 'CE'
-12. Press **Esc** to Full Clear Input 'C'
-13. Press **F9** to Toggle '±'
-14. Press **R** to Select '1/x'
-15. Press **@** to Select '√'
-16. Press **Ctrl + H** to Toggle History Panel
+6 Press **Alt +5** to enter "Graphing" mode
+*Expected: Move to "Graphing" screen.*
+7. Press **Ctrl +M** to Store in Memory
+8. Press **Ctrl +P** to Add to Active Memory
+9. Press **Ctrl +Q** to Subtract form Active Memory
+10. Press **Ctrl +R** to Recall from Memory
+11. Press **Ctrl +L** to Clear from Memory
+12. Press **Delete** to Clear Current Input 'CE'
+13. Press **Esc** to Full Clear Input 'C'
+14. Press **F9** to Toggle '±'
+15. Press **R** to Select '1/x'
+16. Press **@** to Select '√'
+17. Press **Ctrl + H** to Toggle History Panel
*Expected: Function when in small scale window.*
-17. Press **Up arrow** to Move up History Panel
+18. Press **Up arrow** to Move up History Panel
*Expected: Function when in small scale window.*
-18. Press **Down arrow** to Move Down History Panel
+19. Press **Down arrow** to Move Down History Panel
*Expected: Function when in small scale window.*
-19. Press **Ctrl + Shift + D** to Clear History Panel
+20. Press **Ctrl + Shift + D** to Clear History Panel
*Expected: Function when in small scale window.*
-20. Press **Spacebar** to Repeat Last Input
+21. Press **Spacebar** to Repeat Last Input
Verify the following in Scientific Mode
-21. Press **F3** to Select 'DEG'
-22. Press **F4** to Select 'RAD'
-23. Press **F5** to Select 'GRAD'
-24. Press **Ctrl +G** to Select '10ˣ'
-25. Press **Ctrl +Y** to Select 'y√x'
-26. Press **Shift +O** to Select 'sin-1'
-27. Press **Shift + S** to Select 'cos-1'
-28. Press **Shift +T** to Select 'tan-1'
-29. Press **Ctrl +O** to Select 'Cosh'
-30. Press **Ctrl +S** to Select 'Sinh'
-31. Press **Ctrl +T** to Select 'Tanh'
-32. Press **D** to Select 'Mod'
-33. Press **L** to Select 'log'
-34. Press **M** to Select 'dms'
-35. Press **N** to Select 'ln'
-36. Press **Ctrl +N** to Select 'ex'
-37. Press **O** to Select 'Cos'
-38. Press **P** to Select 'π'
-39. Press **Q** to Select 'x²'
-40. Press **S** to Select 'Sin'
-41. Press **T** to Select 'Tan'
-42. Press **V** to Toggle 'F-E'
-43. Press **X** to Select 'Exp'
-44. Press **Y** or **^** to Select 'xʸ'
-45. Press **#** to Select 'x³'
-46. Press **!** to Select 'n!'
+22. Press **F3** to Select 'DEG'
+23. Press **F4** to Select 'RAD'
+24. Press **F5** to Select 'GRAD'
+25. Press **Ctrl +G** to Select '10ˣ'
+26. Press **Ctrl +Y** to Select 'y√x'
+27. Press **Shift +O** to Select 'sin-1'
+28. Press **Shift + S** to Select 'cos-1'
+29. Press **Shift +T** to Select 'tan-1'
+30. Press **Ctrl +O** to Select 'Cosh'
+31. Press **Ctrl +S** to Select 'Sinh'
+32. Press **Ctrl +T** to Select 'Tanh'
+33. Press **D** to Select 'Mod'
+34. Press **L** to Select 'log'
+35. Press **M** to Select 'dms'
+36. Press **N** to Select 'ln'
+37. Press **Ctrl +N** to Select 'ex'
+38. Press **O** to Select 'Cos'
+39. Press **P** to Select 'π'
+40. Press **Q** to Select 'x²'
+41. Press **S** to Select 'Sin'
+42. Press **T** to Select 'Tan'
+43. Press **V** to Toggle 'F-E'
+44. Press **X** to Select 'Exp'
+45. Press **Y** or **^** to Select 'xʸ'
+46. Press **#** to Select 'x³'
+47. Press **!** to Select 'n!'
Verify the following in Programmer Mode
-47. Press **F2** to Select 'DWORD'
-48. Press **F3** to Select 'WORD'
-49. Press **F4** to Select 'BYTE'
-50. Press **F5** to Select 'HEX'
-51. Press **F6** to Select 'DEC'
-52. Press **F7** to Select 'OCT'
-53. Press **F8** to Select 'BIN'
-54. Press **F12** to Select 'QWORD'
-55. Press **A-F** to Input in HEX
-56. Press **J** to Select 'RoL'
-57. Press **K** to Select 'RoR'
-58. Press **<** to Select 'Lsh'
-59. Press **>** to Select 'Rsh'
-60. Press **%** to Select 'Mod'
-61. Press **|** to Select 'Or'
-62. Press **~** to Select 'Not'
-63. Press **&** to Select 'And'
+48. Press **F2** to Select 'DWORD'
+49. Press **F3** to Select 'WORD'
+50. Press **F4** to Select 'BYTE'
+51. Press **F5** to Select 'HEX'
+52. Press **F6** to Select 'DEC'
+53. Press **F7** to Select 'OCT'
+54. Press **F8** to Select 'BIN'
+55. Press **F12** to Select 'QWORD'
+56. Press **A-F** to Input in HEX
+57. Press **J** to Select 'RoL'
+58. Press **K** to Select 'RoR'
+59. Press **<** to Select 'Lsh'
+60. Press **>** to Select 'Rsh'
+61. Press **%** to Select 'Mod'
+62. Press **|** to Select 'Or'
+63. Press **~** to Select 'Not'
+64. Press **&** to Select 'And'
+
+ Verify the following in Graphing Mode
+65. Press **x** to Select 'x'
+66. Press **y** to Select 'y'
+67. Press **Ctrl +[Numpad+]** to Select 'Zoom In'
+68. Press **Ctrl +[Numpad-]** to Select 'Zoom Out'
## Localization Tests