Skip to content

Commit 4333c1f

Browse files
committed
refactor: replace hardcoded outlier factor for improved readability
1 parent 6e1d63e commit 4333c1f

File tree

1 file changed

+9
-2
lines changed

1 file changed

+9
-2
lines changed

src/pytest_codspeed/instruments/walltime.py

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,9 @@
2626
TIMER_RESOLUTION_NS = get_clock_info("perf_counter").resolution * 1e9
2727
DEFAULT_MIN_ROUND_TIME_NS = TIMER_RESOLUTION_NS * 1_000_000
2828

29+
IQR_OUTLIER_FACTOR = 1.5
30+
STDEV_OUTLIER_FACTOR = 3
31+
2932

3033
@dataclass
3134
class BenchmarkConfig:
@@ -89,12 +92,16 @@ def from_list(
8992
)
9093
iqr_ns = q3_ns - q1_ns
9194
iqr_outlier_rounds = sum(
92-
1 for t in times_ns if t < q1_ns - 1.5 * iqr_ns or t > q3_ns + 1.5 * iqr_ns
95+
1
96+
for t in times_ns
97+
if t < q1_ns - IQR_OUTLIER_FACTOR * iqr_ns
98+
or t > q3_ns + IQR_OUTLIER_FACTOR * iqr_ns
9399
)
94100
stdev_outlier_rounds = sum(
95101
1
96102
for t in times_ns
97-
if t < mean_ns - 3 * stdev_ns or t > mean_ns + 3 * stdev_ns
103+
if t < mean_ns - STDEV_OUTLIER_FACTOR * stdev_ns
104+
or t > mean_ns + STDEV_OUTLIER_FACTOR * stdev_ns
98105
)
99106

100107
return cls(

0 commit comments

Comments
 (0)