Skip to main content

refined NumGens

Import​

import hedgehog.*
import hedgehog.extra.refined.NumGens
import eu.timepit.refined.types.numeric.*

Numeric refined generators​

val genNegInt: Gen[NegInt] =
NumGens.genNegInt(NegInt.unsafeFrom(-100), NegInt.unsafeFrom(-1))
// genNegInt: GenT[NegInt] = GenT(
// hedgehog.core.GenT$$Lambda$11543/0x00007fa1b9e8a6e0@160cdf34
// )

val genNonPosInt: Gen[NonPosInt] =
NumGens.genNonPosInt(NonPosInt.unsafeFrom(-100), NonPosInt.unsafeFrom(0))
// genNonPosInt: GenT[NonPosInt] = GenT(
// hedgehog.core.GenT$$Lambda$11543/0x00007fa1b9e8a6e0@62e2ed18
// )

val genPosInt: Gen[PosInt] =
NumGens.genPosInt(PosInt.unsafeFrom(1), PosInt.unsafeFrom(100))
// genPosInt: GenT[PosInt] = GenT(
// hedgehog.core.GenT$$Lambda$11543/0x00007fa1b9e8a6e0@45a30784
// )

val genNonNegInt: Gen[NonNegInt] =
NumGens.genNonNegInt(NonNegInt.unsafeFrom(0), NonNegInt.unsafeFrom(100))
// genNonNegInt: GenT[NonNegInt] = GenT(
// hedgehog.core.GenT$$Lambda$11543/0x00007fa1b9e8a6e0@56a489ce
// )

val genNegLong: Gen[NegLong] =
NumGens.genNegLong(NegLong.unsafeFrom(-1000L), NegLong.unsafeFrom(-1L))
// genNegLong: GenT[NegLong] = GenT(
// hedgehog.core.GenT$$Lambda$11543/0x00007fa1b9e8a6e0@32ec918d
// )

val genNonPosLong: Gen[NonPosLong] =
NumGens.genNonPosLong(NonPosLong.unsafeFrom(-1000L), NonPosLong.unsafeFrom(0L))
// genNonPosLong: GenT[NonPosLong] = GenT(
// hedgehog.core.GenT$$Lambda$11543/0x00007fa1b9e8a6e0@73ecde45
// )

val genPosLong: Gen[PosLong] =
NumGens.genPosLong(PosLong.unsafeFrom(1L), PosLong.unsafeFrom(1000L))
// genPosLong: GenT[PosLong] = GenT(
// hedgehog.core.GenT$$Lambda$11543/0x00007fa1b9e8a6e0@7a48eb7
// )

val genNonNegLong: Gen[NonNegLong] =
NumGens.genNonNegLong(NonNegLong.unsafeFrom(0L), NonNegLong.unsafeFrom(1000L))
// genNonNegLong: GenT[NonNegLong] = GenT(
// hedgehog.core.GenT$$Lambda$11543/0x00007fa1b9e8a6e0@6f24761b
// )

val genNegDouble: Gen[NegDouble] =
NumGens.genNegDouble(NegDouble.unsafeFrom(-100.0d), NegDouble.unsafeFrom(-0.1d))
// genNegDouble: GenT[NegDouble] = GenT(
// hedgehog.core.GenT$$Lambda$11543/0x00007fa1b9e8a6e0@72ce23d4
// )

val genNonPosDouble: Gen[NonPosDouble] =
NumGens.genNonPosDouble(NonPosDouble.unsafeFrom(-10.0), NonPosDouble.unsafeFrom(0.0))
// genNonPosDouble: GenT[NonPosDouble] = GenT(
// hedgehog.core.GenT$$Lambda$11543/0x00007fa1b9e8a6e0@571b5e5b
// )

val genPosDouble: Gen[PosDouble] =
NumGens.genPosDouble(PosDouble.unsafeFrom(0.1d), PosDouble.unsafeFrom(100.0d))
// genPosDouble: GenT[PosDouble] = GenT(
// hedgehog.core.GenT$$Lambda$11543/0x00007fa1b9e8a6e0@3b9bed00
// )

val genNonNegDouble: Gen[NonNegDouble] =
NumGens.genNonNegDouble(NonNegDouble.unsafeFrom(0.0d), NonNegDouble.unsafeFrom(100.0d))
// genNonNegDouble: GenT[NonNegDouble] = GenT(
// hedgehog.core.GenT$$Lambda$11543/0x00007fa1b9e8a6e0@2ddb82a5
// )
import hedgehog.*
import hedgehog.runner.*

import hedgehog.extra.refined.NumGens

import eu.timepit.refined.types.numeric.*

object NumGensExampleSpec extends Properties {
override def tests: List[Test] = List(
property(
"Example for genNegInt",
testExampleForGenNegInt
).withTests(5), // only for documentation to show fewer logs
property(
"Example for genPosInt",
testExampleForGenPosInt
).withTests(5), // only for documentation to show fewer logs
property(
"Example for genNonNegLong",
testExampleForGenNonNegLong
).withTests(5), // only for documentation to show fewer logs
property(
"Example for genNonPosDouble",
testExampleForGenNonPosDouble
).withTests(5), // only for documentation to show fewer logs
)

def testExampleForGenNegInt: Property =
for {
n <- NumGens.genNegInt(NegInt.unsafeFrom(-100), NegInt.unsafeFrom(-1)).log("n")
} yield {
println(s"n: $n") // only for documentation to show the value
Result.all(List(
Result.diffNamed(s"The value [$n] must be >= -100", n.value, -100)(_ >= _),
Result.diffNamed(s"The value [$n] must be <= -1", n.value, -1)(_ <= _),
))
}

def testExampleForGenPosInt: Property =
for {
n <- NumGens.genPosInt(PosInt.unsafeFrom(1), PosInt.unsafeFrom(100)).log("n")
} yield {
println(s"n: $n") // only for documentation to show the value
Result.all(List(
Result.diffNamed(s"The value [$n] must be >= 1", n.value, 1)(_ >= _),
Result.diffNamed(s"The value [$n] must be <= 100", n.value, 100)(_ <= _),
))
}

def testExampleForGenNonNegLong: Property =
for {
n <- NumGens.genNonNegLong(NonNegLong.unsafeFrom(0L), NonNegLong.unsafeFrom(1000L)).log("n")
} yield {
println(s"n: $n") // only for documentation to show the value
Result.all(List(
Result.diffNamed(s"The value [$n] must be >= 0L", n.value, 0L)(_ >= _),
Result.diffNamed(s"The value [$n] must be <= 1000L", n.value, 1000L)(_ <= _),
))
}

def testExampleForGenNonPosDouble: Property =
for {
n <- NumGens.genNonPosDouble(NonPosDouble.unsafeFrom(-10.0), NonPosDouble.unsafeFrom(0.0)).log("n")
} yield {
println(s"n: $n") // only for documentation to show the value
Result.all(List(
Result.diffNamed(s"The value [$n] must be >= -10.0d", n.value, -10.0d)(_ >= _),
Result.diffNamed(s"The value [$n] must be <= 0.0d", n.value, 0.0d)(_ <= _),
))
}
}

// This is only for doc. Your test code should be run by sbt (or maybe another build tool)
NumGensExampleSpec.main(Array.empty)
// Using random seed: 84189604444
// n: -85
// n: -66
// n: -78
// n: -39
// n: -60
// + repl.MdocSession$MdocApp0$NumGensExampleSpec$.Example for genNegInt: OK, passed 5 tests
// n: 16
// n: 35
// n: 23
// n: 62
// n: 41
// + repl.MdocSession$MdocApp0$NumGensExampleSpec$.Example for genPosInt: OK, passed 5 tests
// n: 9
// n: 197
// n: 324
// n: 62
// n: 117
// + repl.MdocSession$MdocApp0$NumGensExampleSpec$.Example for genNonNegLong: OK, passed 5 tests
// n: -9.353742966477226
// n: -8.912676559491238
// n: -8.944169562714647
// n: -7.721205487693279
// n: -5.84687108199126
// + repl.MdocSession$MdocApp0$NumGensExampleSpec$.Example for genNonPosDouble: OK, passed 5 tests

Helper variants​

val genNegIntMinTo: Gen[NegInt] =
NumGens.genNegIntMinTo(NegInt.unsafeFrom(-500))
// genNegIntMinTo: GenT[NegInt] = GenT(
// hedgehog.core.GenT$$Lambda$11543/0x00007fa1b9e8a6e0@4e26c8b2
// )

val genNonPosIntMinTo: Gen[NonPosInt] =
NumGens.genNonPosIntMinTo(NonPosInt.unsafeFrom(-500))
// genNonPosIntMinTo: GenT[NonPosInt] = GenT(
// hedgehog.core.GenT$$Lambda$11543/0x00007fa1b9e8a6e0@7ea5b3ed
// )

val genPosIntMaxTo: Gen[PosInt] =
NumGens.genPosIntMaxTo(PosInt.unsafeFrom(1000))
// genPosIntMaxTo: GenT[PosInt] = GenT(
// hedgehog.core.GenT$$Lambda$11543/0x00007fa1b9e8a6e0@a655c93
// )

val genNonNegIntMaxTo: Gen[NonNegInt] =
NumGens.genNonNegIntMaxTo(NonNegInt.unsafeFrom(1000))
// genNonNegIntMaxTo: GenT[NonNegInt] = GenT(
// hedgehog.core.GenT$$Lambda$11543/0x00007fa1b9e8a6e0@5f88cb74
// )

val genNegLongMinTo: Gen[NegLong] =
NumGens.genNegLongMinTo(NegLong.unsafeFrom(-10000L))
// genNegLongMinTo: GenT[NegLong] = GenT(
// hedgehog.core.GenT$$Lambda$11543/0x00007fa1b9e8a6e0@7e1ff0ea
// )

val genNonPosLongMinTo: Gen[NonPosLong] =
NumGens.genNonPosLongMinTo(NonPosLong.unsafeFrom(-10000L))
// genNonPosLongMinTo: GenT[NonPosLong] = GenT(
// hedgehog.core.GenT$$Lambda$11543/0x00007fa1b9e8a6e0@626f2c47
// )

val genPosLongMaxTo: Gen[PosLong] =
NumGens.genPosLongMaxTo(PosLong.unsafeFrom(10000L))
// genPosLongMaxTo: GenT[PosLong] = GenT(
// hedgehog.core.GenT$$Lambda$11543/0x00007fa1b9e8a6e0@4890a275
// )

val genNonNegLongMaxTo: Gen[NonNegLong] =
NumGens.genNonNegLongMaxTo(NonNegLong.unsafeFrom(10000L))
// genNonNegLongMaxTo: GenT[NonNegLong] = GenT(
// hedgehog.core.GenT$$Lambda$11543/0x00007fa1b9e8a6e0@42db604
// )

val genNegDoubleMinTo: Gen[NegDouble] =
NumGens.genNegDoubleMinTo(NegDouble.unsafeFrom(-500.0d))
// genNegDoubleMinTo: GenT[NegDouble] = GenT(
// hedgehog.core.GenT$$Lambda$11543/0x00007fa1b9e8a6e0@4cf7cdb4
// )

val genNonPosDoubleMinTo: Gen[NonPosDouble] =
NumGens.genNonPosDoubleMinTo(NonPosDouble.unsafeFrom(-500.0d))
// genNonPosDoubleMinTo: GenT[NonPosDouble] = GenT(
// hedgehog.core.GenT$$Lambda$11543/0x00007fa1b9e8a6e0@671f2c79
// )

val genPosDoubleMaxTo: Gen[PosDouble] =
NumGens.genPosDoubleMaxTo(PosDouble.unsafeFrom(1000.0d))
// genPosDoubleMaxTo: GenT[PosDouble] = GenT(
// hedgehog.core.GenT$$Lambda$11543/0x00007fa1b9e8a6e0@5ea2f892
// )

val genNonNegDoubleMaxTo: Gen[NonNegDouble] =
NumGens.genNonNegDoubleMaxTo(NonNegDouble.unsafeFrom(1000.0d))
// genNonNegDoubleMaxTo: GenT[NonNegDouble] = GenT(
// hedgehog.core.GenT$$Lambda$11543/0x00007fa1b9e8a6e0@174da64e
// )
import hedgehog.*
import hedgehog.runner.*

import hedgehog.extra.refined.NumGens

import eu.timepit.refined.types.numeric.*

object NumGensVariantsExampleSpec extends Properties {
override def tests: List[Test] = List(
property(
"Example for genNegIntMinTo",
testExampleForGenNegIntMinTo
).withTests(5), // only for documentation to show fewer logs
property(
"Example for genPosLongMaxTo",
testExampleForGenPosLongMaxTo
).withTests(5), // only for documentation to show fewer logs
)

def testExampleForGenNegIntMinTo: Property =
for {
n <- NumGens.genNegIntMinTo(NegInt.unsafeFrom(-500)).log("n")
} yield {
println(s"n: $n") // only for documentation to show the value
Result.all(List(
Result.diffNamed(s"The value [$n] must be >= -500", n.value, -500)(_ >= _),
Result.diffNamed(s"The value [$n] must be <= -1", n.value, -1)(_ <= _),
))
}

def testExampleForGenPosLongMaxTo: Property =
for {
n <- NumGens.genPosLongMaxTo(PosLong.unsafeFrom(10000L)).log("n")
} yield {
println(s"n: $n") // only for documentation to show the value
Result.all(List(
Result.diffNamed(s"The value [$n] must be >= 1L", n.value, 1L)(_ >= _),
Result.diffNamed(s"The value [$n] must be <= 10000L", n.value, 10000L)(_ <= _),
))
}
}

// This is only for doc. Your test code should be run by sbt (or maybe another build tool)
NumGensVariantsExampleSpec.main(Array.empty)
// Using random seed: 84199777886
// n: -441
// n: -480
// n: -476
// n: -439
// n: -158
// + repl.MdocSession$MdocApp2$NumGensVariantsExampleSpec$.Example for genNegIntMinTo: OK, passed 5 tests
// n: 549
// n: 746
// n: 3904
// n: 1116
// n: 6510
// + repl.MdocSession$MdocApp2$NumGensVariantsExampleSpec$.Example for genPosLongMaxTo: OK, passed 5 tests