All Downloads are FREE. Search and download functionalities are using the official Maven repository.

commonMain.io.kotest.data.forAll2.kt Maven / Gradle / Ivy

package io.kotest.data

import io.kotest.mpp.paramNames
import kotlin.jvm.JvmName

suspend fun  forAll(vararg rows: Row2, testfn: suspend (A, B) -> Unit) {
   val params = testfn.paramNames
   val paramA = params.getOrElse(0) { "a" }
   val paramB = params.getOrElse(1) { "b" }
   table(headers(paramA, paramB), *rows).forAll { a, b -> testfn(a, b) }
}

@JvmName("forall2")
inline fun  forAll(table: Table2, testfn: (A, B) -> Unit) = table.forAll(testfn)

inline fun  Table2.forAll(fn: (A, B) -> Unit) {
   val collector = ErrorCollector()
   for (row in rows) {
      try {
         fn(row.a, row.b)
      } catch (e: Throwable) {
         collector += error(e, headers.values(), row.values())
      }
   }
   collector.assertAll()
}

suspend fun  forNone(vararg rows: Row2, testfn: suspend (A, B) -> Unit) {
   val params = testfn.paramNames
   val paramA = params.getOrElse(0) { "a" }
   val paramB = params.getOrElse(1) { "b" }
   table(headers(paramA, paramB), *rows).forNone { a, b -> testfn(a, b) }
}

@JvmName("fornone2")
inline fun  forNone(table: Table2, testfn: (A, B) -> Unit) = table.forNone(testfn)

inline fun  Table2.forNone(fn: (A, B) -> Unit) {
   for (row in rows) {
      try {
         fn(row.a, row.b)
      } catch (e: AssertionError) {
         continue
      }
      throw forNoneError(headers.values(), row.values())
   }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy