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

com.github.fulrich.generators.DefaultSizeGenerator.scala Maven / Gradle / Ivy

package com.github.fulrich.generators

import com.github.fulrich.generators.api.SizeApi
import org.scalacheck.Gen


trait DefaultSizeGenerator[T] extends SizeApi[Gen[T]] with DefaultGenerationSizes {
  def apply(maximum: Long): Gen[T] = apply(Minimum, maximum)
  def apply(minimum: Long, maximum: Long): Gen[T] = {
    require(minimum < maximum, s"Your minimum value ($minimum) must be less than your maximum ($maximum).")
    generate(minimum, maximum)
  }

  lazy val tiny: Gen[T] = apply(minimum = 1, maximum = TinyMaximum)
  lazy val short: Gen[T] = apply(TinyMaximum, ShortMaximum)
  lazy val default: Gen[T] = apply(ShortMaximum, DefaultMaximum)
  lazy val big: Gen[T] = apply(DefaultMaximum, BigMaximum)
  lazy val huge: Gen[T] = apply(BigMaximum, HugeMaximum)

  protected def generate(minimum: Long, maximum: Long): Gen[T]
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy