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

gem.arb.ArbSemester.scala Maven / Gradle / Ivy

// Copyright (c) 2016-2020 Association of Universities for Research in Astronomy, Inc. (AURA)
// For license information see LICENSE or https://opensource.org/licenses/BSD-3-Clause

package gem
package arb

import gem.enum.Half
import gsp.math.arb.ArbTime
import java.time.Year
import org.scalacheck._
import org.scalacheck.Arbitrary._

trait ArbSemester {
  import ArbTime._
  import ArbEnumerated._

  implicit val arbSemester: Arbitrary[Semester] =
    Arbitrary {
      for {
        year <- arbitrary[Year]
        half <- arbitrary[Half]
      } yield Semester(year, half)
    }

  implicit val cogSemester: Cogen[Semester] =
    Cogen[(Year, Half)].contramap(s => (s.year, s.half))

}

object ArbSemester extends ArbSemester




© 2015 - 2025 Weber Informatics LLC | Privacy Policy