Skip to content

Commit 2670b77

Browse files
Selective instance tests
1 parent 8780341 commit 2670b77

File tree

3 files changed

+11
-7
lines changed

3 files changed

+11
-7
lines changed

modules/core/arrow-core-data/src/test/kotlin/arrow/core/Function0Test.kt

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,12 @@ import arrow.Kind
44
import arrow.core.extensions.function0.comonad.comonad
55
import arrow.core.extensions.function0.monad.monad
66
import arrow.core.extensions.function0.monoid.monoid
7+
import arrow.core.extensions.function0.selective.selective
78
import arrow.core.extensions.function0.semigroup.semigroup
89
import arrow.core.extensions.monoid
910
import arrow.core.extensions.semigroup
1011
import arrow.test.UnitSpec
11-
import arrow.test.laws.ComonadLaws
12-
import arrow.test.laws.MonadLaws
13-
import arrow.test.laws.MonoidLaws
14-
import arrow.test.laws.SemigroupLaws
12+
import arrow.test.laws.*
1513
import arrow.typeclasses.Eq
1614
import io.kotlintest.properties.Gen
1715
import io.kotlintest.runner.junit4.KotlinTestRunner
@@ -29,7 +27,8 @@ class Function0Test : UnitSpec() {
2927
SemigroupLaws.laws(Function0.semigroup(Int.semigroup()), { 1 }.k(), { 2 }.k(), { 3 }.k(), EQ),
3028
MonoidLaws.laws(Function0.monoid(Int.monoid()), Gen.constant({ 1 }.k()), EQ),
3129
MonadLaws.laws(Function0.monad(), EQ),
32-
ComonadLaws.laws(Function0.comonad(), { { it }.k() }, EQ)
30+
ComonadLaws.laws(Function0.comonad(), { { it }.k() }, EQ),
31+
SelectiveLaws.laws(Function0.selective(), EQ)
3332
)
3433

3534
"Semigroup of Function0<A> is Function0<Semigroup<A>>"() {

modules/core/arrow-core-data/src/test/kotlin/arrow/core/IdTest.kt

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import arrow.core.extensions.id.eq.eq
88
import arrow.core.extensions.id.hash.hash
99
import arrow.core.extensions.id.monad.monad
1010
import arrow.core.extensions.id.monoid.monoid
11+
import arrow.core.extensions.id.selective.selective
1112
import arrow.core.extensions.id.semigroup.semigroup
1213
import arrow.core.extensions.id.show.show
1314
import arrow.core.extensions.id.traverse.traverse
@@ -16,6 +17,7 @@ import arrow.core.extensions.semigroup
1617
import arrow.test.UnitSpec
1718
import arrow.test.laws.*
1819
import arrow.typeclasses.Eq
20+
import arrow.typeclasses.Selective
1921
import io.kotlintest.properties.Gen
2022
import io.kotlintest.properties.forAll
2123
import io.kotlintest.runner.junit4.KotlinTestRunner
@@ -31,7 +33,8 @@ class IdTest : UnitSpec() {
3133
MonadLaws.laws(Id.monad(), Eq.any()),
3234
TraverseLaws.laws(Id.traverse(), Id.applicative(), ::Id, Eq.any()),
3335
ComonadLaws.laws(Id.comonad(), ::Id, Eq.any()),
34-
HashLaws.laws(Id.hash(Int.hash()), Id.eq(Int.eq())) { Id(it) }
36+
HashLaws.laws(Id.hash(Int.hash()), Id.eq(Int.eq())) { Id(it) },
37+
SelectiveLaws.laws(Id.selective(), Eq.any())
3538
)
3639

3740
"Semigroup of Id<A> is Id<Semigroup<A>>"() {

modules/core/arrow-core-data/src/test/kotlin/arrow/core/OptionTest.kt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import arrow.core.extensions.option.applicative.applicative
88
import arrow.core.extensions.option.eq.eq
99
import arrow.core.extensions.option.hash.hash
1010
import arrow.core.extensions.option.monoid.monoid
11+
import arrow.core.extensions.option.selective.selective
1112
import arrow.core.extensions.option.semigroupal.semigroupal
1213
import arrow.core.extensions.option.show.show
1314
import arrow.core.extensions.tuple2.eq.eq
@@ -49,7 +50,8 @@ class OptionTest : UnitSpec() {
4950
TraverseFilterLaws.laws(Option.traverseFilter(), Option.applicative(), ::Some, Eq.any()),
5051
MonadFilterLaws.laws(Option.monadFilter(), ::Some, Eq.any()),
5152
HashLaws.laws(Option.hash(Int.hash()), Option.eq(Int.eq())) { it.some() },
52-
SemigroupalLaws.laws(Option.semigroupal(), ::Some, ::bijection, associativeSemigroupalEq)
53+
SemigroupalLaws.laws(Option.semigroupal(), ::Some, ::bijection, associativeSemigroupalEq),
54+
SelectiveLaws.laws(Option.selective(), Eq.any())
5355
)
5456

5557
"fromNullable should work for both null and non-null values of nullable types" {

0 commit comments

Comments
 (0)