refined NetGens
Import
import hedgehog.*
import hedgehog.extra.refined.NetGens
import eu.timepit.refined.types.net.*
Port generators
val genPortNumber: Gen[PortNumber] =
NetGens.genPortNumber
// genPortNumber: GenT[PortNumber] = GenT(
// run = hedgehog.core.GenT$$Lambda$11268/0x00007f0539e251c8@447be8b9
// )
val genSystemPortNumber: Gen[SystemPortNumber] =
NetGens.genSystemPortNumber
// genSystemPortNumber: GenT[SystemPortNumber] = GenT(
// run = hedgehog.core.GenT$$Lambda$11268/0x00007f0539e251c8@27c08abe
// )
val genUserPortNumber: Gen[UserPortNumber] =
NetGens.genUserPortNumber
// genUserPortNumber: GenT[UserPortNumber] = GenT(
// run = hedgehog.core.GenT$$Lambda$11268/0x00007f0539e251c8@56f49a3d
// )
val genDynamicPortNumber: Gen[DynamicPortNumber] =
NetGens.genDynamicPortNumber
// genDynamicPortNumber: GenT[DynamicPortNumber] = GenT(
// run = hedgehog.core.GenT$$Lambda$11268/0x00007f0539e251c8@4501e7b7
// )
val genNonSystemPortNumber: Gen[NonSystemPortNumber] =
NetGens.genNonSystemPortNumber
// genNonSystemPortNumber: GenT[NonSystemPortNumber] = GenT(
// run = hedgehog.core.GenT$$Lambda$11268/0x00007f0539e251c8@5ea4e18e
// )
import hedgehog.*
import hedgehog.runner.*
import hedgehog.extra.refined.NetGens
object NetGensExampleSpec extends Properties {
override def tests: List[Test] = List(
property(
"Example for genPortNumber",
testExampleForGenPortNumber
).withTests(5), // only for documentation to show fewer logs
property(
"Example for genSystemPortNumber",
testExampleForGenSystemPortNumber
).withTests(5), // only for documentation to show fewer logs
property(
"Example for genUserPortNumber",
testExampleForGenUserPortNumber
).withTests(5), // only for documentation to show fewer logs
property(
"Example for genDynamicPortNumber",
testExampleForGenDynamicPortNumber
).withTests(5), // only for documentation to show fewer logs
property(
"Example for genNonSystemPortNumber",
testExampleForGenNonSystemPortNumber
).withTests(5), // only for documentation to show fewer logs
)
def testExampleForGenPortNumber: Property =
for {
p <- NetGens.genPortNumber.log("p")
} yield {
println(s"p: $p") // only for documentation to show the value
Result.all(List(
Result.diffNamed(s"The value [$p] must be >= 0", p.value, 0)(_ >= _),
Result.diffNamed(s"The value [$p] must be <= 65535", p.value, 65535)(_ <= _),
))
}
def testExampleForGenSystemPortNumber: Property =
for {
p <- NetGens.genSystemPortNumber.log("p")
} yield {
println(s"p: $p") // only for documentation to show the value
Result.all(List(
Result.diffNamed(s"The value [$p] must be >= 0", p.value, 0)(_ >= _),
Result.diffNamed(s"The value [$p] must be <= 1023", p.value, 1023)(_ <= _),
))
}
def testExampleForGenUserPortNumber: Property =
for {
p <- NetGens.genUserPortNumber.log("p")
} yield {
println(s"p: $p") // only for documentation to show the value
Result.all(List(
Result.diffNamed(s"The value [$p] must be >= 1024", p.value, 1024)(_ >= _),
Result.diffNamed(s"The value [$p] must be <= 49151", p.value, 49151)(_ <= _),
))
}
def testExampleForGenDynamicPortNumber: Property =
for {
p <- NetGens.genDynamicPortNumber.log("p")
} yield {
println(s"p: $p") // only for documentation to show the value
Result.all(List(
Result.diffNamed(s"The value [$p] must be >= 49152", p.value, 49152)(_ >= _),
Result.diffNamed(s"The value [$p] must be <= 65535", p.value, 65535)(_ <= _),
))
}
def testExampleForGenNonSystemPortNumber: Property =
for {
p <- NetGens.genNonSystemPortNumber.log("p")
} yield {
println(s"p: $p") // only for documentation to show the value
Result.all(List(
Result.diffNamed(s"The value [$p] must be >= 1024", p.value, 1024)(_ >= _),
Result.diffNamed(s"The value [$p] must be <= 65535", p.value, 65535)(_ <= _),
))
}
}
// This is only for doc. Your test code should be run by sbt (or maybe another build tool)
NetGensExampleSpec.main(Array.empty)
// Using random seed: 138320683480
// p: 323
// p: 23492
// p: 22536
// p: 31153
// p: 34284
// [32m+[0m repl.MdocSession$MdocApp0$NetGensExampleSpec$.Example for genPortNumber: OK, passed 5 tests
// p: 25
// p: 262
// p: 122
// p: 173
// p: 671
// [32m+[0m repl.MdocSession$MdocApp0$NetGensExampleSpec$.Example for genSystemPortNumber: OK, passed 5 tests
// p: 10609
// p: 5592
// p: 4065
// p: 35349
// p: 48628
// [32m+[0m repl.MdocSession$MdocApp0$NetGensExampleSpec$.Example for genUserPortNumber: OK, passed 5 tests
// p: 50169
// p: 49537
// p: 50114
// p: 56921
// p: 51413
// [32m+[0m repl.MdocSession$MdocApp0$NetGensExampleSpec$.Example for genDynamicPortNumber: OK, passed 5 tests
// p: 2091
// p: 21902
// p: 35719
// p: 20387
// p: 30935
// [32m+[0m repl.MdocSession$MdocApp0$NetGensExampleSpec$.Example for genNonSystemPortNumber: OK, passed 5 tests