
commonMain.io.kotest.data.forAll1.kt Maven / Gradle / Ivy
package io.kotest.data
import io.kotest.mpp.paramNames
import kotlin.jvm.JvmName
suspend fun forAll(vararg rows: Row1, testfn: suspend (A) -> Unit) {
val params = testfn.paramNames
val paramA = params.getOrElse(0) { "a" }
table(headers(paramA), *rows).forAll { a -> testfn(a) }
}
@JvmName("forall1")
inline fun forAll(table: Table1, testfn: (A) -> Unit) = table.forAll(testfn)
inline fun Table1.forAll(fn: (A) -> Unit) {
val collector = ErrorCollector()
for (row in rows) {
try {
fn(row.a)
} catch (e: Throwable) {
collector += error(e, headers.values(), row.values())
}
}
collector.assertAll()
}
suspend fun forNone(vararg rows: Row1, testfn: suspend (A) -> Unit) {
val params = testfn.paramNames
val paramA = params.getOrElse(0) { "a" }
table(headers(paramA), *rows).forNone { a -> testfn(a) }
}
@JvmName("fornone1")
inline fun forNone(table: Table1, testfn: (A) -> Unit) = table.forNone(testfn)
inline fun Table1.forNone(fn: (A) -> Unit) {
for (row in rows) {
try {
fn(row.a)
} catch (e: AssertionError) {
continue
}
throw forNoneError(headers.values(), row.values())
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy