使用ScalaCheck发电机增加发电机数量

使用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

我想用ScalaCheck生成器模拟设备读数。读数的性质是,每个后续读数应大于前一个读数。我已经使用VAR编写了一些代码,但希望通过在Gens上使用高阶函数和组合生成器来实现这一点。有人有更好的建议吗

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