Repository navigation
Permalink
Choose a base ref
{{ refName }}
default
Choose a head ref
{{ refName }}
default
Comparing changes
Choose two branches to see what’s changed or to start a new pull request.
If you need to, you can also or
learn more about diff comparisons.
Open a pull request
Create a new pull request by comparing changes across two branches. If you need to, you can also .
Learn more about diff comparisons here.
base repository: ionelmc/pytest-benchmark
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: v5.3.0
Could not load branches
Nothing to show
Loading
Could not load tags
Nothing to show
{{ refName }}
default
Loading
...
head repository: ionelmc/pytest-benchmark
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: v5.3.1
Could not load branches
Nothing to show
Loading
Could not load tags
Nothing to show
{{ refName }}
default
Loading
- 9 commits
- 19 files changed
- 3 contributors
Commits on Oct 30, 2026
-
Configuration menu - View commit details
-
Copy full SHA for 9f669a3 - Browse repository at this point
Copy the full SHA 9f669a3View commit details
Commits on Oct 31, 2026
-
Configuration menu - View commit details
-
Copy full SHA for f9b57d1 - Browse repository at this point
Copy the full SHA f9b57d1View commit details -
Fix hd15iqr returning the outlier it is meant to exclude
Stats.hd15iqr is documented as the Tukey-style highest datum within 1.5 IQR over Q3, i.e. max{x : x <= Q3 + 1.5*IQR}. bisect_right returns the insertion point after every element at or below the fence, so the highest in-fence datum is at pos - 1; the code returned sorted_data[pos], which is the first datum strictly above the fence. So whenever a benchmark has a high outlier - a GC pause, a page fault, a scheduler preemption, exactly what the statistic exists to filter out - hd15iqr reported that outlier. It returned a value the same Stats object simultaneously counted in iqr_outliers. The pos == len(self.data) branch is what hid it: that branch is correct, and it fires precisely when there is no outlier, so the statistic looked right on clean data and was wrong on dirty data. That branch is now unnecessary, because pos is always at least 1: q3 is an interpolation between two elements of sorted_data so q3 >= sorted_data[0], and iqr >= 0, therefore sorted_data[0] is always at or below the fence. On ten rounds of [1..9, 100]: fence 15.5, hd15iqr reported 100.0 where the correct whisker is 9.0. On timings [10.0 .. 11.0 ms, 100.0 ms]: reported 100.0 ms against a correct 11.0 ms. The symmetric ld15iqr uses bisect_left and was already correct, which is what makes this a plain inconsistency rather than a matter of convention. hd15iqr is in Stats.fields, so it reaches --benchmark-json, --benchmark-save and the Elasticsearch mapping, and histogram.py builds its box plot as ['min', 'ld15iqr', 'q1', 'median', 'q3', 'hd15iqr', 'max'] - the upper whisker was drawn at the outlier. The min(row['max'], row['hd15iqr']) cap on line 54 of histogram.py only makes sense if hd15iqr was expected to be an in-fence value. Adds four tests: the high-outlier case, the symmetric low-outlier case, the no-outlier case where the whiskers must equal min and max, and a randomised check over 500 samples asserting both whiskers stay inside their fences and equal the independently computed answer.Configuration menu - View commit details
-
Copy full SHA for 5b535e1 - Browse repository at this point
Copy the full SHA 5b535e1View commit details -
Configuration menu - View commit details
-
Copy full SHA for 154cc0c - Browse repository at this point
Copy the full SHA 154cc0cView commit details -
Dump histogram for test_hd15iqr_excludes_high_outliers to a file. Als…
…o fix some linting.
Configuration menu - View commit details
-
Copy full SHA for 90204d9 - Browse repository at this point
Copy the full SHA 90204d9View commit details -
Ignore windows deprecation warning (from some notebook thing) and bum…
…p pygal in tests.
Configuration menu - View commit details
-
Copy full SHA for defaee2 - Browse repository at this point
Copy the full SHA defaee2View commit details -
Configuration menu - View commit details
-
Copy full SHA for b9d2222 - Browse repository at this point
Copy the full SHA b9d2222View commit details
Commits on Nov 1, 2026
-
Configuration menu - View commit details
-
Copy full SHA for 1031904 - Browse repository at this point
Copy the full SHA 1031904View commit details -
Configuration menu - View commit details
-
Copy full SHA for 97c52d8 - Browse repository at this point
Copy the full SHA 97c52d8View commit details
Loading
This comparison is taking too long to generate.
Unfortunately it looks like we can’t render this comparison for you right now. It might be too big, or there might be something weird with your repository.
You can try running this command locally to see the comparison on your machine:
git diff v5.3.0...v5.3.1