All Downloads are FREE. Search and download functionalities are using the official Maven repository.

scalaprops.ParamOpt.scala Maven / Gradle / Ivy

package scalaprops

import java.util.concurrent.TimeUnit
import scala.concurrent.duration.Duration

final case class ParamOpt(
  seed: Option[Seed],
  minSuccessful: Option[Int],
  maxDiscarded: Option[Int],
  minSize: Option[Int],
  maxSize: Option[Int],
  timeoutSeconds: Option[Int]
) {
  def merge(param: Param): Param = {
    Param(
      seed = seed.getOrElse(param.seed),
      minSuccessful = minSuccessful.getOrElse(param.minSuccessful),
      maxDiscarded = maxDiscarded.getOrElse(param.maxDiscarded),
      minSize = minSize.getOrElse(param.minSize),
      maxSize = maxSize.getOrElse(param.maxSize),
      timeout = timeoutSeconds match {
        case Some(n) => Duration(n, TimeUnit.SECONDS)
        case None => param.timeout
      }
    )
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy