Skip to main content

refined4s NumGens

Import​

import hedgehog.*
import hedgehog.extra.refined4s.gens.NumGens
import refined4s.types.all.*

Numeric refined generators​

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

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

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

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

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

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

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

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

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

val genNonPosDouble: Gen[NonPosDouble] =
NumGens.genNonPosDouble(NonPosDouble(-100.0d), NonPosDouble(0.0d))
// genNonPosDouble: GenT[NonPosDouble] = GenT(
// hedgehog.core.GenT$$Lambda$11543/0x00007fa1b9e8a6e0@7c1a886e
// )

val genPosDouble: Gen[PosDouble] =
NumGens.genPosDouble(PosDouble(0.1d), PosDouble(100d))
// genPosDouble: GenT[PosDouble] = GenT(
// hedgehog.core.GenT$$Lambda$11543/0x00007fa1b9e8a6e0@5866dc7
// )

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

import hedgehog.extra.refined4s.gens.NumGens

import refined4s.types.all.*

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 genPosDouble",
testExampleForGenPosDouble
).withTests(5), // only for documentation to show fewer logs
)

def testExampleForGenNegInt: Property =
for {
n <- NumGens.genNegInt(NegInt(-100), NegInt(-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(1), PosInt(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(0L), NonNegLong(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 testExampleForGenPosDouble: Property =
for {
n <- NumGens.genPosDouble(PosDouble(0.1d), PosDouble(100d)).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 >= 0.1d", n.value, 0.1d)(_ >= _),
Result.diffNamed(s"The value [$n] must be <= 100d", n.value, 100d)(_ <= _),
))
}

}

// 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: 88006437103
// n: -93
// n: -78
// n: -57
// n: -94
// n: -52
// + repl.MdocSession$MdocApp0$NumGensExampleSpec$.Example for genNegInt: OK, passed 5 tests
// n: 8
// n: 23
// n: 44
// n: 7
// n: 49
// + repl.MdocSession$MdocApp0$NumGensExampleSpec$.Example for genPosInt: OK, passed 5 tests
// n: 124
// n: 192
// n: 313
// n: 225
// n: 842
// + repl.MdocSession$MdocApp0$NumGensExampleSpec$.Example for genNonNegLong: OK, passed 5 tests
// n: 17.986943158692817
// n: 7.494623920593539
// n: 31.510408274276926
// n: 27.376629691652525
// n: 41.86783517531118
// + repl.MdocSession$MdocApp0$NumGensExampleSpec$.Example for genPosDouble: OK, passed 5 tests

Helper variants​

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

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

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

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

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

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

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

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

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

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

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

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

import hedgehog.extra.refined4s.gens.NumGens

import refined4s.types.all.*

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 genNonNegIntMaxTo",
testExampleForGenNonNegIntMaxTo
).withTests(5), // only for documentation to show fewer logs
)

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

def testExampleForGenNonNegIntMaxTo: Property =
for {
n <- NumGens.genNonNegIntMaxTo(NonNegInt(1000)).log("n")
} yield {
println(s"n: $n") // only for documentation to show the value
Result.diffNamed(s"The value [$n] must be <= 1000", n.value, 1000)(_ <= _)
}

}

// 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: 88017465313
// n: -449
// n: -334
// n: -277
// n: -437
// n: -172
// + repl.MdocSession$MdocApp2$NumGensVariantsExampleSpec$.Example for genNegIntMinTo: OK, passed 5 tests
// n: 152
// n: 166
// n: 223
// n: 63
// n: 328
// + repl.MdocSession$MdocApp2$NumGensVariantsExampleSpec$.Example for genNonNegIntMaxTo: OK, passed 5 tests