@@ -357,7 +426,7 @@ exports[`Results View The table should match snapshot and other elements should
@@ -452,7 +521,7 @@ exports[`Results View The table should match snapshot and other elements should
-
- Not sorted by CD
+ Not sorted by Magnitude
- CD
-
-
-
-
+ Magnitude
+
+ (
+ 4
+ )
+
-
- Not sorted by CLES (%)
-
- CLES (%)
-
+
@@ -575,7 +640,7 @@ exports[`Results View The table should match snapshot and other elements should
- 0 %
+ +1.85%
- -
-
-
-
@@ -917,7 +976,7 @@ exports[`Results View The table should match snapshot and other elements should
data-testid="expand-revision-button"
>
- 0 %
+ +1.08%
- -
-
-
-
@@ -1116,7 +1169,7 @@ exports[`Results View The table should match snapshot and other elements should
data-testid="expand-revision-button"
>
- 0 %
+ -2.40%
- -
-
-
-
@@ -1315,7 +1362,7 @@ exports[`Results View The table should match snapshot and other elements should
data-testid="expand-revision-button"
>
- 0 %
+ -2.40%
- -
-
-
-
@@ -1514,7 +1555,7 @@ exports[`Results View The table should match snapshot and other elements should
data-testid="expand-revision-button"
>
@@ -974,6 +974,142 @@ exports[`Results Table Should match snapshot 1`] = `
+
+
+
+
+
+
+
+
+ How to read the results
+
+
+
+ Each row is one
+
+ platform
+
+ .
+
+ Base
+
+ is the old build;
+
+ New
+
+ is your change.
+
+
+
+ Base
+
+ and
+
+ New
+
+ show the average result for each build, in the test's unit.
+
+
+
+ Δ Median %
+
+ shows how much the middle result moved from Base to New. A plus sign means New is higher; a minus sign means New is lower.
+
+
+
+ Status
+
+ says whether the change is an
+
+
+ Improvement
+
+ , a
+
+ Regression
+
+ , or
+
+
+ No change
+
+ .
+
+
+
+ Magnitude
+
+ says how big the difference is: negligible, small, medium, or large. Sort or filter by it to focus on the biggest changes.
+
+
+
+ Significance
+
+ tells you whether the difference is likely a
+
+ Real
+
+ change or just
+
+ Noise
+
+ (random run-to-run variation).
+
+
+ Tick
+
+ Advanced columns
+
+ to add the expert stats (Cliff's Delta and CLES).
+
+
+
+
+
+
+
+
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
+ talos
+
+
-
-
-
-
-
-
-
-
+
+
+
+
+
-
-
-
-
-
-
-
- talos
-
-
-
-
-
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
- Mann-Whitney-U
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
+
+
+
+ All revisions
+
+
+
-
-
-
+
- All revisions
+
+
+
-
-
-
-
-
+
+
-
-
+ Download JSON
+
+
- Download JSON
+ Advanced columns
+
+
+
+
+
-
-
-
-
+
+
+
+
+
+
+
+
+ Expand all
+
+
+
@@ -1330,7 +1535,7 @@ exports[`Results Table Should match snapshot 1`] = `
@@ -1411,10 +1616,10 @@ exports[`Results Table Should match snapshot 1`] = `
d="M16 17.01V10h-2v7.01h-3L15 21l4-3.99zM9 3 5 6.99h3V14h2V6.99h3z"
/>
- Not sorted by MD (%)
+ Not sorted by Δ Median
- MD (%)
+ Δ Median
@@ -1425,7 +1630,7 @@ exports[`Results Table Should match snapshot 1`] = `
-
- Not sorted by CD
+ Not sorted by Magnitude
- CD
-
-
-
-
+ Magnitude
+
+ (
+ 4
+ )
+
-
- Not sorted by CLES (%)
-
- CLES (%)
-
+
@@ -1548,7 +1749,7 @@ exports[`Results Table Should match snapshot 1`] = `
- 0 %
+ +1.85%
- -
-
-
-
@@ -1890,7 +2085,7 @@ exports[`Results Table Should match snapshot 1`] = `
data-testid="expand-revision-button"
>
- 0 %
+ +1.08%
- -
-
-
-
@@ -2089,7 +2278,7 @@ exports[`Results Table Should match snapshot 1`] = `
data-testid="expand-revision-button"
>
- 0 %
+ -2.40%
- -
-
-
-
@@ -2288,7 +2471,7 @@ exports[`Results Table Should match snapshot 1`] = `
data-testid="expand-revision-button"
>
- 0 %
+ -2.40%
- -
-
-
-
@@ -2574,7 +2751,7 @@ exports[`Results Table Should match snapshot 1`] = `
data-testid="expand-revision-button"
>
@@ -2639,7 +2816,7 @@ exports[`Results Table can load the sort parameters from the URL for a descendin
exports[`Results Table can load the sort parameters from the URL for an ascending sort 1`] = `
@@ -2664,7 +2841,7 @@ exports[`Results Table can load the sort parameters from the URL for an ascendin
exports[`Results Table can sort the table and persist the sort parameters to the URL 1`] = `
@@ -2689,7 +2866,7 @@ exports[`Results Table can sort the table and persist the sort parameters to the
exports[`Results Table can sort the table and persist the sort parameters to the URL 2`] = `
@@ -2734,7 +2911,7 @@ exports[`Results Table can sort the table and persist the sort parameters to the
exports[`Results Table can sort the table and persist the sort parameters to the URL 3`] = `
@@ -2787,7 +2964,7 @@ exports[`Results Table can sort the table and persist the sort parameters to the
exports[`Results Table can sort the table and persist the sort parameters to the URL 4`] = `
@@ -2840,7 +3017,7 @@ exports[`Results Table can sort the table and persist the sort parameters to the
exports[`Results Table can sort the table and persist the sort parameters to the URL 5`] = `
@@ -3224,7 +3401,7 @@ exports[`Results Table for MannWhitneyResultsItem for mann-whitney-u testVersion
autocapitalize="none"
autocomplete="off"
class="MuiInputBase-input MuiOutlinedInput-input MuiInputBase-inputSizeSmall MuiInputBase-inputAdornedStart MuiInputBase-inputAdornedEnd MuiAutocomplete-input MuiAutocomplete-inputFocused css-16cokj7-MuiInputBase-input-MuiOutlinedInput-input"
- id="_r_qb_"
+ id="_r_rh_"
placeholder="Search by revision ID or author email"
role="combobox"
spellcheck="false"
@@ -3551,7 +3728,7 @@ exports[`Results Table for MannWhitneyResultsItem for mann-whitney-u testVersion
autocapitalize="none"
autocomplete="off"
class="MuiInputBase-input MuiOutlinedInput-input MuiInputBase-inputSizeSmall MuiInputBase-inputAdornedStart MuiInputBase-inputAdornedEnd MuiAutocomplete-input MuiAutocomplete-inputFocused css-16cokj7-MuiInputBase-input-MuiOutlinedInput-input"
- id="_r_qj_"
+ id="_r_rp_"
placeholder="Search by revision ID or author email"
role="combobox"
spellcheck="false"
@@ -3777,7 +3954,7 @@ exports[`Results Table for MannWhitneyResultsItem for mann-whitney-u testVersion
class="MuiGrid-root MuiGrid-direction-xs-row MuiGrid-grid-xs-12 css-16nz7cf-MuiGrid-root"
>
@@ -3857,6 +4034,142 @@ exports[`Results Table for MannWhitneyResultsItem for mann-whitney-u testVersion
+
+
+
+
+
+
+
+
+ How to read the results
+
+
+
+ Each row is one
+
+ platform
+
+ .
+
+ Base
+
+ is the old build;
+
+ New
+
+ is your change.
+
+
+
+ Base
+
+ and
+
+ New
+
+ show the average result for each build, in the test's unit.
+
+
+
+ Δ Median %
+
+ shows how much the middle result moved from Base to New. A plus sign means New is higher; a minus sign means New is lower.
+
+
+
+ Status
+
+ says whether the change is an
+
+
+ Improvement
+
+ , a
+
+ Regression
+
+ , or
+
+
+ No change
+
+ .
+
+
+
+ Magnitude
+
+ says how big the difference is: negligible, small, medium, or large. Sort or filter by it to focus on the biggest changes.
+
+
+
+ Significance
+
+ tells you whether the difference is likely a
+
+ Real
+
+ change or just
+
+ Noise
+
+ (random run-to-run variation).
+
+
+ Tick
+
+ Advanced columns
+
+ to add the expert stats (Cliff's Delta and CLES).
+
+
+
+
+
+
+
+
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
+ talos
+
+
-
-
-
-
-
-
-
-
+
+
+
+
+
-
-
-
-
-
-
-
- talos
-
-
-
-
-
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
- Mann-Whitney-U
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
+
+
+
+ All revisions
+
+
+
-
-
-
+
- All revisions
+
+
+
-
-
-
-
-
+
+
-
-
+ Download JSON
+
+
- Download JSON
+ Advanced columns
+
+
+
+
+
-
-
-
-
+
+
+
+
+
+
+
+
+ Expand all
+
+
+
@@ -4213,7 +4595,7 @@ exports[`Results Table for MannWhitneyResultsItem for mann-whitney-u testVersion
@@ -4294,10 +4676,10 @@ exports[`Results Table for MannWhitneyResultsItem for mann-whitney-u testVersion
d="M16 17.01V10h-2v7.01h-3L15 21l4-3.99zM9 3 5 6.99h3V14h2V6.99h3z"
/>
- Not sorted by MD (%)
+ Not sorted by Δ Median
- MD (%)
+ Δ Median
@@ -4308,7 +4690,7 @@ exports[`Results Table for MannWhitneyResultsItem for mann-whitney-u testVersion
@@ -4376,8 +4758,8 @@ exports[`Results Table for MannWhitneyResultsItem for mann-whitney-u testVersion
data-mui-internal-clone-element="true"
>
@@ -4392,10 +4774,10 @@ exports[`Results Table for MannWhitneyResultsItem for mann-whitney-u testVersion
d="M16 17.01V10h-2v7.01h-3L15 21l4-3.99zM9 3 5 6.99h3V14h2V6.99h3z"
/>
- Not sorted by CLES (%)
+ Not sorted by CLES
- CLES (%)
+ CLES
@@ -4409,7 +4791,7 @@ exports[`Results Table for MannWhitneyResultsItem for mann-whitney-u testVersion
>
@@ -4431,7 +4813,7 @@ exports[`Results Table for MannWhitneyResultsItem for mann-whitney-u testVersion
- 1.849 %
+ +1.85%
- -
+ Noise
- 1.078 %
+ +1.08%
- -
+ Noise
- -2.401 %
+ -2.40%
-
-
-
-
+ Real
-
-
-
-
+ Real
@@ -5570,7 +5926,7 @@ exports[`Results Table for MannWhitneyResultsItem for mann-whitney-u testVersion
exports[`Results Table for MannWhitneyResultsItem for mann-whitney-u testVersion can sort params from the URL on mann-whitney-u test_version 2`] = `
@@ -5595,7 +5951,7 @@ exports[`Results Table for MannWhitneyResultsItem for mann-whitney-u testVersion
exports[`Results Table for MannWhitneyResultsItem for mann-whitney-u testVersion can sort params from the URL on mann-whitney-u test_version 3`] = `
@@ -5640,7 +5996,7 @@ exports[`Results Table for MannWhitneyResultsItem for mann-whitney-u testVersion
exports[`Results Table for MannWhitneyResultsItem for mann-whitney-u testVersion can sort params from the URL on mann-whitney-u test_version 4`] = `
@@ -5684,7 +6040,7 @@ exports[`Results Table for MannWhitneyResultsItem for mann-whitney-u testVersion
exports[`Results Table for MannWhitneyResultsItem for mann-whitney-u testVersion can sort params from the URL on mann-whitney-u test_version 5`] = `
@@ -5735,8 +6091,8 @@ exports[`Results Table for MannWhitneyResultsItem for mann-whitney-u testVersion
exports[`Results Table for MannWhitneyResultsItem for mann-whitney-u testVersion can sort params from the URL on mann-whitney-u test_version 6`] = `
@@ -5751,10 +6107,10 @@ exports[`Results Table for MannWhitneyResultsItem for mann-whitney-u testVersion
d="M11 6.83 9.41 8.41 8 7l4-4 4 4-1.41 1.41L13 6.83V21h-2z"
/>
- Sorted by CLES (%) in descending order
+ Sorted by CLES in descending order
- CLES (%)
+ CLES
@@ -5780,8 +6136,8 @@ exports[`Results Table for MannWhitneyResultsItem for mann-whitney-u testVersion
exports[`Results Table for MannWhitneyResultsItem for mann-whitney-u testVersion can sort params from the URL on mann-whitney-u test_version 7`] = `
@@ -5796,10 +6152,10 @@ exports[`Results Table for MannWhitneyResultsItem for mann-whitney-u testVersion
d="M11 6.83 9.41 8.41 8 7l4-4 4 4-1.41 1.41L13 6.83V21h-2z"
/>
- Sorted by CLES (%) in ascending order
+ Sorted by CLES in ascending order
- CLES (%)
+ CLES
@@ -5835,33 +6191,33 @@ exports[`Results Table for MannWhitneyResultsItem for mann-whitney-u testVersion
[
"a11yr dhtml.html opt e10s fission stylo webrender",
" rev: spam",
- " - Linux 18.04, 1.849 %, Regression, -, -, 45.00 %",
- " - macOS 10.15, 1.078 %, Improvement, 0.1, -, 25.00 %",
- " - Windows 10, -, , -, , 100.00 %",
- " - Windows 10, -2.401 %, , -, , 50.00 %",
+ " - Linux 18.04, +1.85%, Regression, -, Noise, 45.00 %",
+ " - macOS 10.15, +1.08%, Improvement, 0.1, Noise, 25.00 %",
+ " - Windows 10, -, , -, Real, 100.00 %",
+ " - Windows 10, -2.40%, , -, Real, 50.00 %",
" rev: tictactoe",
- " - Linux 18.04, 1.849 %, Regression, 0.8, -, 44.00 %",
- " - macOS 10.15, 1.078 %, Improvement, 0.9, -, 24.00 %",
- " - Windows 10, -, , 0.8, , 99.00 %",
- " - Windows 10, -2.401 %, , 0.8, , 49.00 %",
+ " - Linux 18.04, +1.85%, Regression, 0.8, Noise, 44.00 %",
+ " - macOS 10.15, +1.08%, Improvement, 0.9, Noise, 24.00 %",
+ " - Windows 10, -, , 0.8, Real, 99.00 %",
+ " - Windows 10, -2.40%, , 0.8, Real, 49.00 %",
"a11yr aria.html opt e10s fission stylo webrender",
" rev: spam",
- " - Linux 18.04, 1.849 %, Regression, 1.2, -, 44.00 %",
- " - macOS 10.15, 1.078 %, Improvement, 1.3, -, 24.00 %",
- " - Windows 10, -, , 1.2, , 99.00 %",
- " - Windows 10, -2.401 %, , 1.2, , 49.00 %",
+ " - Linux 18.04, +1.85%, Regression, 1.2, Noise, 44.00 %",
+ " - macOS 10.15, +1.08%, Improvement, 1.3, Noise, 24.00 %",
+ " - Windows 10, -, , 1.2, Real, 99.00 %",
+ " - Windows 10, -2.40%, , 1.2, Real, 49.00 %",
" rev: tictactoe",
- " - Linux 18.04, 1.849 %, Regression, 2, -, 43.00 %",
- " - macOS 10.15, 1.078 %, Improvement, 2.1, -, 23.00 %",
- " - Windows 10, -, , 2, , 98.00 %",
- " - Windows 10, -2.401 %, , 2, , 48.00 %",
+ " - Linux 18.04, +1.85%, Regression, 2, Noise, 43.00 %",
+ " - macOS 10.15, +1.08%, Improvement, 2.1, Noise, 23.00 %",
+ " - Windows 10, -, , 2, Real, 98.00 %",
+ " - Windows 10, -2.40%, , 2, Real, 48.00 %",
]
`;
exports[`Results Table for MannWhitneyResultsItem for mann-whitney-u testVersion can sort params from the URL on mann-whitney-u test_version 9`] = `
@@ -5876,10 +6232,10 @@ exports[`Results Table for MannWhitneyResultsItem for mann-whitney-u testVersion
d="M11 6.83 9.41 8.41 8 7l4-4 4 4-1.41 1.41L13 6.83V21h-2z"
/>
- Sorted by MD (%) in descending order
+ Sorted by Δ Median in descending order
- MD (%)
+ Δ Median
@@ -5907,33 +6263,33 @@ exports[`Results Table for MannWhitneyResultsItem for mann-whitney-u testVersion
[
"a11yr dhtml.html opt e10s fission stylo webrender",
" rev: spam",
- " - Windows 10, -2.401 %, , -, , 50.00 %",
- " - Windows 10, -, , -, , 100.00 %",
- " - macOS 10.15, 1.078 %, Improvement, 0.1, -, 25.00 %",
- " - Linux 18.04, 1.849 %, Regression, -, -, 45.00 %",
+ " - Windows 10, -2.40%, , -, Real, 50.00 %",
+ " - Windows 10, -, , -, Real, 100.00 %",
+ " - macOS 10.15, +1.08%, Improvement, 0.1, Noise, 25.00 %",
+ " - Linux 18.04, +1.85%, Regression, -, Noise, 45.00 %",
" rev: tictactoe",
- " - Windows 10, -2.401 %, , 0.8, , 49.00 %",
- " - Windows 10, -, , 0.8, , 99.00 %",
- " - macOS 10.15, 1.078 %, Improvement, 0.9, -, 24.00 %",
- " - Linux 18.04, 1.849 %, Regression, 0.8, -, 44.00 %",
+ " - Windows 10, -2.40%, , 0.8, Real, 49.00 %",
+ " - Windows 10, -, , 0.8, Real, 99.00 %",
+ " - macOS 10.15, +1.08%, Improvement, 0.9, Noise, 24.00 %",
+ " - Linux 18.04, +1.85%, Regression, 0.8, Noise, 44.00 %",
"a11yr aria.html opt e10s fission stylo webrender",
" rev: spam",
- " - Windows 10, -2.401 %, , 1.2, , 49.00 %",
- " - Windows 10, -, , 1.2, , 99.00 %",
- " - macOS 10.15, 1.078 %, Improvement, 1.3, -, 24.00 %",
- " - Linux 18.04, 1.849 %, Regression, 1.2, -, 44.00 %",
+ " - Windows 10, -2.40%, , 1.2, Real, 49.00 %",
+ " - Windows 10, -, , 1.2, Real, 99.00 %",
+ " - macOS 10.15, +1.08%, Improvement, 1.3, Noise, 24.00 %",
+ " - Linux 18.04, +1.85%, Regression, 1.2, Noise, 44.00 %",
" rev: tictactoe",
- " - Windows 10, -2.401 %, , 2, , 48.00 %",
- " - Windows 10, -, , 2, , 98.00 %",
- " - macOS 10.15, 1.078 %, Improvement, 2.1, -, 23.00 %",
- " - Linux 18.04, 1.849 %, Regression, 2, -, 43.00 %",
+ " - Windows 10, -2.40%, , 2, Real, 48.00 %",
+ " - Windows 10, -, , 2, Real, 98.00 %",
+ " - macOS 10.15, +1.08%, Improvement, 2.1, Noise, 23.00 %",
+ " - Linux 18.04, +1.85%, Regression, 2, Noise, 43.00 %",
]
`;
exports[`Results Table for MannWhitneyResultsItem for mann-whitney-u testVersion can sort params from the URL on mann-whitney-u test_version 11`] = `
@@ -5948,10 +6304,10 @@ exports[`Results Table for MannWhitneyResultsItem for mann-whitney-u testVersion
d="M11 6.83 9.41 8.41 8 7l4-4 4 4-1.41 1.41L13 6.83V21h-2z"
/>
- Sorted by MD (%) in ascending order
+ Sorted by Δ Median in ascending order
- MD (%)
+ Δ Median
@@ -5988,7 +6344,7 @@ exports[`Results Table for MannWhitneyResultsItem for mann-whitney-u testVersion
aria-controls="significance"
aria-haspopup="true"
aria-label="Sig (Click to filter values)"
- class="MuiButtonBase-root MuiButtonGroup-grouped MuiButtonGroup-groupedHorizontal MuiButtonGroup-groupedContained MuiButtonGroup-groupedContainedHorizontal MuiButtonGroup-groupedContainedTableHeaderButton MuiButton-root MuiButton-contained MuiButton-containedTableHeaderButton MuiButton-sizeSmall MuiButton-containedSizeSmall MuiButton-colorTableHeaderButton MuiButton-disableElevation MuiButtonGroup-lastButton css-l81dbu-MuiButtonBase-root-MuiButton-root"
+ class="MuiButtonBase-root MuiButtonGroup-grouped MuiButtonGroup-groupedHorizontal MuiButtonGroup-groupedContained MuiButtonGroup-groupedContainedHorizontal MuiButtonGroup-groupedContainedTableHeaderButton MuiButton-root MuiButton-contained MuiButton-containedTableHeaderButton MuiButton-sizeSmall MuiButton-containedSizeSmall MuiButton-colorTableHeaderButton MuiButton-disableElevation MuiButtonGroup-lastButton css-kne8o5-MuiButtonBase-root-MuiButton-root"
data-mui-internal-clone-element="true"
tabindex="0"
type="button"
@@ -6038,7 +6394,7 @@ exports[`Results Table for MannWhitneyResultsItem for mann-whitney-u testVersion
exports[`Results Table for MannWhitneyResultsItem for mann-whitney-u testVersion should render different blocks when rendering several revisions 1`] = `
- 1.078 %
+ +1.08%
- -
+ Noise
- 1.078 %
+ +1.08%
- -
+ Noise
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
+ build_metrics
+
+
-
-
-
-
-
-
-
-
+
+
+
+
+
-
-
-
-
-
-
-
- build_metrics
-
-
-
-
-
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
- Mann-Whitney-U
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
+
+
+
+ All revisions
+
+
+
-
-
-
+
- All revisions
+
+
+
-
-
-
-
-
+
+
-
-
+ Download JSON
+
+
- Download JSON
+ Advanced columns
+
+
+
+
+
-
-
-
-
+
+
+
+
+
+
+
+
+ Expand all
+
+
+
@@ -1512,7 +1579,7 @@ exports[`Results View The table should match snapshot and other elements should
@@ -1593,10 +1660,10 @@ exports[`Results View The table should match snapshot and other elements should
d="M16 17.01V10h-2v7.01h-3L15 21l4-3.99zM9 3 5 6.99h3V14h2V6.99h3z"
/>
- Not sorted by MD (%)
+ Not sorted by Δ Median
- MD (%)
+ Δ Median
@@ -1607,7 +1674,7 @@ exports[`Results View The table should match snapshot and other elements should
-
- Not sorted by CD
+ Not sorted by Magnitude
- CD
-
-
-
-
+ Magnitude
+
+ (
+ 4
+ )
+
-
- Not sorted by CLES (%)
-
- CLES (%)
-
+
@@ -1730,7 +1793,7 @@ exports[`Results View The table should match snapshot and other elements should
- 0 %
+ +1.85%
- -
-
-
-
@@ -2072,7 +2129,7 @@ exports[`Results View The table should match snapshot and other elements should
data-testid="expand-revision-button"
>
- 0 %
+ +1.08%
- -
-
-
-
@@ -2271,7 +2322,7 @@ exports[`Results View The table should match snapshot and other elements should
data-testid="expand-revision-button"
>
- 0 %
+ -2.40%
- -
-
-
-
@@ -2470,7 +2515,7 @@ exports[`Results View The table should match snapshot and other elements should
data-testid="expand-revision-button"
>
- 0 %
+ -2.40%
- -
-
-
-
@@ -2669,7 +2708,7 @@ exports[`Results View The table should match snapshot and other elements should
data-testid="expand-revision-button"
>
@@ -28,7 +28,7 @@ exports[`SubtestsResultsView Component Tests for mann-whitney-u testVersion tabl
exports[`SubtestsResultsView Component Tests for mann-whitney-u testVersion table sorting can sort the table and persist the information to the URL of mann-whitney-u values 2`] = `
@@ -73,7 +73,7 @@ exports[`SubtestsResultsView Component Tests for mann-whitney-u testVersion tabl
exports[`SubtestsResultsView Component Tests for mann-whitney-u testVersion table sorting can sort the table and persist the information to the URL of mann-whitney-u values 3`] = `
@@ -126,7 +126,7 @@ exports[`SubtestsResultsView Component Tests for mann-whitney-u testVersion tabl
exports[`SubtestsResultsView Component Tests for mann-whitney-u testVersion table sorting can sort the table and persist the information to the URL of mann-whitney-u values 4`] = `
@@ -179,7 +179,7 @@ exports[`SubtestsResultsView Component Tests for mann-whitney-u testVersion tabl
exports[`SubtestsResultsView Component Tests for mann-whitney-u testVersion table sorting can sort the table and persist the information to the URL of mann-whitney-u values 5`] = `
@@ -222,8 +222,8 @@ exports[`SubtestsResultsView Component Tests for mann-whitney-u testVersion tabl
exports[`SubtestsResultsView Component Tests for mann-whitney-u testVersion table sorting can sort the table and persist the information to the URL of mann-whitney-u values 6`] = `
@@ -238,10 +238,10 @@ exports[`SubtestsResultsView Component Tests for mann-whitney-u testVersion tabl
d="M11 6.83 9.41 8.41 8 7l4-4 4 4-1.41 1.41L13 6.83V21h-2z"
/>
- Sorted by CLES (%) in descending order
+ Sorted by CLES in descending order
- CLES (%)
+ CLES
@@ -268,7 +268,7 @@ exports[`SubtestsResultsView Component Tests for mann-whitney-u testVersion tabl
exports[`SubtestsResultsView Component Tests for mann-whitney-u testVersion table sorting initializes the sort from the URL at load time for a descending sort 1`] = `
@@ -293,7 +293,7 @@ exports[`SubtestsResultsView Component Tests for mann-whitney-u testVersion tabl
exports[`SubtestsResultsView Component Tests for mann-whitney-u testVersion table sorting initializes the sort from the URL at load time for an ascending sort 1`] = `
@@ -318,7 +318,7 @@ exports[`SubtestsResultsView Component Tests for mann-whitney-u testVersion tabl
exports[`SubtestsResultsView Component Tests for mann-whitney-u testVersion table sorting initializes the sort from the URL at load time for an implicit descending sort 1`] = `
@@ -494,7 +494,7 @@ exports[`SubtestsResultsView Component Tests should render the subtests results
class="MuiGrid-root MuiGrid-direction-xs-row MuiGrid-grid-xs-12 css-16nz7cf-MuiGrid-root"
>
@@ -744,7 +744,7 @@ exports[`SubtestsResultsView Component Tests should render the subtests results
aria-invalid="false"
aria-label="Search by title"
class="MuiInputBase-input MuiOutlinedInput-input MuiInputBase-inputSizeSmall MuiInputBase-inputAdornedStart MuiInputBase-inputAdornedEnd css-3v3un6-MuiInputBase-input-MuiOutlinedInput-input"
- id="_r_n_"
+ id="_r_m_"
placeholder="Filter results"
type="search"
value=""
@@ -832,6 +832,35 @@ exports[`SubtestsResultsView Component Tests should render the subtests results
Retrigger test
+
+
+ Advanced columns
+
+
+
+
+
+
+
@@ -850,7 +879,7 @@ exports[`SubtestsResultsView Component Tests should render the subtests results
>
@@ -904,13 +933,13 @@ exports[`SubtestsResultsView Component Tests should render the subtests results
role="columnheader"
>
@@ -925,10 +954,10 @@ exports[`SubtestsResultsView Component Tests should render the subtests results
d="M16 17.01V10h-2v7.01h-3L15 21l4-3.99zM9 3 5 6.99h3V14h2V6.99h3z"
/>
- Not sorted by MD (%)
+ Not sorted by Δ Median
- MD (%)
+ Δ Median
@@ -939,7 +968,7 @@ exports[`SubtestsResultsView Component Tests should render the subtests results
-
- Not sorted by CD
+ Not sorted by Magnitude
- CD
-
-
-
-
+ Magnitude
+
+ (
+ 4
+ )
+
-
- Not sorted by CLES (%)
-
- CLES (%)
-
+
@@ -1062,7 +1087,7 @@ exports[`SubtestsResultsView Component Tests should render the subtests results
- 0 %
+ +1.14%
-
-
-
- 0.00%
-
- 0 %
+ +1.14%
-
-
-
- 0.00%
-
- 0 %
+ +1.14%
-
-
-
- 0.00%
-
- 0 %
+ +1.14%
-
-
-
- 0.00%
-
- 0 %
+ +0.98%
-
-
-
- 0.00%
-
@@ -1902,7 +1892,7 @@ exports[`SubtestsResultsView Component Tests table sorting can sort the table an
exports[`SubtestsResultsView Component Tests table sorting can sort the table and persist the information to the URL 2`] = `
@@ -1947,7 +1937,7 @@ exports[`SubtestsResultsView Component Tests table sorting can sort the table an
exports[`SubtestsResultsView Component Tests table sorting can sort the table and persist the information to the URL 3`] = `
@@ -2000,7 +1990,7 @@ exports[`SubtestsResultsView Component Tests table sorting can sort the table an
exports[`SubtestsResultsView Component Tests table sorting can sort the table and persist the information to the URL 4`] = `
@@ -2053,7 +2043,7 @@ exports[`SubtestsResultsView Component Tests table sorting can sort the table an
exports[`SubtestsResultsView Component Tests table sorting can sort the table and persist the information to the URL 5`] = `
@@ -2097,7 +2087,7 @@ exports[`SubtestsResultsView Component Tests table sorting can sort the table an
exports[`SubtestsResultsView Component Tests table sorting can sort the table and persist the information to the URL 6`] = `
@@ -2141,7 +2131,7 @@ exports[`SubtestsResultsView Component Tests table sorting can sort the table an
exports[`SubtestsResultsView Component Tests table sorting can sort the table and persist the information to the URL 7`] = `
@@ -2186,7 +2176,7 @@ exports[`SubtestsResultsView Component Tests table sorting can sort the table an
exports[`SubtestsResultsView Component Tests table sorting initializes the sort from the URL at load time for a descending sort 1`] = `
@@ -2211,7 +2201,7 @@ exports[`SubtestsResultsView Component Tests table sorting initializes the sort
exports[`SubtestsResultsView Component Tests table sorting initializes the sort from the URL at load time for an ascending sort 1`] = `
@@ -2236,7 +2226,7 @@ exports[`SubtestsResultsView Component Tests table sorting initializes the sort
exports[`SubtestsResultsView Component Tests table sorting initializes the sort from the URL at load time for an implicit descending sort 1`] = `
@@ -2413,7 +2403,7 @@ exports[`SubtestsViewCompareOverTime Component Tests in mann-whitney-u testVersi
class="MuiGrid-root MuiGrid-direction-xs-row MuiGrid-grid-xs-12 css-16nz7cf-MuiGrid-root"
>
@@ -2655,7 +2645,7 @@ exports[`SubtestsViewCompareOverTime Component Tests in mann-whitney-u testVersi
aria-invalid="false"
aria-label="Search by title"
class="MuiInputBase-input MuiOutlinedInput-input MuiInputBase-inputSizeSmall MuiInputBase-inputAdornedStart MuiInputBase-inputAdornedEnd css-3v3un6-MuiInputBase-input-MuiOutlinedInput-input"
- id="_r_sl_"
+ id="_r_tf_"
placeholder="Filter results"
type="search"
value=""
@@ -2743,6 +2733,35 @@ exports[`SubtestsViewCompareOverTime Component Tests in mann-whitney-u testVersi
Retrigger test
+
+
+ Advanced columns
+
+
+
+
+
+
+
@@ -2761,7 +2780,7 @@ exports[`SubtestsViewCompareOverTime Component Tests in mann-whitney-u testVersi
>
@@ -2815,13 +2834,13 @@ exports[`SubtestsViewCompareOverTime Component Tests in mann-whitney-u testVersi
role="columnheader"
>
@@ -2836,10 +2855,10 @@ exports[`SubtestsViewCompareOverTime Component Tests in mann-whitney-u testVersi
d="M16 17.01V10h-2v7.01h-3L15 21l4-3.99zM9 3 5 6.99h3V14h2V6.99h3z"
/>
- Not sorted by MD (%)
+ Not sorted by Δ Median
- MD (%)
+ Δ Median
@@ -2850,7 +2869,7 @@ exports[`SubtestsViewCompareOverTime Component Tests in mann-whitney-u testVersi
-
- Not sorted by CD
+ Not sorted by Magnitude
- CD
-
-
-
-
+ Magnitude
+
+ (
+ 4
+ )
+
-
- Not sorted by CLES (%)
-
- CLES (%)
-
+
@@ -2973,7 +2988,7 @@ exports[`SubtestsViewCompareOverTime Component Tests in mann-whitney-u testVersi
- 0.963 %
+ +1.14%
-
- -0.04
-
-
- 15.00%
+ Negligible
- -
+ Noise
- 1.135 %
+ +1.14%
-
- 0.02
-
-
- 60.00%
+ Negligible
-
-
-
-
+ Real
- 0.963 %
+ +1.14%
-
- -0.05
-
-
- 50.00%
+ Negligible
-
-
-
-
+ Real
- 1.135 %
+ +1.14%
-
- 0.12
-
-
- 25.00%
+ Small
-
-
-
-
+ Real
- 0.98 %
+ +0.98%
-
- 0.01
-
-
- 45.00%
+ Negligible
@@ -4257,7 +4198,7 @@ exports[`SubtestsViewCompareOverTime Component Tests in mann-whitney-u testVersi
aria-invalid="false"
aria-label="Search by title"
class="MuiInputBase-input MuiOutlinedInput-input MuiInputBase-inputSizeSmall MuiInputBase-inputAdornedStart MuiInputBase-inputAdornedEnd css-3v3un6-MuiInputBase-input-MuiOutlinedInput-input"
- id="_r_ps_"
+ id="_r_qk_"
placeholder="Filter results"
type="search"
value=""
@@ -4345,6 +4286,35 @@ exports[`SubtestsViewCompareOverTime Component Tests in mann-whitney-u testVersi
Retrigger test
+
+
+ Advanced columns
+
+
+
+
+
+
+
@@ -4363,7 +4333,7 @@ exports[`SubtestsViewCompareOverTime Component Tests in mann-whitney-u testVersi
>
@@ -4417,13 +4387,13 @@ exports[`SubtestsViewCompareOverTime Component Tests in mann-whitney-u testVersi
role="columnheader"
>
@@ -4438,10 +4408,10 @@ exports[`SubtestsViewCompareOverTime Component Tests in mann-whitney-u testVersi
d="M16 17.01V10h-2v7.01h-3L15 21l4-3.99zM9 3 5 6.99h3V14h2V6.99h3z"
/>
- Not sorted by MD (%)
+ Not sorted by Δ Median
- MD (%)
+ Δ Median
@@ -4452,7 +4422,7 @@ exports[`SubtestsViewCompareOverTime Component Tests in mann-whitney-u testVersi
-
- Not sorted by CD
+ Not sorted by Magnitude
- CD
-
-
-
-
+ Magnitude
+
+ (
+ 4
+ )
+
-
- Not sorted by CLES (%)
-
- CLES (%)
-
+
@@ -4575,7 +4541,7 @@ exports[`SubtestsViewCompareOverTime Component Tests in mann-whitney-u testVersi
@@ -7461,7 +7304,7 @@ exports[`SubtestsViewCompareOverTime Component Tests should render the subtests
aria-invalid="false"
aria-label="Search by title"
class="MuiInputBase-input MuiOutlinedInput-input MuiInputBase-inputSizeSmall MuiInputBase-inputAdornedStart MuiInputBase-inputAdornedEnd css-3v3un6-MuiInputBase-input-MuiOutlinedInput-input"
- id="_r_dd_"
+ id="_r_do_"
placeholder="Filter results"
type="search"
value=""
@@ -7549,6 +7392,35 @@ exports[`SubtestsViewCompareOverTime Component Tests should render the subtests
Retrigger test
+
+
+ Advanced columns
+
+
+
+
+
+
+
@@ -7567,7 +7439,7 @@ exports[`SubtestsViewCompareOverTime Component Tests should render the subtests
>
@@ -7621,13 +7493,13 @@ exports[`SubtestsViewCompareOverTime Component Tests should render the subtests
role="columnheader"
>
@@ -7642,10 +7514,10 @@ exports[`SubtestsViewCompareOverTime Component Tests should render the subtests
d="M16 17.01V10h-2v7.01h-3L15 21l4-3.99zM9 3 5 6.99h3V14h2V6.99h3z"
/>
- Not sorted by MD (%)
+ Not sorted by Δ Median
- MD (%)
+ Δ Median
@@ -7656,7 +7528,7 @@ exports[`SubtestsViewCompareOverTime Component Tests should render the subtests
-
- Not sorted by CD
+ Not sorted by Magnitude
- CD
-
-
-
-
+ Magnitude
+
+ (
+ 4
+ )
+
-
- Not sorted by CLES (%)
-
- CLES (%)
-
+
@@ -7779,7 +7647,7 @@ exports[`SubtestsViewCompareOverTime Component Tests should render the subtests
- 0 %
+ +1.14%
-
-
-
- 0.00%
-
- 0 %
+ +1.14%
-
-
-
- 0.00%
-
- 0 %
+ +1.14%
-
-
-
- 0.00%
-
- 0 %
+ +1.14%
-
-
-
- 0.00%
-
- 0 %
+ +0.98%
-
-
-
- 0.00%
-
@@ -1221,7 +1221,7 @@ exports[`Compare Over Time should have an edit mode in Results View: After click
autocapitalize="none"
autocomplete="off"
class="MuiInputBase-input MuiOutlinedInput-input MuiInputBase-inputSizeSmall MuiInputBase-inputAdornedStart MuiInputBase-inputAdornedEnd MuiAutocomplete-input MuiAutocomplete-inputFocused css-16cokj7-MuiInputBase-input-MuiOutlinedInput-input"
- id="_r_d1_"
+ id="_r_da_"
placeholder="Search by revision ID or author email"
role="combobox"
spellcheck="false"
@@ -2053,7 +2053,7 @@ exports[`Compare Over Time should remove the checked revision once X button is c
autocapitalize="none"
autocomplete="off"
class="MuiInputBase-input MuiOutlinedInput-input MuiInputBase-inputAdornedStart MuiInputBase-inputAdornedEnd MuiAutocomplete-input MuiAutocomplete-inputFocused css-9wexq8-MuiInputBase-input-MuiOutlinedInput-input"
- id="_r_7q_"
+ id="_r_7t_"
placeholder="Search by revision ID or author email"
role="combobox"
spellcheck="false"
@@ -2993,7 +2993,7 @@ exports[`Compare Over Time should update base repo, revisions and time-range aft
autocapitalize="none"
autocomplete="off"
class="MuiInputBase-input MuiOutlinedInput-input MuiInputBase-inputSizeSmall MuiInputBase-inputAdornedStart MuiInputBase-inputAdornedEnd MuiAutocomplete-input MuiAutocomplete-inputFocused css-16cokj7-MuiInputBase-input-MuiOutlinedInput-input"
- id="_r_ea_"
+ id="_r_em_"
placeholder="Search by revision ID or author email"
role="combobox"
spellcheck="false"
diff --git a/src/__tests__/Search/__snapshots__/CompareWithBase.test.tsx.snap b/src/__tests__/Search/__snapshots__/CompareWithBase.test.tsx.snap
index fd6e35eea..6daca9158 100644
--- a/src/__tests__/Search/__snapshots__/CompareWithBase.test.tsx.snap
+++ b/src/__tests__/Search/__snapshots__/CompareWithBase.test.tsx.snap
@@ -742,7 +742,7 @@ exports[`Compare With Base selects and displays new framework when clicked 1`] =
@@ -1028,7 +1028,7 @@ exports[`Compare With Base should have an edit mode in Results View: After click
autocapitalize="none"
autocomplete="off"
class="MuiInputBase-input MuiOutlinedInput-input MuiInputBase-inputSizeSmall MuiInputBase-inputAdornedStart MuiInputBase-inputAdornedEnd MuiAutocomplete-input MuiAutocomplete-inputFocused css-16cokj7-MuiInputBase-input-MuiOutlinedInput-input"
- id="_r_4c_"
+ id="_r_4f_"
placeholder="Search by revision ID or author email"
role="combobox"
spellcheck="false"
@@ -1375,7 +1375,7 @@ exports[`Compare With Base should have an edit mode in Results View: After click
autocapitalize="none"
autocomplete="off"
class="MuiInputBase-input MuiOutlinedInput-input MuiInputBase-inputSizeSmall MuiInputBase-inputAdornedStart MuiInputBase-inputAdornedEnd MuiAutocomplete-input MuiAutocomplete-inputFocused css-16cokj7-MuiInputBase-input-MuiOutlinedInput-input"
- id="_r_4l_"
+ id="_r_4o_"
placeholder="Search by revision ID or author email"
role="combobox"
spellcheck="false"
@@ -1626,7 +1626,7 @@ exports[`Compare With Base should have an edit mode in Results View: After click
autocapitalize="none"
autocomplete="off"
class="MuiInputBase-input MuiOutlinedInput-input MuiInputBase-inputSizeSmall MuiInputBase-inputAdornedStart MuiInputBase-inputAdornedEnd MuiAutocomplete-input MuiAutocomplete-inputFocused css-16cokj7-MuiInputBase-input-MuiOutlinedInput-input"
- id="_r_4c_"
+ id="_r_4f_"
placeholder="Search by revision ID or author email"
role="combobox"
spellcheck="false"
@@ -1973,7 +1973,7 @@ exports[`Compare With Base should have an edit mode in Results View: After click
autocapitalize="none"
autocomplete="off"
class="MuiInputBase-input MuiOutlinedInput-input MuiInputBase-inputSizeSmall MuiInputBase-inputAdornedStart MuiInputBase-inputAdornedEnd MuiAutocomplete-input MuiAutocomplete-inputFocused css-16cokj7-MuiInputBase-input-MuiOutlinedInput-input"
- id="_r_4l_"
+ id="_r_4o_"
placeholder="Search by revision ID or author email"
role="combobox"
spellcheck="false"
@@ -2388,7 +2388,7 @@ exports[`Compare With Base should have an edit mode in Results View: Initial sta
autocapitalize="none"
autocomplete="off"
class="MuiInputBase-input MuiOutlinedInput-input MuiInputBase-inputSizeSmall MuiInputBase-inputAdornedStart MuiInputBase-inputAdornedEnd MuiAutocomplete-input MuiAutocomplete-inputFocused css-16cokj7-MuiInputBase-input-MuiOutlinedInput-input"
- id="_r_4c_"
+ id="_r_4f_"
placeholder="Search by revision ID or author email"
role="combobox"
spellcheck="false"
@@ -2735,7 +2735,7 @@ exports[`Compare With Base should have an edit mode in Results View: Initial sta
autocapitalize="none"
autocomplete="off"
class="MuiInputBase-input MuiOutlinedInput-input MuiInputBase-inputSizeSmall MuiInputBase-inputAdornedStart MuiInputBase-inputAdornedEnd MuiAutocomplete-input MuiAutocomplete-inputFocused css-16cokj7-MuiInputBase-input-MuiOutlinedInput-input"
- id="_r_4l_"
+ id="_r_4o_"
placeholder="Search by revision ID or author email"
role="combobox"
spellcheck="false"
@@ -3154,7 +3154,7 @@ exports[`Compare With Base should have an edit mode in Results View: after remov
autocapitalize="none"
autocomplete="off"
class="MuiInputBase-input MuiOutlinedInput-input MuiInputBase-inputSizeSmall MuiInputBase-inputAdornedStart MuiInputBase-inputAdornedEnd MuiAutocomplete-input MuiAutocomplete-inputFocused css-16cokj7-MuiInputBase-input-MuiOutlinedInput-input"
- id="_r_4c_"
+ id="_r_4f_"
placeholder="Search by revision ID or author email"
role="combobox"
spellcheck="false"
@@ -3341,7 +3341,7 @@ exports[`Compare With Base should have an edit mode in Results View: after remov
autocapitalize="none"
autocomplete="off"
class="MuiInputBase-input MuiOutlinedInput-input MuiInputBase-inputSizeSmall MuiInputBase-inputAdornedStart MuiInputBase-inputAdornedEnd MuiAutocomplete-input MuiAutocomplete-inputFocused css-16cokj7-MuiInputBase-input-MuiOutlinedInput-input"
- id="_r_4l_"
+ id="_r_4o_"
placeholder="Search by revision ID or author email"
role="combobox"
spellcheck="false"
@@ -3792,7 +3792,7 @@ exports[`Compare With Base should have an edit mode in Results View: after remov
autocapitalize="none"
autocomplete="off"
class="MuiInputBase-input MuiOutlinedInput-input MuiInputBase-inputSizeSmall MuiInputBase-inputAdornedStart MuiInputBase-inputAdornedEnd MuiAutocomplete-input MuiAutocomplete-inputFocused css-16cokj7-MuiInputBase-input-MuiOutlinedInput-input"
- id="_r_4c_"
+ id="_r_4f_"
placeholder="Search by revision ID or author email"
role="combobox"
spellcheck="false"
@@ -4139,7 +4139,7 @@ exports[`Compare With Base should have an edit mode in Results View: after remov
autocapitalize="none"
autocomplete="off"
class="MuiInputBase-input MuiOutlinedInput-input MuiInputBase-inputSizeSmall MuiInputBase-inputAdornedStart MuiInputBase-inputAdornedEnd MuiAutocomplete-input MuiAutocomplete-inputFocused css-16cokj7-MuiInputBase-input-MuiOutlinedInput-input"
- id="_r_4l_"
+ id="_r_4o_"
placeholder="Search by revision ID or author email"
role="combobox"
spellcheck="false"
@@ -4585,7 +4585,7 @@ exports[`Compare With Base should remove the checked revision once X button is c
autocapitalize="none"
autocomplete="off"
class="MuiInputBase-input MuiOutlinedInput-input MuiInputBase-inputAdornedStart MuiInputBase-inputAdornedEnd MuiAutocomplete-input MuiAutocomplete-inputFocused css-9wexq8-MuiInputBase-input-MuiOutlinedInput-input"
- id="_r_37_"
+ id="_r_3a_"
placeholder="Search by revision ID or author email"
role="combobox"
spellcheck="false"
@@ -4772,7 +4772,7 @@ exports[`Compare With Base should remove the checked revision once X button is c
autocapitalize="none"
autocomplete="off"
class="MuiInputBase-input MuiOutlinedInput-input MuiInputBase-inputAdornedStart MuiInputBase-inputAdornedEnd MuiAutocomplete-input MuiAutocomplete-inputFocused css-9wexq8-MuiInputBase-input-MuiOutlinedInput-input"
- id="_r_3c_"
+ id="_r_3f_"
placeholder="Search by revision ID or author email"
role="combobox"
spellcheck="false"
@@ -5238,7 +5238,7 @@ exports[`Compare With Base should remove the checked revision once X button is c
autocapitalize="none"
autocomplete="off"
class="MuiInputBase-input MuiOutlinedInput-input MuiInputBase-inputAdornedStart MuiInputBase-inputAdornedEnd MuiAutocomplete-input MuiAutocomplete-inputFocused css-9wexq8-MuiInputBase-input-MuiOutlinedInput-input"
- id="_r_3o_"
+ id="_r_3r_"
placeholder="Search by revision ID or author email"
role="combobox"
spellcheck="false"
@@ -5395,7 +5395,7 @@ exports[`Compare With Base should remove the checked revision once X button is c
exports[`Compare With Base updates the framework and url when a new one is selected: after awsy is selected 1`] = `
diff --git a/src/__tests__/utils/test-utils.tsx b/src/__tests__/utils/test-utils.tsx
index c463034da..f6e9068a2 100644
--- a/src/__tests__/utils/test-utils.tsx
+++ b/src/__tests__/utils/test-utils.tsx
@@ -14,8 +14,21 @@ import { VirtuosoMockContext } from 'react-virtuoso';
import { store } from './setupTests';
import SnackbarCloseButton from '../../components/Shared/SnackbarCloseButton';
+import {
+ updateShowCliffsDelta,
+ updateShowCles,
+} from '../../reducers/ColumnPrefsSlice';
import getProtocolTheme from '../../theme/protocolTheme';
+// Turn on both advanced results columns (Cliff's Delta and CLES) for tests
+// that exercise them. They're hidden by default (simplified view), so call
+// this before rendering in tests that assert on those columns. The store is
+// recreated in each test's beforeEach, so this only affects the current test.
+export function enableAdvancedColumns() {
+ store.dispatch(updateShowCliffsDelta(true));
+ store.dispatch(updateShowCles(true));
+}
+
type ThemeConfig = Partial | null;
export function render(ui: React.ReactElement, themeConfig?: ThemeConfig) {
function Wrapper({ children }: { children: React.ReactNode }) {
diff --git a/src/common/constants.ts b/src/common/constants.ts
index cdafa0247..56a8e26b1 100644
--- a/src/common/constants.ts
+++ b/src/common/constants.ts
@@ -323,10 +323,20 @@ export const platformMap: Record = {
export const MANN_WHITNEY_U = 'mann-whitney-u' as TestVersion;
export const STUDENT_T = 'student-t' as TestVersion;
+// The results table locks to this width so the column headers never shrink
+// below their controls and collide. On narrower screens the page scrolls
+// horizontally instead (the sticky header and rows scroll together, since the
+// rows are virtualized in window-scroll mode).
+export const RESULTS_TABLE_MIN_WIDTH = '1200px';
+
+export const RESULTS_TABLE_MAX_WIDTH = '1450px';
+
export const tooltipSignificance =
'Significance of the comparison as determined by a Mann Whitney U test. A significant comparison has a p-value of less than 0.05.';
export const tooltipStatusMannWhitney =
'An improvement or regression being shown here means that the effect size is meaningful, and the difference has a significant p-value.';
+export const tooltipMagnitude =
+ 'How big the difference between Base and New is, in plain words: negligible (barely any), small, medium, or large. It comes from how much the two sets of results overlap — the less they overlap, the bigger the difference. Sort or filter by it to focus on the biggest changes.';
export const tooltipTotalRuns =
'The total number of tasks/jobs that ran for this metric.';
export const tooltipBaseMean =
@@ -338,4 +348,4 @@ export const tooltipConfidence =
export const tooltipDelta =
'The percentage difference between the Base and New values';
export const tooltipMedianDiff =
- 'Median Diff %: The percentage change in median from Base to New: ((New − Base) / Base) × 100.';
+ 'Shows how much the middle result changed from Base to New. We line up all the runs from smallest to biggest and pick the middle one for each side, then show the change as a percent. A positive sign means New is higher; a negative sign means New is lower.';
diff --git a/src/common/store.ts b/src/common/store.ts
index 0e46ee60d..dc1a9ed09 100644
--- a/src/common/store.ts
+++ b/src/common/store.ts
@@ -1,5 +1,6 @@
import { configureStore } from '@reduxjs/toolkit';
+import columnPrefs from '../reducers/ColumnPrefsSlice';
import comparison from '../reducers/ComparisonSlice';
import selectedRevisions from '../reducers/SelectedRevisionsSlice';
import theme from '../reducers/ThemeSlice';
@@ -10,6 +11,7 @@ export const createStore = () =>
theme,
selectedRevisions,
comparison,
+ columnPrefs,
},
});
diff --git a/src/common/testVersions/index.ts b/src/common/testVersions/index.ts
index bf0e1ecb3..ff1077a0c 100644
--- a/src/common/testVersions/index.ts
+++ b/src/common/testVersions/index.ts
@@ -3,18 +3,25 @@ import type { ReactNode } from 'react';
import { mannWhitneyStrategy } from './mannWhitney';
import { studentTStrategy } from './studentT';
import { CombinedResultsItemType } from '../../types/state';
-import { TableConfig, TestVersion } from '../../types/types';
+import { AdvancedColumns, TableConfig, TestVersion } from '../../types/types';
export interface TestVersionStrategy {
- getColumns(isSubtestTable: boolean): TableConfig;
+ getColumns(
+ isSubtestTable: boolean,
+ advancedColumns: AdvancedColumns,
+ ): TableConfig;
getAvgValues(result: CombinedResultsItemType): {
baseAvg: number | null;
newAvg: number | null;
};
- renderColumns(result: CombinedResultsItemType): ReactNode;
+ renderColumns(
+ result: CombinedResultsItemType,
+ advancedColumns: AdvancedColumns,
+ ): ReactNode;
renderSubtestColumns(
result: CombinedResultsItemType,
expanded: boolean,
+ advancedColumns: AdvancedColumns,
): ReactNode;
renderExpandedLeft(result: CombinedResultsItemType): ReactNode;
getComparisonResult(result: CombinedResultsItemType): string;
@@ -54,6 +61,7 @@ export function getStrategy(testVersion: TestVersion): TestVersionStrategy {
export function getColumnsForVersion(
testVersion: TestVersion,
isSubtestTable: boolean,
+ advancedColumns: AdvancedColumns,
): TableConfig {
- return registry[testVersion].getColumns(isSubtestTable);
+ return registry[testVersion].getColumns(isSubtestTable, advancedColumns);
}
diff --git a/src/common/testVersions/mannWhitney.tsx b/src/common/testVersions/mannWhitney.tsx
index 742855fd4..6b34c08a0 100644
--- a/src/common/testVersions/mannWhitney.tsx
+++ b/src/common/testVersions/mannWhitney.tsx
@@ -1,4 +1,3 @@
-import KeyboardDoubleArrowUpIcon from '@mui/icons-material/KeyboardDoubleArrowUp';
import ThumbDownIcon from '@mui/icons-material/ThumbDown';
import ThumbUpIcon from '@mui/icons-material/ThumbUp';
import WarningIcon from '@mui/icons-material/Warning';
@@ -13,7 +12,7 @@ import {
CombinedResultsItemType,
MannWhitneyResultsItem,
} from '../../types/state';
-import { TableConfig } from '../../types/types';
+import { AdvancedColumns, TableConfig } from '../../types/types';
import { bootstrapMedianDiffCI } from '../../utils/bootstrap-ci';
import { adaptUnit, formatNumber } from '../../utils/format';
import { capitalize } from '../../utils/helpers';
@@ -26,6 +25,7 @@ import { shapiroWilkTest } from '../../utils/shapiroWilk';
import { defaultSortFunction } from '../../utils/sortFunctions';
import {
tooltipBaseMean,
+ tooltipMagnitude,
tooltipMedianDiff,
tooltipNewMean,
tooltipSignificance,
@@ -79,26 +79,168 @@ const SW_NORMALITY_THRESHOLD = 0.2;
type NormalityResult = 'both' | 'one' | 'neither';
+// Shapiro-Wilk is run twice (base + new) per call and cell renderers invoke
+// this for every row on every render. Cache by the (stable) result object so
+// the test runs once per result rather than once per render.
+//
+// A WeakMap is a lookup table whose keys are objects (here, the result object).
+// "Weak" means it does not keep those objects alive: once a result is no longer
+// used anywhere else (e.g. the user loads new data), it gets garbage-collected
+// and its cache entry disappears on its own — so this cache never leaks memory
+// and needs no manual cleanup.
+// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/WeakMap
+const normalityCache = new WeakMap();
+
export function checkDistributionNormality(
result: MannWhitneyResultsItem,
): NormalityResult {
+ const cached = normalityCache.get(result);
+ if (cached !== undefined) return cached;
+
const baseResult = shapiroWilkTest(result.base_runs);
const newResult = shapiroWilkTest(result.new_runs);
const baseNormal =
baseResult !== null && baseResult.pvalue > SW_NORMALITY_THRESHOLD;
const newNormal =
newResult !== null && newResult.pvalue > SW_NORMALITY_THRESHOLD;
- if (baseNormal && newNormal) return 'both';
- if (baseNormal || newNormal) return 'one';
- return 'neither';
+ const value: NormalityResult =
+ baseNormal && newNormal
+ ? 'both'
+ : baseNormal || newNormal
+ ? 'one'
+ : 'neither';
+
+ normalityCache.set(result, value);
+ return value;
}
export function isDistributionNormal(result: MannWhitneyResultsItem): boolean {
return checkDistributionNormality(result) !== 'neither';
}
+function medianOf(values: number[]): number | null {
+ if (!values.length) return null;
+ const sorted = [...values].sort((a, b) => a - b);
+ const mid = Math.floor(sorted.length / 2);
+ return sorted.length % 2 === 0
+ ? (sorted[mid - 1] + sorted[mid]) / 2
+ : sorted[mid];
+}
+
+// Δ median as a signed percentage of the base median, computed from the raw
+// runs. This is the same basis as the expanded panel's "Δ median" blurb
+// (bootstrapMedianDiffCI's point estimate is median(new) - median(base) over
+// the same runs), so the column and the panel always agree.
+//
+// Cached by the (stable) result object (see the WeakMap note on normalityCache
+// above): this is called per row on every render and, in the Δ Median % sort
+// comparator, on every comparison — recomputing the median (which sorts both
+// run arrays) each time would be wasteful.
+const medianDiffPctCache = new WeakMap();
+
+export function medianDiffPct(result: MannWhitneyResultsItem): number | null {
+ const cached = medianDiffPctCache.get(result);
+ if (cached !== undefined) return cached;
+
+ const baseMedian = medianOf(result.base_runs ?? []);
+ const newMedian = medianOf(result.new_runs ?? []);
+ let value: number | null;
+ if (baseMedian === null || newMedian === null) {
+ // No data to compute from → "-".
+ value = null;
+ } else if (baseMedian === 0) {
+ // A zero base median yields 0% rather than an undefined division.
+ value = 0;
+ } else {
+ value = ((newMedian - baseMedian) / baseMedian) * 100;
+ }
+
+ medianDiffPctCache.set(result, value);
+ return value;
+}
+
+export function formatMedianDiffPct(pct: number): string {
+ return `${pct >= 0 ? '+' : ''}${pct.toFixed(2)}%`;
+}
+
+// Status cell: the direction of change (Improvement/Regression/No change).
+// Shared by the main and subtests rows so they render identically.
+function renderStatusCell(
+ directionOfChange: MannWhitneyResultsItem['direction_of_change'],
+) {
+ const isImprovement = directionOfChange === 'improvement';
+ const isRegression = directionOfChange === 'regression';
+ return (
+
+ );
+}
+
+// Magnitude cell — the plain-language Cliff's Delta interpretation
+// (negligible/small/medium/large). Shown only in the simplified view; the
+// numeric CD column covers it once advanced columns are on. Shared by the
+// main and subtests rows.
+function renderMagnitudeCell(interpretation: string) {
+ return (
+
+ );
+}
+
+// Δ Median % cell, shared by the main and subtests rows. Shows the run-based
+// median difference; a warning icon flags non-normal distributions, and "-"
+// when the value can't be computed.
+function renderMedianDiffCell(result: MannWhitneyResultsItem) {
+ const pct = medianDiffPct(result);
+ const normality = checkDistributionNormality(result);
+ return (
+
+
+
+
>
);
@@ -119,7 +124,7 @@ function SubtestsResultsMain({ view }: SubtestsResultsMainProps) {
backgroundColor: themeColor100,
margin: '0 auto',
marginBottom: '80px',
- maxWidth: '1400px',
+ maxWidth: RESULTS_TABLE_MAX_WIDTH,
}),
title: style({
margin: 0,
diff --git a/src/components/CompareResults/SubtestsResults/SubtestsResultsTable.tsx b/src/components/CompareResults/SubtestsResults/SubtestsResultsTable.tsx
index 138c795d6..89c31337d 100644
--- a/src/components/CompareResults/SubtestsResults/SubtestsResultsTable.tsx
+++ b/src/components/CompareResults/SubtestsResults/SubtestsResultsTable.tsx
@@ -8,6 +8,8 @@ import SubtestsTableContent from './SubtestsTableContent';
import NoResultsFound from '.././NoResultsFound';
import TableHeader from '.././TableHeader';
import { STUDENT_T } from '../../../common/constants';
+import useAdvancedColumns from '../../../hooks/useAdvancedColumns';
+import useSeedAdvancedColumnsFromUrl from '../../../hooks/useSeedAdvancedColumnsFromUrl';
import useTableFilters, { filterResults } from '../../../hooks/useTableFilters';
import useTableSort, { sortResults } from '../../../hooks/useTableSort';
import type { CombinedResultsItemType } from '../../../types/state';
@@ -79,9 +81,12 @@ function SubtestsResultsTable({
replicates,
testVersion,
}: ResultsTableProps) {
- const columnsConfiguration = getColumnsConfiguration(
- true,
- testVersion ?? STUDENT_T,
+ useSeedAdvancedColumnsFromUrl();
+ const advancedColumns = useAdvancedColumns();
+ const columnsConfiguration = useMemo(
+ () =>
+ getColumnsConfiguration(true, testVersion ?? STUDENT_T, advancedColumns),
+ [testVersion, advancedColumns],
);
// This is our custom hook that manages table filters
// and provides methods for clearing and toggling them.
diff --git a/src/components/CompareResults/SubtestsResults/SubtestsRevisionRow.tsx b/src/components/CompareResults/SubtestsResults/SubtestsRevisionRow.tsx
index 0529f5495..b70e34eb8 100644
--- a/src/components/CompareResults/SubtestsResults/SubtestsRevisionRow.tsx
+++ b/src/components/CompareResults/SubtestsResults/SubtestsRevisionRow.tsx
@@ -7,8 +7,12 @@ import { IconButton, Box } from '@mui/material';
import { style } from 'typestyle';
import RevisionRowExpandable from '.././RevisionRowExpandable';
-import { MANN_WHITNEY_U } from '../../../common/constants';
+import {
+ MANN_WHITNEY_U,
+ RESULTS_TABLE_MIN_WIDTH,
+} from '../../../common/constants';
import { getStrategy } from '../../../common/testVersions';
+import useAdvancedColumns from '../../../hooks/useAdvancedColumns';
import { Strings } from '../../../resources/Strings';
import { Spacing } from '../../../styles';
import type { CombinedResultsItemType } from '../../../types/state';
@@ -17,6 +21,11 @@ import { TestVersion } from '../../../types/types';
const revisionRow = style({
borderRadius: '4px 0px 0px 4px',
display: 'grid',
+ // Keep this gap in sync with the header grid in TableHeader.
+ columnGap: `${Spacing.Small}px`,
+ // Floor the row width to match the header, so columns can't compress into
+ // each other; below this the page scrolls horizontally.
+ minWidth: RESULTS_TABLE_MIN_WIDTH,
margin: `${Spacing.Small}px 0px 0px 0px`,
alignItems: 'center',
$nest: {
@@ -119,6 +128,7 @@ function SubtestsRevisionRow(props: RevisionRowProps) {
};
const strategy = getStrategy(testVersion ?? MANN_WHITNEY_U);
+ const advancedColumns = useAdvancedColumns();
return (
<>
@@ -127,7 +137,7 @@ function SubtestsRevisionRow(props: RevisionRowProps) {
sx={{ gridTemplateColumns, backgroundColor: 'revisionRow.background' }}
role='row'
>
- {strategy.renderSubtestColumns(result, expanded)}
+ {strategy.renderSubtestColumns(result, expanded, advancedColumns)}
{name}
= displayLabel
+ ? {
+ padding: '6px 12px',
+ fontSize: '16px',
+ // Allow the icon + label to wrap on narrow screens rather than
+ // overflowing the cell and colliding with the next column.
+ whiteSpace: 'normal',
+ flexWrap: 'wrap',
+ lineHeight: 1.2,
+ }
+ : { padding: 0, minWidth: '24px !important', fontSize: '14px' };
// Have some margin between the icon and the text, and some less margin at the
// start, but only when there's some actual text.
const inlineIconStyle = displayLabel
@@ -299,12 +314,14 @@ function TableHeader({
const styles = {
tableHeader: style({
display: 'grid',
- // Should be kept in sync with the gridTemplateColumns from RevisionRow
+ // Should be kept in sync with the gridTemplateColumns and gap from RevisionRow
gridTemplateColumns: toGridTemplateColumns(columnsConfiguration),
+ columnGap: `${Spacing.Small}px`,
+ minWidth: RESULTS_TABLE_MIN_WIDTH,
background:
themeMode == 'light' ? Colors.Background100 : Colors.Background300Dark,
borderRadius: '4px',
- paddingBlock: Spacing.Small,
+ paddingBlock: Spacing.Medium,
marginTop: Spacing.Medium,
marginBottom: Spacing.Large,
$nest: {
@@ -422,7 +439,7 @@ function TableHeader({
return (
diff --git a/src/components/CompareResults/TableRevisionContent.tsx b/src/components/CompareResults/TableRevisionContent.tsx
index 3e972f573..77ef75595 100644
--- a/src/components/CompareResults/TableRevisionContent.tsx
+++ b/src/components/CompareResults/TableRevisionContent.tsx
@@ -3,7 +3,11 @@ import { style } from 'typestyle';
import LinkToRevision from './LinkToRevision';
import RevisionRow from './RevisionRow';
import TestHeader from './TestHeader';
-import type { compareView, compareOverTimeView } from '../../common/constants';
+import {
+ RESULTS_TABLE_MIN_WIDTH,
+ type compareView,
+ type compareOverTimeView,
+} from '../../common/constants';
import { Spacing } from '../../styles';
import type { CombinedResultsItemType } from '../../types/state';
import { TestVersion } from '../../types/types';
@@ -17,6 +21,9 @@ const styles = {
testBlock: style({
/* Note that this padding will be added to the padding below */
paddingTop: Spacing.Small,
+ // Floor the row width to match the header, so columns can't compress into
+ // each other; below this the page scrolls horizontally.
+ minWidth: RESULTS_TABLE_MIN_WIDTH,
}),
revisionBlock: style({ paddingBottom: Spacing.Large }),
};
diff --git a/src/hooks/useAdvancedColumns.ts b/src/hooks/useAdvancedColumns.ts
new file mode 100644
index 000000000..e5b7fcdc6
--- /dev/null
+++ b/src/hooks/useAdvancedColumns.ts
@@ -0,0 +1,18 @@
+import { useMemo } from 'react';
+
+import { useAppSelector } from './app';
+import type { AdvancedColumns } from '../types/types';
+
+// Visibility of the advanced (power-user) statistics columns (Cliff's Delta,
+// CLES) from the columnPrefs slice. Returns a stable object memoized on the
+// two flags, so callers can use it directly in `useMemo` deps and pass it to
+// the strategy renderers without re-rendering on unrelated state changes.
+function useAdvancedColumns(): AdvancedColumns {
+ const cliffsDelta = useAppSelector(
+ (state) => state.columnPrefs.showCliffsDelta,
+ );
+ const cles = useAppSelector((state) => state.columnPrefs.showCles);
+ return useMemo(() => ({ cliffsDelta, cles }), [cliffsDelta, cles]);
+}
+
+export default useAdvancedColumns;
diff --git a/src/hooks/useSeedAdvancedColumnsFromUrl.ts b/src/hooks/useSeedAdvancedColumnsFromUrl.ts
new file mode 100644
index 000000000..3843f3e8d
--- /dev/null
+++ b/src/hooks/useSeedAdvancedColumnsFromUrl.ts
@@ -0,0 +1,30 @@
+import { useEffect } from 'react';
+
+import { useAppDispatch } from './app';
+import {
+ updateShowCliffsDelta,
+ updateShowCles,
+} from '../reducers/ColumnPrefsSlice';
+import {
+ ADVANCED_COLUMNS_PARAM,
+ parseAdvancedColumns,
+} from '../utils/advancedColumnsUrl';
+
+// On mount, seed the advanced-column visibility from the URL so a shared link
+// reproduces the selected columns. Toggling updates both the URL (for sharing)
+// and Redux (for reactive rendering); this only handles the initial
+// URL → Redux direction. Call once per results view.
+function useSeedAdvancedColumnsFromUrl() {
+ const dispatch = useAppDispatch();
+ useEffect(() => {
+ const params = new URLSearchParams(window.location.search);
+ if (!params.has(ADVANCED_COLUMNS_PARAM)) {
+ return;
+ }
+ const { cliffsDelta, cles } = parseAdvancedColumns(params);
+ dispatch(updateShowCliffsDelta(cliffsDelta));
+ dispatch(updateShowCles(cles));
+ }, []);
+}
+
+export default useSeedAdvancedColumnsFromUrl;
diff --git a/src/reducers/ColumnPrefsSlice.ts b/src/reducers/ColumnPrefsSlice.ts
new file mode 100644
index 000000000..4dec8f2dd
--- /dev/null
+++ b/src/reducers/ColumnPrefsSlice.ts
@@ -0,0 +1,38 @@
+import { createSlice, PayloadAction } from '@reduxjs/toolkit';
+
+// Results-view display preferences:
+// - showCliffsDelta / showCles: the two advanced statistics columns, toggled
+// independently from the "Advanced columns" dropdown. Persisted in the URL
+// (see utils/advancedColumnsUrl) so shared links reproduce the selection;
+// seeded into this slice on mount. Default off (the simplified view).
+// - showHowToRead: when true the "How to read the results" helper panel is
+// shown above the table. Persisted to localStorage.
+const initialState: {
+ showCliffsDelta: boolean;
+ showCles: boolean;
+ showHowToRead: boolean;
+} = {
+ showCliffsDelta: false,
+ showCles: false,
+ showHowToRead: localStorage.getItem('showHowToRead') !== 'false',
+};
+
+const columnPrefs = createSlice({
+ name: 'columnPrefs',
+ initialState,
+ reducers: {
+ updateShowCliffsDelta(state, action: PayloadAction) {
+ state.showCliffsDelta = action.payload;
+ },
+ updateShowCles(state, action: PayloadAction) {
+ state.showCles = action.payload;
+ },
+ updateShowHowToRead(state, action: PayloadAction) {
+ state.showHowToRead = action.payload;
+ },
+ },
+});
+
+export const { updateShowCliffsDelta, updateShowCles, updateShowHowToRead } =
+ columnPrefs.actions;
+export default columnPrefs.reducer;
diff --git a/src/types/types.ts b/src/types/types.ts
index 962134a0e..22867a519 100644
--- a/src/types/types.ts
+++ b/src/types/types.ts
@@ -461,6 +461,14 @@ export type TokenBearer = {
export type TestVersion = 'student-t' | 'mann-whitney-u';
+// Per-column visibility for the advanced (power-user) statistics columns.
+// Each is toggled independently from the "Advanced columns" dropdown, so
+// either, both, or neither can be shown.
+export interface AdvancedColumns {
+ cliffsDelta: boolean;
+ cles: boolean;
+}
+
export type SortFunc = (
resultA: CombinedResultsItemType,
resultB: CombinedResultsItemType,
diff --git a/src/utils/advancedColumnsUrl.ts b/src/utils/advancedColumnsUrl.ts
new file mode 100644
index 000000000..68315d0c9
--- /dev/null
+++ b/src/utils/advancedColumnsUrl.ts
@@ -0,0 +1,37 @@
+import type { AdvancedColumns } from '../types/types';
+
+// The advanced (power-user) columns are persisted in the URL so a shared link
+// reproduces the selected columns. Encoded as a comma-separated list of the
+// enabled column keys, e.g. `?advanced_columns=cliffs_delta,cles`. An absent
+// param means neither is shown (the simplified view).
+export const ADVANCED_COLUMNS_PARAM = 'advanced_columns';
+
+const CLIFFS_DELTA = 'cliffs_delta';
+const CLES = 'cles';
+
+// Parse advanced-column visibility from a URL search string or params.
+export function parseAdvancedColumns(
+ search: string | URLSearchParams,
+): AdvancedColumns {
+ const params =
+ typeof search === 'string' ? new URLSearchParams(search) : search;
+ const enabled = (params.get(ADVANCED_COLUMNS_PARAM) ?? '')
+ .split(',')
+ .filter(Boolean);
+ return {
+ cliffsDelta: enabled.includes(CLIFFS_DELTA),
+ cles: enabled.includes(CLES),
+ };
+}
+
+// Serialize to the comma-list value, or null when no advanced column is on so
+// the caller can delete the param and keep shared URLs clean.
+export function serializeAdvancedColumns(
+ advanced: AdvancedColumns,
+): string | null {
+ const enabled = [
+ advanced.cliffsDelta ? CLIFFS_DELTA : null,
+ advanced.cles ? CLES : null,
+ ].filter(Boolean);
+ return enabled.length ? enabled.join(',') : null;
+}
diff --git a/src/utils/rowTemplateColumns.ts b/src/utils/rowTemplateColumns.ts
index 1caa4d4a1..8830946ea 100644
--- a/src/utils/rowTemplateColumns.ts
+++ b/src/utils/rowTemplateColumns.ts
@@ -1,5 +1,5 @@
import { getColumnsForVersion } from '../common/testVersions';
-import { TableConfig, TestVersion } from '../types/types';
+import { AdvancedColumns, TableConfig, TestVersion } from '../types/types';
// Re-exported for consumers that import sort utilities from this module.
export {
@@ -11,6 +11,8 @@ export {
export const getColumnsConfiguration = (
isSubtestTable: boolean,
testVersion: TestVersion,
-): TableConfig => getColumnsForVersion(testVersion, isSubtestTable);
+ advancedColumns: AdvancedColumns,
+): TableConfig =>
+ getColumnsForVersion(testVersion, isSubtestTable, advancedColumns);
export { toGridTemplateColumns } from './gridTemplateColumns';