Skip to content

Commit a0af345

Browse files
committed
Add enum for comparison type
1 parent 1f6010c commit a0af345

File tree

1 file changed

+21
-13
lines changed

1 file changed

+21
-13
lines changed

Sources/RegexBenchmark/BenchmarkResults.swift

Lines changed: 21 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -154,16 +154,24 @@ extension BenchmarkResult {
154154
var name: String
155155
var baseline: BenchmarkResult
156156
var latest: BenchmarkResult
157-
var diffCompileTimes: Bool = false
157+
var type: ComparisonType = .runtime
158158

159+
enum ComparisonType {
160+
case runtime
161+
case compileTime
162+
}
163+
159164
var diff: Time? {
160-
if diffCompileTimes {
165+
switch type {
166+
case .compileTime:
161167
return latest.compileTime - baseline.compileTime
168+
case .runtime:
169+
if Stats.tTest(baseline, latest) {
170+
return latest.median - baseline.median
171+
}
172+
return nil
162173
}
163-
if Stats.tTest(baseline, latest) {
164-
return latest.median - baseline.median
165-
}
166-
return nil
174+
167175
}
168176

169177
var description: String {
@@ -172,10 +180,11 @@ extension BenchmarkResult {
172180
}
173181
let oldVal: Time
174182
let newVal: Time
175-
if diffCompileTimes {
183+
switch type {
184+
case .compileTime:
176185
oldVal = baseline.compileTime
177186
newVal = latest.compileTime
178-
} else {
187+
case .runtime:
179188
oldVal = baseline.median
180189
newVal = latest.median
181190
}
@@ -191,10 +200,11 @@ extension BenchmarkResult {
191200
}
192201
let oldVal: Time
193202
let newVal: Time
194-
if diffCompileTimes {
203+
switch type {
204+
case .compileTime:
195205
oldVal = baseline.compileTime
196206
newVal = latest.compileTime
197-
} else {
207+
case .runtime:
198208
oldVal = baseline.median
199209
newVal = latest.median
200210
}
@@ -211,7 +221,6 @@ struct SuiteResult {
211221
results.updateValue(result, forKey: name)
212222
}
213223

214-
/// Compares with the given SuiteResult
215224
func compare(with other: SuiteResult) -> [BenchmarkResult.Comparison] {
216225
var comparisons: [BenchmarkResult.Comparison] = []
217226
for item in results {
@@ -236,7 +245,6 @@ struct SuiteResult {
236245
return comparisons
237246
}
238247

239-
/// Compares the compile times
240248
func compareCompileTimes(
241249
with other: SuiteResult
242250
) -> [BenchmarkResult.Comparison] {
@@ -247,7 +255,7 @@ struct SuiteResult {
247255
.init(name: item.key,
248256
baseline: otherVal,
249257
latest: item.value,
250-
diffCompileTimes: true))
258+
type: .compileTime))
251259
}
252260
}
253261
return comparisons

0 commit comments

Comments
 (0)