Skip to content

Commit

Permalink
Update ParZip8Test.kt (#3266)
Browse files Browse the repository at this point in the history
  • Loading branch information
Tejas Mate authored Nov 4, 2023
1 parent 162686d commit b73aa22
Showing 1 changed file with 14 additions and 10 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@ import arrow.fx.coroutines.awaitExitCase
import arrow.fx.coroutines.leftException
import arrow.fx.coroutines.parZip
import arrow.fx.coroutines.throwable
import io.kotest.core.spec.style.StringSpec
import io.kotest.matchers.should
import io.kotest.matchers.shouldBe
import io.kotest.matchers.types.shouldBeTypeOf
Expand All @@ -24,9 +23,12 @@ import kotlinx.coroutines.CompletableDeferred
import kotlinx.coroutines.async
import kotlinx.coroutines.channels.Channel
import kotlinx.coroutines.CoroutineScope
import kotlin.test.Test
import kotlinx.coroutines.test.runTest

class ParZip8Test : StringSpec({
"parZip 8 runs in parallel" {
class ParZip8Test {
@Test
fun parZip8RunsInParallel() = runTest {
checkAll(Arb.int(), Arb.int(), Arb.int(), Arb.int(), Arb.int(), Arb.int(), Arb.int(), Arb.int()) { a, b, c, d, e, f, g, h ->
val r = Atomic("")
val modifyGate1 = CompletableDeferred<Unit>()
Expand Down Expand Up @@ -83,8 +85,9 @@ class ParZip8Test : StringSpec({
r.value shouldBe "$h$g$f$e$d$c$b$a"
}
}

"Cancelling parZip 8 cancels all participants" {

@Test
fun CancellingParZip8CancelsAllParticipants() = runTest {
val s = Channel<Unit>()
val pa = CompletableDeferred<ExitCase>()
val pb = CompletableDeferred<ExitCase>()
Expand Down Expand Up @@ -122,8 +125,9 @@ class ParZip8Test : StringSpec({
pg.await().shouldBeTypeOf<ExitCase.Cancelled>()
ph.await().shouldBeTypeOf<ExitCase.Cancelled>()
}

"parZip 8 cancels losers if a failure occurs in one of the tasks" {

@Test
fun parZip8CancelsLosersIfAFailureOccursInOneOfTheTasks() = runTest {
checkAll(
Arb.throwable(),
Arb.element(listOf(1, 2, 3, 4, 5, 6, 7, 8))
Expand Down Expand Up @@ -169,8 +173,9 @@ class ParZip8Test : StringSpec({
r should leftException(e)
}
}

"parZip CancellationException on right can cancel rest" {

@Test
fun parZipCancellationExceptionOnRightCanCancelRest() = runTest {
checkAll(Arb.string(), Arb.int(1..8)) { msg, cancel ->
val s = Channel<Unit>()
val pa = CompletableDeferred<ExitCase>()
Expand Down Expand Up @@ -214,4 +219,3 @@ class ParZip8Test : StringSpec({
}
}
}
)

0 comments on commit b73aa22

Please sign in to comment.