Skip to content
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

remove unnecessary Duration scalacheck instances #3817

Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 4 additions & 28 deletions kernel-laws/shared/src/test/scala/cats/kernel/laws/LawTests.scala
Original file line number Diff line number Diff line change
Expand Up @@ -30,23 +30,6 @@ object KernelCheck {
implicit val arbitraryUUID: Arbitrary[UUID] =
Arbitrary(Gen.uuid)

implicit val arbitraryDuration: Arbitrary[Duration] = {
// max range is +/- 292 years, but we give ourselves some extra headroom
// to ensure that we can add these things up. they crash on overflow.
val n = (292L * 365) / 500
Arbitrary(
Gen.oneOf(
Gen.choose(-n, n).map(Duration(_, DAYS)),
Gen.choose(-n * 24L, n * 24L).map(Duration(_, HOURS)),
Gen.choose(-n * 1440L, n * 1440L).map(Duration(_, MINUTES)),
Gen.choose(-n * 86400L, n * 86400L).map(Duration(_, SECONDS)),
Gen.choose(-n * 86400000L, n * 86400000L).map(Duration(_, MILLISECONDS)),
Gen.choose(-n * 86400000000L, n * 86400000000L).map(Duration(_, MICROSECONDS)),
Gen.choose(-n * 86400000000000L, n * 86400000000000L).map(Duration(_, NANOSECONDS))
)
)
}

implicit val arbitraryFiniteDuration: Arbitrary[FiniteDuration] = {
// max range is +/- 292 years, but we give ourselves some extra headroom
// to ensure that we can add these things up. they crash on overflow.
Expand All @@ -64,6 +47,10 @@ object KernelCheck {
)
}

// `Duration.Undefined`, `Duration.Inf` and `Duration.MinusInf` break the tests
implicit val arbitraryDuration: Arbitrary[Duration] =
Arbitrary(arbitraryFiniteDuration.arbitrary.map(fd => fd: Duration))

// Copied from cats-laws.
implicit def arbitrarySortedMap[K: Arbitrary: Order, V: Arbitrary]: Arbitrary[SortedMap[K, V]] =
Arbitrary(arbitrary[Map[K, V]].map(s => SortedMap.empty[K, V](implicitly[Order[K]].toOrdering) ++ s))
Expand Down Expand Up @@ -101,17 +88,6 @@ object KernelCheck {

implicit val cogenUUID: Cogen[UUID] =
Cogen[(Long, Long)].contramap(u => (u.getMostSignificantBits, u.getLeastSignificantBits))

implicit val cogenDuration: Cogen[Duration] =
Cogen[Long].contramap { d =>
if (d == Duration.Inf) 3896691548866406746L
else if (d == Duration.MinusInf) 1844151880988859955L
else if (d == Duration.Undefined) -7917359255778781894L
else d.toNanos
}

implicit val cogenFiniteDuration: Cogen[FiniteDuration] =
Cogen[Long].contramap(_.toNanos)
}

class TestsConfig extends ScalaCheckSuite {
Expand Down