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

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