Data Flyer and Function Flyer Test Suite

Applet Name: flydata, flyall

Purpose: Allows the user to graph functions and dynamically change the constants and subsequently the graph of the function.

Description: Input a function and graph the function. Slider bars appear matching a color to the constant/coefficient of the function it controls. The step-size of the slider is controlled in two ways: by the smallest significant digit or by the "set window" dialog box. Display options include showing a background grid on the graph, displaying vertical asymptotes, and tracing out the functions drawn from moving the sliders.

Data Specifications: This Test Suite is used for both Data Flyer (flydata) and Function Flyer (flyall). Function Flyer uses the exact same code as Data Flyer only with certain features disabled i.e. testing Data Flyer will cover Function Flyer.

Platforms/Browsers:

Test Cases

Test Case Title Description
Test1_functionflyer: Applet Layout Verify that the applet's layout is correct and formatted properly (i.e. no cutoff buttons or text).
Test2_functionflyer: What, How and Why pages Verify the what, how and why pages come up correctly. Ensure that any functionality or usage changes are reflected in the text of the what, how and why pages if necessary. Note: This is not valid on totest site.
Test3_functionflyer: Whole Number Granularity Input: 1*cos(1*x+0)+0

Output: Graph of cos(x) and 4 sliders. Each slider should move in a step size of 1 unit.
x f(x)
-10.00 -0.84
-9.6 -0.98
-9.2 -0.97
-8.8 -0.81
-8.4 -0.52
-8.00 -0.15
-7.6 0.25
-7.2 0.61
-6.8 0.87
-6.4 0.99
-6.00 0.96
-5.6 0.78
-5.2 0.47
-4.8 0.09
-4.4 -0.31
-4.00 -0.65
-3.6 -0.9
-3.2 -1.00
-2.8 -0.94
-2.4 -0.74
-2.00 -0.42
-1.6 -0.03
-1.2 0.36
-0.8 0.7
-0.4 0.92
0.00 1.00
0.4 0.92
0.8 0.7
1.2 0.36
1.6 -0.03
2.00 -0.42
2.4 -0.74
2.8 -0.94
3.2 -1.00
3.6 -0.9
4.00 -0.65
4.4 -0.31
4.8 0.09
5.2 0.47
5.6 0.78
6.00 0.96
6.4 0.99
6.8 0.87
7.2 0.61
7.6 0.25
8.00 -0.15
8.4 -0.52
8.8 -0.81
9.2 -0.97
9.6 -0.98
10.00 -0.84

Test4_functionflyer: Asymptote Detection Input: Graph 1*tan(1*x+0)+0 and check the "Show Vertical Asymptotes" check box.

Output: Graph of tan(x) and 4 sliders. Each slider should move in a step size of 1 unit. There should be red vertical lines drawn at each asymptote. Expect numerical error when increasing the slider that controls the frequency of the function.
x f(x)
-10.00 -0.65
-9.6 -0.18
-9.2 0.23
-8.8 0.72
-8.4 1.65
-8.00 6.8
-7.6 -3.85
-7.2 -1.3
-6.8 -0.57
-6.4 -0.12
-6.00 0.29
-5.6 0.81
-5.2 1.89
-4.8 11.38
-4.4 -3.1
-4.00 -1.16
-3.6 -0.49
-3.2 -0.06
-2.8 0.36
-2.4 0.92
-2.00 2.19
-1.6 34.23
-1.2 -2.57
-0.8 -1.03
-0.4 -0.42
0.00 0.00
0.4 0.42
0.8 1.03
1.2 2.57
1.6 -34.23
2.00 -2.19
2.4 -0.92
2.8 -0.36
3.2 0.06
3.6 0.49
4.00 1.16
4.4 3.1
4.8 -11.38
5.2 -1.89
5.6 -0.81
6.00 -0.29
6.4 0.12
6.8 0.57
7.2 1.3
7.6 3.85
8.00 -6.8
8.4 -1.65
8.8 -0.72
9.2 -0.23
9.6 0.18
10.00 0.65

Test5_functionflyer: Tenths Granularity Input1: 0.1*x-1
Output1:
  • Graph of function with the slider controlling 0.1 increments by 0.1 from -0.9 to 1.1.
  • Click the Slider Limits button and a pop up window should appear with the min/max/increment values mentioned above. Also ensure the colors match to the appropriate slider and the window otherwise appears correct.
Input2: 1.0*x-1
Output2:
  • Graph of function with the slider controlling 1.0 increments by 0.1 from 0.0 to 2.0.
  • Click the Slider Limits button and a pop up window should appear with the min/max/increment values mentioned above. Also ensure the colors match to the appropriate slider and the window otherwise appears correct.
Input3: 0.10*x+1
Output2:
  • Graph of function with the slider controlling 0.10*x+1 increments by 0.01 from 0.0 to 0.2.
  • Click the Slider Limits button and a pop up window should appear with the min/max/increment values mentioned above. Also ensure the colors match to the appropriate slider and the window otherwise appears correct.
Test6_functionflyer: Scientific Notation Boundaries Input1: 0.000001*x

Output:1

  • Matching graph of the function. The equation should read 1e-6*x. The slider bar should increment by 1.0e-6 step size. The minimum value should read -9e-6 and the largest value 1.1e-5. The output will swap from standard notation to scientific notation from -9e-6 to 0.000011 when moving the slider to the right. Expect whenever the slider hits zero, the zero will always appear in standard notation.
  • Click the Slider Limits button and a pop up window should appear with the min/max/increment values mentioned above though the max value will appear in scientific notation. Also ensure the colors match to the appropriate slider and the window otherwise appears correct.
Input2: 0.000010*x

Output2:

  • Matching graph of the function. The initial equation should read 0.000010*x and the slider should increment by a 1.0e-6 step size. The minimum value on the slider should be 0.0 and the max should be 2.0e-5. When the slider results in a value less than 0.000010 it should be in scientific notation except when it hits zero.
  • Click the Slider Limits button and a pop up window should appear with the min/max/increment values mentioned above though the max value will appear in scientific notation. Also ensure the colors match to the appropriate slider and the window otherwise appears correct.
Input3: 100000*x

Output3:

  • Matching graph of the function. The initial equation should read 100000*x and the slider should increment by a 100000 step size. The minimum value on the slider should read -900000 and the max should read 1.1e6.
  • Click the Slider Limits button and a pop up window should appear with the min/max/increment values mentioned above. Also ensure the colors match to the appropriate slider and the window otherwise appears correct.
Input4: 1000000*x

Output4:

  • Matching graph of the function. The initial equation should read 1e6*x and the slider should increment by a 1.0e6 step size. The minimum value on the slider should read -9.0e6 and the max should read 1.1e7.
  • Click the Slider Limits button and a pop up window should appear with the min/max/increment values mentioned above. Also ensure the colors match to the appropriate slider and the window otherwise appears correct.

Input5: 0.0003*x+5

Output5:

  • Matching graph of the function. The initial equation should read 0.0003*x+5 and the slider controlling 0.0003 should increment by a 1.0e-4 step size. The minimum value on the slider should read -7.0e-4 and the max should read 0.0013.
  • Click the Slider Limits button and a pop up window should appear with the min/max/increment values mentioned above. Also ensure the colors match to the appropriate slider and the window otherwise appears correct.

Input6: 0.00030*x+5

Output5:

  • Matching graph of the function. The initial equation should read 0.00030*x+5 and the slider controlling 0.00030 should increment by a 1.0e-5 step size. The minimum value on the slider should read 2.0e-4 and the max should read 4.0e-4.
  • Click the Slider Limits button and a pop up window should appear with the min/max/increment values mentioned above. Also ensure the colors match to the appropriate slider and the window otherwise appears correct.

Input7: 0.000300*x+5

Output5:

  • Matching graph of the function. The initial equation should read 0.000300*x+5 and the slider controlling 0.000300 should increment by a 1.0e-6 step size. The minimum value on the slider should read 2.9e-4 and the max should read 3.1e-4.
  • Click the Slider Limits button and a pop up window should appear with the min/max/increment values mentioned above. Also ensure the colors match to the appropriate slider and the window otherwise appears correct.
Test7_functionflyer: Scientific Notation for Input Boundaries Input1: 1e-4*x

Output1:

  • Matching graph of the function. The resulting equation should read 0.0001*x and the slider should increment by a 1.0e-4 step size from a minimum value of -9.0e-4 to a maximum value of 0.0011.
  • Click the Slider Limits button and a pop up window should appear with the min/max/increment values mentioned above though the min value will appear in scientific notation. Also ensure the colors match to the appropriate slider and the window otherwise appears correct.
Input2: 1e-6*x

Output2:

  • Matching graph of the function. The resulting equation should read 1e-6*x and the slider should increment by a 1e-6 step size from a minimum value of -9e-6 to a maximum value of 1.1e-5.
  • Click the Slider Limits button and a pop up window should appear with the min/max/increment values mentioned above though the max value will appear in scientific notation as well as the min. Also ensure the colors match to the appropriate slider and the window otherwise appears correct.
Input3: 1e4*x

Output3:

  • Matching graph of the function. The resulting equation should read 10000*x and the slider should increment by a 10000 step size from a minimum value of -90000 to a maximum value of 110000.
  • Click the Slider Limits button and a pop up window should appear with the min/max/increment mentioned above. Also ensure the colors match to the appropriate slider and the window otherwise appears correct.
Input4: 1e6*x

Output4:

  • Matching graph of the function. The resulting equation should read 1e6*x and the slider should increment by a 1e6 step size from a minimum value of -9e6 to a maximum value of 1.1e7.
  • Click the Slider Limits button and a pop up window should appear with the min/max/increment values mentioned above. Also ensure the colors match to the appropriate slider and the window otherwise appears correct.
Input5: -1+3e-4*x

Output4:

  • Matching graph of the function. The resulting equation should read -1+0.0003*x and the slider controlling 0.0003 should increment by a 1.0e-4 step size from a minimum value of -7.0e-4 to a maximum value of 0.0013.
  • Click the Slider Limits button and a pop up window should appear with the min/max/increment values mentioned above. Also ensure the colors match to the appropriate slider and the window
Input6: -1+3.0e-4*x

Output4:

  • Matching graph of the function. The resulting equation should read -1+0.00030*x and the slider should increment by a 1.0e-5 step size from a minimum value of 2.0e-4 to a maximum value of 4.0e-4.
  • Click the Slider Limits button and a pop up window should appear with the min/max/increment values mentioned above. Also ensure the colors match to the appropriate slider and the window
Test8_functionflyer: Power Functions with Fractional Exponents Input1: x^(1/2) and check the "Exponents Change" box.

Output1:

  • Matching graph of the function and two sliders controlling the 1 and the 2 parameters.
  • The first slider should move from -9 to 11 with a step of 1. The slider controlling the denominator should move from -8 to 12 with a step of 1.
  • Make sure that the resulting graph of a negative in both numerator and denominator results in the same graph as both of the same numbers as positive. For example, the graph of x^(-1/-2) should be the same as x^(1/2). Likewise make sure that the graph of x^(-1/2) is the same as x^(1/-2).
  • Make sure the graph when the denominator of the fraction is even for a completely reduced fraction e.g. 1/2 as opposed to 4/10, appears correctly.
Test9_functionflyer: Power Functions with Decimal Exponents Input: x^1.1, check the "Exponents Change" check box and then graph.

Output:

  • Matching graph of the function and one slider controlling the 1.1 parameters.
  • The slider should move from 0.1 to 2.1 with a step of 0.1.
  • Make sure the resulting graphs for each step of the slider are correct. Be sure to look and see that the proper range is graphed for the domain. When the decimal converts to a complete fraction with an odd denominator, the range should be defined over the entire domain. When the decimal converts to a completely reduced fraction with an even denominator, the range should only be defined for positive x.
Input: 3--x+-x^2.0, check the "Exponents Change" check box and then graph.

Output:

  • There should be only 2 sliders.
  • The first slider controlling the 3 should move from a minimum of -7 to a maximum of 13 with a step of 1. The second slider controlling the 2.0 should move from a minimum of 1 to max of 3 with a step of 0.1.
Test10_functionflyer: Power Functions with a Fractional Exponent containing a Decimal Input: 3-x^(1.2/3)

Output: An error message saying that numerator and denominator should be integers.

Test11_functionflyer: Other Functions with Restricted Domains Input1: 1*sqrt(x-0)-0

Output1:

  • Matching graph of the function and three sliders. Ensure that the range is only defined for positive x.
  • The slider controlling the 1 should range from -9 to 11 with a step of 1 and the sliders controlling the 0 parameters should range from -10 to 10 with a step of 1.
  • Moving the slider that controls the point on the function to x values that are not defined for the functions should produce no value for the coordinate and the black dot should appear at the very top of the graph paper.

Input2: 1/(x-0)+0

Output2:

  • Matching graph of the function and three sliders.
  • The slider controlling the 1 should range from -9 to 11 with a step of 1 and the sliders controlling the 0 parameters should range from -10 to 10 with a step of 1.
  • The graph should not be defined where x equals the number in the denominator.
Test12_functionflyer: Logarithmic Functions Input1: 1*log(x-0)+0

Output1:

  • The slider controlling the 1 should range from -9 to 11 with a step of 1 and the sliders controlling the 0 should range from -10 to 10 with a step of 1.
  • Note that the log function is not defined for x values less than or equal to the parameter inside the parentheses.
Test13_functionflyer: Proper functioning of negative sign on a variable Input1: -x

Output1: Graph of -x.

Input2: -x^2, check the "exponents change" box.

Output2: Graph of -x^2 with corresponding slider ranging from -8 to 12 with a step of 1. Make sure the graph appears as -(x^a) as opposed to (-x)^a.

Test14_functionflyer: Exponential Functions Input: 1^x

Output: Graph of 1^x with 1 slider bar that ranges in values from -9 to 11 with a step of 1. Make sure when the slider makes the corresponding values negative it graphs as -(a^x) as opposed to (-a)^x

Test15_functionflyer: Set Window Input1: Click the "Set Window" button.

Output1: Ensure the window pops up and all components appear correctly, i.e. x min: -10.0, x max: 10.0, y min: -10.0 and y max: 10.0.

Input2: Change values in the "Set Window" window to xmin=1, xmax=10, ymin=1, ymax=10 and click set.

Output2: The graph paper should contain the first quadrant and no axes should appear though the values for the scales should appear along the left and bottom sides from 1.9 to 10.0 in increments of 0.9 units.

Input3: Change values in the "Set Window" window to xmin=-1, xmax=-10, ymin=1, ymax=10 and click set.

Output3: An error window should oop up that says xmin should be less than xmax.

Input4: Change values in the "Set Window" window to xmin=-10, xmax=-1, ymin=1, ymax=10 and click set.

Output4: The graph paper should contain the fourth quadrant and no axes should appear though the values for the scales should appear along the right and bottom sides from 1.9 to 9.1 in increments of 0.9 units. Some y values will get overwritten by the pan/zoom buttons.

Input5: Change values in the "Set Window" window to xmin=-10, xmax=-1, ymin=-10, ymax=-1 and click set.

Output5: The graph paper should contain the third quadrant and no axes should appear though the values for the scales should appear along the top and right sides from 1.9 to 9.1 in increments of 0.9 units. The smaller y values will get overwritten by the pan/zoom buttons.

Input6: Change values in the "Set Window" window to xmin=1, xmax=10, ymin=-10, ymax=-1 and click set.

Output6: The graph paper should contain the second quadrant and no axes should appear though the values for the scales should appear along the top and left sides from 1.9 to 9.1 in increments of 0.9 units.

Test16_functionflyer: Show Vertical Asymptotes Input1: 1/(x+0). Set Function. Check "Show Vertical Asymptotes" box. Use the green slider to change the value of the 0.

Output1: The "Show Trace" and "Clear Trace" buttons should become grey. A thin red line should appear for the vertical asymptote and should move appropriately as the slider is moved.

Input2: 1*x^2. Set Function. Check "Show Vertical Asymptotes" box. Use the green slider to change the value of the 0.

Output2: The phrase "No Vertical Asymptotes Found" should appear on the graph paper. As the slider moves, asymptotes may appear.

Input3: Uncheck the "Show Vertical Asymptotes" button.

Output3: The Show Trace and Clear Trace objects should no longer be greyed out.

Test17_functionflyer: Grid Lines Input: Toggle through the radio buttons of "No Grid" "Light Grid Lines" and "Dark Grid Lines".

Output: The correct darkness for the grid lines should appear on the graph paper.

Test18_functionflyer: Show and Clear Trace Input1: 1.0*x^2+1*x+0. Set Function. Check "Show Trace".

