protected fun runBenchmark()

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()
    }