
commonMain.io.kotest.data.forAll6.kt Maven / Gradle / Ivy
package io.kotest.data
import io.kotest.mpp.paramNames
import kotlin.jvm.JvmName
suspend fun forAll(vararg rows: Row6, testfn: suspend (A, B, C, D, E, F) -> Unit) {
val params = testfn.paramNames
val paramA = params.getOrElse(0) { "a" }
val paramB = params.getOrElse(1) { "b" }
val paramC = params.getOrElse(2) { "c" }
val paramD = params.getOrElse(3) { "d" }
val paramE = params.getOrElse(4) { "e" }
val paramF = params.getOrElse(5) { "f" }
table(headers(paramA, paramB, paramC, paramD, paramE, paramF), *rows).forAll { A, B, C, D, E, F ->
testfn(A, B, C, D, E, F)
}
}
@JvmName("forall6")
inline fun forAll(table: Table6, testfn: (A, B, C, D, E, F) -> Unit) =
table.forAll(testfn)
inline fun Table6.forAll(fn: (A, B, C, D, E, F) -> Unit) {
val collector = ErrorCollector()
for (row in rows) {
try {
fn(row.a, row.b, row.c, row.d, row.e, row.f)
} catch (e: Throwable) {
collector += error(e, headers.values(), row.values())
}
}
collector.assertAll()
}
suspend fun forNone(
vararg rows: Row6,
testfn: suspend (A, B, C, D, E, F) -> Unit
) {
val params = testfn.paramNames
val paramA = params.getOrElse(0) { "a" }
val paramB = params.getOrElse(1) { "b" }
val paramC = params.getOrElse(2) { "c" }
val paramD = params.getOrElse(3) { "d" }
val paramE = params.getOrElse(4) { "e" }
val paramF = params.getOrElse(5) { "f" }
table(headers(paramA, paramB, paramC, paramD, paramE, paramF), *rows).forNone { A, B, C, D, E, F ->
testfn(A, B, C, D, E, F)
}
}
@JvmName("fornone6")
inline fun forNone(table: Table6, testfn: (A, B, C, D, E, F) -> Unit) =
table.forNone(testfn)
inline fun Table6.forNone(fn: (A, B, C, D, E, F) -> Unit) {
for (row in rows) {
try {
fn(row.a, row.b, row.c, row.d, row.e, row.f)
} catch (e: AssertionError) {
continue
}
throw forNoneError(headers.values(), row.values())
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy