Skip to content

Commit

Permalink
Merge pull request #3817 from tnielens/remove-unnecessary-duration-sc…
Browse files Browse the repository at this point in the history
…alacheck-instances

remove unnecessary Duration scalacheck instances
  • Loading branch information
larsrh authored Mar 1, 2021
2 parents 806488e + 5b12748 commit a0f9dcc
Showing 1 changed file with 4 additions and 28 deletions.
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

0 comments on commit a0f9dcc

Please sign in to comment.