使用ScalaCheck发电机增加发电机数量
我想用ScalaCheck生成器模拟设备读数。读数的性质是,每个后续读数应大于前一个读数。我已经使用VAR编写了一些代码,但希望通过在Gens上使用高阶函数和组合生成器来实现这一点。有人有更好的建议吗使用ScalaCheck发电机增加发电机数量,scala,scalacheck,Scala,Scalacheck,我想用ScalaCheck生成器模拟设备读数。读数的性质是,每个后续读数应大于前一个读数。我已经使用VAR编写了一些代码,但希望通过在Gens上使用高阶函数和组合生成器来实现这一点。有人有更好的建议吗 import org.scalacheck.Gen class DeviceReadingGenerator(deviceId: DeviceId = Generate.deviceId.sample.get) { private var timeSlot = Generate.epochI
import org.scalacheck.Gen
class DeviceReadingGenerator(deviceId: DeviceId = Generate.deviceId.sample.get) {
private var timeSlot = Generate.epochInSec.sample.get
private var reading = Gen.choose(0, 100).sample.get
def nextReading(): Reading = {
val gen: Gen[Event] = for {
r <- Generate.event
time <- Gen.const(30)
cons <- Generate.consumption
} yield {
timeSlot += time
reading += cons
r
.copy(timeSlot = timeSlot)
.copy(readingWh = reading)
}
Reading(deviceId, gen.sample.get)
}
}
import org.scalacheck.Gen
类DeviceReadingGenerator(deviceId:deviceId=Generate.deviceId.sample.get){
private var timeSlot=Generate.epochInSec.sample.get
private var reading=Gen.choose(0100).sample.get
def nextReading():读取={
val gen:gen[事件]=用于{
R