in kotlin-styled-next/src/jsTest/kotlin/benchmark/BenchmarkBase.kt [36:59]
protected fun runBenchmark(
name: String,
repeat: Int = 5,
run: suspend TestScope.() -> Duration,
) = runTest {
val durations = flowRepeat(count = repeat) { run() }.toList()
val avgMs = durations.map { it.toInt(DurationUnit.MILLISECONDS) }.average().toInt()
val browserName = navigator.userAgent.lowercase().let {
when {
it.contains("chrome") -> "chrome"
it.contains("firefox") -> "firefox"
else -> "unknown_browser"
}
}
println("#$name[$browserName]:$avgMs;\n")
additionalMeasurements.forEach { (key, additionalDurations) ->
val additionalAvgMs = additionalDurations.map { it.toInt(DurationUnit.MILLISECONDS) }.average().toInt()
println("#$name-$key[$browserName]:$additionalAvgMs;\n")
}
additionalMeasurements.clear()
}