Skip to content

Commit

Permalink
Faster tests by reducing the size of lists (#1759)
Browse files Browse the repository at this point in the history
* Reduce the size of lists for faster tests

* Reduce minimal successful matches CokleisliTests
  • Loading branch information
peterneyens authored and kailuowang committed Jul 7, 2017
1 parent d642013 commit 099e459
Show file tree
Hide file tree
Showing 4 changed files with 23 additions and 24 deletions.
33 changes: 11 additions & 22 deletions tests/src/test/scala/cats/tests/CokleisliTests.scala
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,11 @@ import org.scalacheck.Arbitrary

class CokleisliTests extends SlowCatsSuite {

implicit override val generatorDrivenConfig: PropertyCheckConfiguration =
slowCheckConfiguration.copy(
sizeRange = slowCheckConfiguration.sizeRange.min(5),
minSuccessful = slowCheckConfiguration.minSuccessful.min(20))

implicit def cokleisliEq[F[_], A, B](implicit A: Arbitrary[F[A]], FB: Eq[B]): Eq[Cokleisli[F, A, B]] =
Eq.by[Cokleisli[F, A, B], F[A] => B](_.run)

Expand All @@ -34,30 +39,14 @@ class CokleisliTests extends SlowCatsSuite {
checkAll("Cokleisli[Option, Int, Int]", ContravariantTests[Cokleisli[Option, ?, Int]].contravariant[Int, Int, Int])
checkAll("Contravariant[Cokleisli[Option, ?, Int]]", SerializableTests.serializable(Contravariant[Cokleisli[Option, ?, Int]]))

{
// Ceremony to help scalac to do the right thing, see also #267.
type CokleisliNEL[A, B] = Cokleisli[NonEmptyList, A, B]

checkAll("Cokleisli[NonEmptyList, Int, Int]", ArrowTests[CokleisliNEL].arrow[Int, Int, Int, Int, Int, Int])
checkAll("Arrow[Cokleisli[NonEmptyList, ?, ?]]", SerializableTests.serializable(Arrow[CokleisliNEL]))
}
checkAll("Cokleisli[NonEmptyList, Int, Int]", ArrowTests[Cokleisli[NonEmptyList, ?, ?]].arrow[Int, Int, Int, Int, Int, Int])
checkAll("Arrow[Cokleisli[NonEmptyList, ?, ?]]", SerializableTests.serializable(Arrow[Cokleisli[NonEmptyList, ?, ?]]))

{
// More ceremony, see above
type CokleisliNELE[A] = Cokleisli[NonEmptyList, A, A]
checkAll("Cokleisli[NonEmptyList, Int, Int]", MonoidKTests[λ[α => Cokleisli[NonEmptyList, α, α]]].monoidK[Int])
checkAll("MonoidK[λ[α => Cokleisli[NonEmptyList, α, α]]]", SerializableTests.serializable(MonoidK[λ[α => Cokleisli[NonEmptyList, α, α]]]))

{
implicit val cokleisliMonoidK = Cokleisli.catsDataMonoidKForCokleisli[NonEmptyList]
checkAll("Cokleisli[NonEmptyList, Int, Int]", MonoidKTests[CokleisliNELE].monoidK[Int])
checkAll("MonoidK[λ[α => Cokleisli[NonEmptyList, α, α]]]", SerializableTests.serializable(cokleisliMonoidK))
}

{
implicit val cokleisliSemigroupK = Cokleisli.catsDataSemigroupKForCokleisli[NonEmptyList]
checkAll("Cokleisli[NonEmptyList, Int, Int]", SemigroupKTests[CokleisliNELE].semigroupK[Int])
checkAll("SemigroupK[λ[α => Cokleisli[NonEmptyList, α, α]]]", SerializableTests.serializable(cokleisliSemigroupK))
}
}
checkAll("Cokleisli[List, Int, Int]", SemigroupKTests[λ[α => Cokleisli[List, α, α]]].semigroupK[Int])
checkAll("SemigroupK[λ[α => Cokleisli[List, α, α]]]", SerializableTests.serializable(SemigroupK[λ[α => Cokleisli[List, α, α]]]))

test("contramapValue with Id consistent with lmap"){
forAll { (c: Cokleisli[Id, Int, Long], f: Char => Int) =>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ class ReaderWriterStateTTests extends CatsSuite {

test("Traversing with ReaderWriterState is stack-safe") {
val ns = (0 to 100000).toList
val rws = ns.traverse(_ => addAndLog(1))
val rws = ns.traverse(_ => addLogUnit(1))

rws.runS("context", 0).value should === (100001)
}
Expand Down Expand Up @@ -394,6 +394,12 @@ object ReaderWriterStateTTests {
}
}

def addLogUnit(i: Int): ReaderWriterState[String, Int, Unit, Int] = {
import cats.kernel.instances.unit._

ReaderWriterState { (context, state) => ((), state + i, state + i) }
}

implicit def RWSTEq[F[_], E, S, L, A](implicit S: Arbitrary[S], E: Arbitrary[E], FLSA: Eq[F[(L, S, A)]],
F: Monad[F]): Eq[ReaderWriterStateT[F, E, S, L, A]] =
Eq.by[ReaderWriterStateT[F, E, S, L, A], (E, S) => F[(L, S, A)]] { state =>
Expand Down
4 changes: 4 additions & 0 deletions tests/src/test/scala/cats/tests/StateTTests.scala
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,10 @@ import cats.laws.discipline.arbitrary._
import org.scalacheck.Arbitrary

class StateTTests extends CatsSuite {

implicit override val generatorDrivenConfig: PropertyCheckConfiguration =
checkConfiguration.copy(sizeRange = 5)

import StateTTests._

test("basic state usage"){
Expand Down
2 changes: 1 addition & 1 deletion tests/src/test/scala/cats/tests/WriterTTests.scala
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ class WriterTTests extends CatsSuite {
// Scalacheck to calm down a bit so we don't hit memory and test duration
// issues.
implicit override val generatorDrivenConfig: PropertyCheckConfiguration =
PropertyCheckConfiguration(minSuccessful = 20, sizeRange = 5)
checkConfiguration.copy(sizeRange = 5)

checkAll("WriterT[List, Int, Int]", OrderLaws[WriterT[List, Int, Int]].eqv)
checkAll("Eq[WriterT[List, Int, Int]]", SerializableTests.serializable(Eq[WriterT[List, Int, Int]]))
Expand Down

0 comments on commit 099e459

Please sign in to comment.