Output1: Graph of the function with 3 sliders. The "Set Window", grid lines, and "Show Vertical Asymptotes" check box should all be greyed-out. Move the sliders. Light grey lines should appear where the function was the step prior to moving the slider.

Input2: Click "Clear Trace"

Output2: Grey trace lines should disappear.

Input3: Move sliders around more. Uncheck "Show Trace".

Output3: The trace lines should disappear and all elements that were deactivated should be reactivated.

Test19_functionflyer: Zoom Out Input1: 0.0001*x^2. Set Function.

Output1: Function appears as a flat line because of the scale. Click the "zoom out" button (magnifying glass with the minus sign) 10 times so that a parabola appears. The resulting x and y ranges should double. Restore window size to default setting before going on to next test.

Test20_functionflyer: Zoom In Input1: 10000*x^2. Set Function.

Output1: Function doesn't appear because the parabola is too steep. Click the "zoom in" button (magnifying glass with a + sign). The button should appear depressed by shading the background with grey. Draw a tall thin rectangle around the y-axis while the button is pressed. This should zoom into the area of the rectangle. Make note of the x and y ranges as you draw the rectangle and ensure that the resulting rectangle zooms to these values. The button should appear unpressed after drawing the rectangle. Repeat this process (i.e. continue zooming) 10 times.

Test21_functionflyer: Pan Input: 0.001*x^2. Set Function.

Output: Function appears somewhat flat because of range. Click the "pan" button (magnifying glass with double arrows). The button should appear depressed while clicking and dragging across the screen. As soon as you let up on the mouse button after the click and drag, the button should appear unpressed.

Test22_functionflyer: Show Tabular Data Input: 1*cos(1*x+0)+0. Set function. Click "Show Tabular Data" button.

Output1: The button itself should toggle to "Hide Tabular Data". A table of values beginning with x=-10 and f(x)=-0.84. Table should increment with x by +0.4 step size and continue until 10.0 with resulting f(x) values: x f(x)
-10.00 -0.84
-9.6 -0.98
-9.2 -0.97
-8.8 -0.81
-8.4 -0.52
-8.00 -0.15
-7.6 0.25
-7.2 0.61
-6.8 0.87
-6.4 0.99
-6.00 0.96
-5.6 0.78
-5.2 0.47
-4.8 0.09
-4.4 -0.31
-4.00 -0.65
-3.6 -0.9
-3.2 -1.00
-2.8 -0.94
-2.4 -0.74
-2.00 -0.42
-1.6 -0.03
-1.2 0.36
-0.8 0.7
-0.4 0.92
0.00 1.00
0.4 0.92
0.8 0.7
1.2 0.36
1.6 -0.03
2.00 -0.42
2.4 -0.74
2.8 -0.94
3.2 -1.00
3.6 -0.9
4.00 -0.65
4.4 -0.31
4.8 0.09
5.2 0.47
5.6 0.78
6.00 0.96
6.4 0.99
6.8 0.87
7.2 0.61
7.6 0.25
8.00 -0.15
8.4 -0.52
8.8 -0.81
9.2 -0.97
9.6 -0.98
10.00 -0.84

Input2: In the Function Data window, set min=0, max=1.57 (~pi/2) and step=.196 (~pi/16).

Output2: x f(x)
0.00 1.00
0.2 0.98
0.39 0.92
0.59 0.83
0.78 0.71
0.98 0.56
1.18 0.38
1.37 0.2
1.57 0.00

Input3: Without closing the Function Data Window from the Input2 case, try manipulating the sliders.

Output3: An error message should appear that says you must close the Function Data window before changing the function.

Input4: Close the Function Data Window from above from the Input2 case above. Move the sliders to the function 7*cos(1*x+0)+4. Press the Show Tabular Data button.

Output4: The following table should appear:
x f(x)
0.00 11.00
0.2 10.87
0.39 10.47
0.59 9.82
0.78 8.96
0.98 7.9
1.18 6.69
1.37 5.38
1.57 4.02

Test23_functionflyer: Reset Sliders Input: 1*cos(1*x+0)+0 and Set Function. Move sliders around. Click "Reset Sliders."

Output: Sliders shouod return to original values.

