Skip to content

Commit 1e80d70

Browse files
committed
Merge pull request #748 from ceedubs/kleisli-identities
Add tests of kleisli left and right identity laws
2 parents 0a10e76 + 03ffaa8 commit 1e80d70

1 file changed

Lines changed: 17 additions & 1 deletion

File tree

tests/src/test/scala/cats/tests/OptionTests.scala

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package cats
22
package tests
33

4-
import cats.laws.{ApplicativeLaws, CoflatMapLaws, FlatMapLaws}
4+
import cats.laws.{ApplicativeLaws, CoflatMapLaws, FlatMapLaws, MonadLaws}
55
import cats.laws.discipline.{TraverseTests, CoflatMapTests, MonadCombineTests, SerializableTests, MonoidalTests}
66
import cats.laws.discipline.eq._
77

@@ -60,4 +60,20 @@ class OptionTests extends CatsSuite {
6060
isEq.lhs should === (isEq.rhs)
6161
}
6262
}
63+
64+
val monadLaws = MonadLaws[Option]
65+
66+
test("Kleisli left identity") {
67+
forAll { (a: Int, f: Int => Option[Long]) =>
68+
val isEq = monadLaws.kleisliLeftIdentity(a, f)
69+
isEq.lhs should === (isEq.rhs)
70+
}
71+
}
72+
73+
test("Kleisli right identity") {
74+
forAll { (a: Int, f: Int => Option[Long]) =>
75+
val isEq = monadLaws.kleisliRightIdentity(a, f)
76+
isEq.lhs should === (isEq.rhs)
77+
}
78+
}
6379
}

0 commit comments

Comments
 (0)