Skip to main content

refined4s NetworkGens

Import

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

Port generators

val genPortNumber: Gen[PortNumber] =
NetworkGens.genPortNumber
// genPortNumber: GenT[PortNumber] = GenT(
// run = hedgehog.core.GenT$$Lambda$11268/0x00007f0539e251c8@2e720867
// )

val genSystemPortNumber: Gen[SystemPortNumber] =
NetworkGens.genSystemPortNumber
// genSystemPortNumber: GenT[SystemPortNumber] = GenT(
// run = hedgehog.core.GenT$$Lambda$11268/0x00007f0539e251c8@718b4eeb
// )

val genUserPortNumber: Gen[UserPortNumber] =
NetworkGens.genUserPortNumber
// genUserPortNumber: GenT[UserPortNumber] = GenT(
// run = hedgehog.core.GenT$$Lambda$11268/0x00007f0539e251c8@51bc2f21
// )

val genDynamicPortNumber: Gen[DynamicPortNumber] =
NetworkGens.genDynamicPortNumber
// genDynamicPortNumber: GenT[DynamicPortNumber] = GenT(
// run = hedgehog.core.GenT$$Lambda$11268/0x00007f0539e251c8@a2294f4
// )

val genNonSystemPortNumber: Gen[NonSystemPortNumber] =
NetworkGens.genNonSystemPortNumber
// genNonSystemPortNumber: GenT[NonSystemPortNumber] = GenT(
// run = hedgehog.core.GenT$$Lambda$11268/0x00007f0539e251c8@342d94e7
// )
import hedgehog.*
import hedgehog.runner.*

import hedgehog.extra.refined4s.gens.NetworkGens

object NetworkGensExampleSpec 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 <- NetworkGens.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 <- NetworkGens.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 <- NetworkGens.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 <- NetworkGens.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 <- NetworkGens.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)
NetworkGensExampleSpec.main(Array.empty)
// Using random seed: 142007181931
// p: 6625
// p: 18319
// p: 18073
// p: 36450
// p: 41709
// + repl.MdocSession$MdocApp0$NetworkGensExampleSpec$.Example for genPortNumber: OK, passed 5 tests
// p: 33
// p: 302
// p: 444
// p: 470
// p: 297
// + repl.MdocSession$MdocApp0$NetworkGensExampleSpec$.Example for genSystemPortNumber: OK, passed 5 tests
// p: 3557
// p: 9099
// p: 14665
// p: 9118
// p: 40329
// + repl.MdocSession$MdocApp0$NetworkGensExampleSpec$.Example for genUserPortNumber: OK, passed 5 tests
// p: 50047
// p: 49442
// p: 58203
// p: 61694
// p: 53699
// + repl.MdocSession$MdocApp0$NetworkGensExampleSpec$.Example for genDynamicPortNumber: OK, passed 5 tests
// p: 7103
// p: 16425
// p: 2559
// p: 52294
// p: 54893
// + repl.MdocSession$MdocApp0$NetworkGensExampleSpec$.Example for genNonSystemPortNumber: OK, passed 5 tests