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

com.github.fulrich.testcharged.generators.numerics.SignGenerator.scala Maven / Gradle / Ivy

package com.github.fulrich.testcharged.generators.numerics

import com.github.fulrich.testcharged.generators.api.DefaultCaller
import org.scalacheck.Gen
import org.scalacheck.Gen.Choose


case class SignGenerator[T : Choose](range: T)(implicit numeric: Numeric[T]) {
  lazy val positive: Gen[T] = Gen.choose[T](numeric.zero, range)
  lazy val negative: Gen[T] = Gen.choose[T](numeric.negate(range), numeric.zero)
  lazy val default: Gen[T] = Gen.choose[T](numeric.negate(range), range)
}

object SignGenerator {
  implicit def signGeneratorDefaultCaller[T : Numeric: Choose]: DefaultCaller[T, SignGenerator[T]] =
    new DefaultCaller[T, SignGenerator[T]] {
      override def apply(callee: SignGenerator[T]): Gen[T] = callee.default
  }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy