pytest-codspeed 3.0.0b2__tar.gz → 3.0.0b3__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (16) hide show
  1. {pytest_codspeed-3.0.0b2 → pytest_codspeed-3.0.0b3}/PKG-INFO +1 -1
  2. {pytest_codspeed-3.0.0b2 → pytest_codspeed-3.0.0b3}/src/pytest_codspeed/__init__.py +2 -2
  3. {pytest_codspeed-3.0.0b2 → pytest_codspeed-3.0.0b3}/src/pytest_codspeed/instruments/walltime.py +15 -3
  4. {pytest_codspeed-3.0.0b2 → pytest_codspeed-3.0.0b3}/.gitignore +0 -0
  5. {pytest_codspeed-3.0.0b2 → pytest_codspeed-3.0.0b3}/LICENSE +0 -0
  6. {pytest_codspeed-3.0.0b2 → pytest_codspeed-3.0.0b3}/README.md +0 -0
  7. {pytest_codspeed-3.0.0b2 → pytest_codspeed-3.0.0b3}/pyproject.toml +0 -0
  8. {pytest_codspeed-3.0.0b2 → pytest_codspeed-3.0.0b3}/src/pytest_codspeed/instruments/__init__.py +0 -0
  9. {pytest_codspeed-3.0.0b2 → pytest_codspeed-3.0.0b3}/src/pytest_codspeed/instruments/valgrind/__init__.py +0 -0
  10. {pytest_codspeed-3.0.0b2 → pytest_codspeed-3.0.0b3}/src/pytest_codspeed/instruments/valgrind/_wrapper/.gitignore +0 -0
  11. {pytest_codspeed-3.0.0b2 → pytest_codspeed-3.0.0b3}/src/pytest_codspeed/instruments/valgrind/_wrapper/__init__.py +0 -0
  12. {pytest_codspeed-3.0.0b2 → pytest_codspeed-3.0.0b3}/src/pytest_codspeed/instruments/valgrind/_wrapper/wrapper.c +0 -0
  13. {pytest_codspeed-3.0.0b2 → pytest_codspeed-3.0.0b3}/src/pytest_codspeed/instruments/valgrind/_wrapper/wrapper.h +0 -0
  14. {pytest_codspeed-3.0.0b2 → pytest_codspeed-3.0.0b3}/src/pytest_codspeed/instruments/valgrind/_wrapper/wrapper.pyi +0 -0
  15. {pytest_codspeed-3.0.0b2 → pytest_codspeed-3.0.0b3}/src/pytest_codspeed/plugin.py +0 -0
  16. {pytest_codspeed-3.0.0b2 → pytest_codspeed-3.0.0b3}/src/pytest_codspeed/utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: pytest-codspeed
3
- Version: 3.0.0b2
3
+ Version: 3.0.0b3
4
4
  Summary: Pytest plugin to create CodSpeed benchmarks
5
5
  Project-URL: Homepage, https://codspeed.io/
6
6
  Project-URL: Documentation, https://docs.codspeed.io/
@@ -1,6 +1,6 @@
1
- __version__ = "3.0.0b2"
1
+ __version__ = "3.0.0b3"
2
2
  # We also have the semver version since __version__ is not semver compliant
3
- __semver_version__ = "3.0.0-b2"
3
+ __semver_version__ = "3.0.0-b3"
4
4
 
5
5
  from .plugin import BenchmarkFixture
6
6
 
@@ -51,11 +51,14 @@ class BenchmarkConfig:
51
51
  class BenchmarkStats:
52
52
  min_ns: float
53
53
  max_ns: float
54
- stdev_ns: float
55
54
  mean_ns: float
55
+ stdev_ns: float
56
+
57
+ lower_fence_ns: float
56
58
  q1_ns: float
57
59
  median_ns: float
58
60
  q3_ns: float
61
+ upper_fence_ns: float
59
62
 
60
63
  rounds: int
61
64
  total_time: float
@@ -76,17 +79,26 @@ class BenchmarkStats:
76
79
  stdev_ns = stdev(times_ns) if len(times_ns) > 1 else 0
77
80
  mean_ns = mean(times_ns)
78
81
  q1_ns, median_ns, q3_ns = quantiles(times_ns, n=4)
82
+ iqr_ns = q3_ns - q1_ns
83
+ lower_fence_ns = q1_ns - 1.5 * iqr_ns
84
+ upper_fence_ns = q3_ns + 1.5 * iqr_ns
85
+ outliers_rounds = sum(
86
+ 1 for t in times_ns if t < lower_fence_ns or t > upper_fence_ns
87
+ )
88
+
79
89
  return cls(
80
90
  min_ns=min(times_ns),
81
91
  max_ns=max(times_ns),
82
92
  stdev_ns=stdev_ns,
83
93
  mean_ns=mean_ns,
84
- median_ns=median_ns,
94
+ lower_fence_ns=lower_fence_ns,
85
95
  q1_ns=q1_ns,
96
+ median_ns=median_ns,
86
97
  q3_ns=q3_ns,
98
+ upper_fence_ns=upper_fence_ns,
87
99
  rounds=rounds,
88
100
  total_time=total_time,
89
- outlier_rounds=sum(1 for t in times_ns if abs(t - mean_ns) > stdev_ns),
101
+ outlier_rounds=outliers_rounds,
90
102
  iter_per_round=iter_per_round,
91
103
  warmup_iters=warmup_iters,
92
104
  )