Test24_functionflyer: Slider Limits Input1: 10000*x Set Function. Click "Slider Limits"

Output1: A pop-up window should appear with a purple line and read min=-90000, max=110000, step=10000.

Input2: Change the step size to 10 and click "set."

Output2: An error message should appear that says there can be at most 100 steps to a slider and gives the user the option to change min, change max, or change step. Click the "change step" button which should change the step text box to 2000.0 Click the set button which should close the window. The purple slider should now increment by steps of 2000.

Input3: Click the "slider limits" button again and change the min to -100000. Once again the error message should appear. Click the "change minimum" button and the min text box should return to a value of -90000. Change the max to 120000 and repeat the process with the resulting error window by changing the max. Click set to close the window.

Input4: Click "Change Function" and enter 0.000001*x+0.00001. Set Function.

Output4: 1e-6*x+0.00001 and graph of function. Click "Slider Limits." There should be two rows, one labeled with a purple line and the other with a green line. Min for purple should read -9.0e-6, max=1.1e-5 and step=1.0e-6. The one labeled with a green line should read min=-9.0e-5, max=1.1e-4 and step 1.0e-5. Change the green step to 0.1 and click set. An error message should appear saying the step cannot be greater than the max minus the min.

Input5: Change the min for the green slider to min=-10, max=10 and step=1 and set. The function should change to 1e-6*x+0 and the green slider should now increment by 1 from min of -10 to max of 10.

Test25_functionflyer: General: Input1: Entering 0.005, set Function

Output1: Verify that 0.005 is displayed.

Input2: Enter the following functions.

Function:
0.0003*x+5
0.00030*x+5.0
0.000300*x+5.0
0.00003*x+5
Output2: Click on the slider limits button and verify the step:
Step:
1.0e-4
1.0e-5
1.0e-6
1.0e-5

Test25_functionflyer: Specific Function: Input: Input (2+3*x)^2. Click Set Function. Click show Tabular Data

Output: A plot of the graph and the following data in the tabular data window:

x f(x)
-10.00 784.00
-9.6 718.24
-9.2 655.36
-8.8 595.36
-8.4 538.24
-8.00 484.00
-7.6 432.64
-7.2 384.16
-6.8 338.56
-6.4 295.84
-6.00 256.00
-5.6 219.04
-5.2 184.96
-4.8 153.76
-4.4 125.44
-4.00 100.00
-3.6 77.44
-3.2 57.76
-2.8 40.96
-2.4 27.04
-2.00 16.00
-1.6 7.84
-1.2 2.56
-0.8 0.16
-0.4 0.64
0.00 4.00
0.4 10.24
0.8 19.36
1.2 31.36
1.6 46.24
2.00 64.00
2.4 84.64
2.8 108.16
3.2 134.56
3.6 163.84
4.00 196.00
4.4 231.04
4.8 268.96
5.2 309.76
5.6 353.44
6.00 400.00
6.4 449.44
6.8 501.76
7.2 556.96
7.6 615.04
8.00 676.00
8.4 739.84
8.8 806.56
9.2 876.16
9.6 948.64
10.00 1024.00

Data Flyer Specific Test Cases:

Test1_flydata: Sum of Squares Input1: Initial function F(x)=x. Entering the following values in the Data window:
4 9
-2 -8
6,-4
Click the Plot Data button.

Output1: Verify that the correct data points are displayed on the graph.
Verify that the value of for "Sum of squares of deviations" is not 0.

Input2: With the data points still on the graph, click on the Show Squares checkbox.
Output: Verify that squares are drawn on the graph for each data point.

Input3: Click on the Show Deviations button.
Output3: Verify the following values appear:
X Y Dev^2
4.00 9.00 25.00
-2.00 -8.00 36.00
6.00 -4.00 100.00
Input4: Click the Close button in the Deviations window.

Output4: Verify that window closes. Repeat by clicking the Show Deviations button again and closing it with the red window button.

Input5: Click and uncheck the Show Squares checkbox.

Output5: Verify that the squares are removed from the graph.

Input6: Click the Clear Data button.

Output6: Verify that the data is removed from the Data window and the points are removed from the graph.

Test2_flydata: Auto Window Input: Enter a single data point, (10,0) in the Data window. Click on the Auto window checkbox.
Output: Verify that the graph focuses in on the data point.