-
-
Notifications
You must be signed in to change notification settings - Fork 1.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Faster tests by reducing the size of lists #1759
Faster tests by reducing the size of lists #1759
Conversation
@@ -34,30 +37,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] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We don't need this ceremony anymore.
} | ||
} | ||
checkAll("Cokleisli[List, Int, Int]", SemigroupKTests[λ[α => Cokleisli[List, α, α]]].semigroupK[Int]) | ||
checkAll("SemigroupK[λ[α => Cokleisli[List, α, α]]]", SerializableTests.serializable(SemigroupK[λ[α => Cokleisli[List, α, α]]])) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Cokleisli
's SemigroupK
instance just needs a CoflatMap[F]
so I replaced NonEmptyList
with List
.
@@ -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) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Keeping minSuccessful
as it is set in CatsSuite
only seems to add around half a second to the total test time of WriterTTests
.
@@ -11,6 +11,9 @@ import org.scalacheck.Arbitrary | |||
|
|||
class CokleisliTests extends SlowCatsSuite { | |||
|
|||
implicit override val generatorDrivenConfig: PropertyCheckConfiguration = | |||
slowCheckConfiguration.copy(sizeRange = slowCheckConfiguration.sizeRange.min(5)) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Reducing minSuccessful
would reduce the time for CokleisliTests
:
- 50, around 1m20s (now, default value
CatsSuite
for JVM) - 25, around 50s
- 20, around 30s
Opinions?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
20 sounds safe enough to me. 1m is a big difference for people who wants to work on cokleisli.
Codecov Report
@@ Coverage Diff @@
## master #1759 +/- ##
=======================================
Coverage 94.17% 94.17%
=======================================
Files 256 256
Lines 4208 4208
Branches 93 93
=======================================
Hits 3963 3963
Misses 245 245 Continue to review full report at Codecov.
|
looks like it reduced the build time by about 5-10 min. Thanks so much @peterneyens |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
So many times, yes
(Partial) fix for #1757.
This doesn't help to speed up the associativity laws in
CokleisliTests
(or not very much).