night-light/NightLight.Core.Tests/LightArbitraries.fs

38 lines
1.1 KiB
FSharp

namespace NightLight.Core.Tests
open NightLight.Core.Models
open FsCheck.FSharp
type ArbitraryLight =
static member Light() = lights |> Gen.elements |> Arb.fromGen
type ArbitraryNonRemotelyControlledLight =
static member Light() =
lights
|> Seq.filter (fun light ->
light = LivingRoomWallLamp
|| light = LivingRoomFloorLamp
|| light = BathroomCeilingLamp)
|> Gen.elements
|> Arb.fromGen
type ArbitraryLeftRemotelyControlledLight =
static member Light() =
lights
|> Seq.filter (fun light -> light = LeftBedroomLamp)
|> Gen.elements
|> Arb.fromGen
type ArbitraryRightRemotelyControlledLight =
static member Light() =
lights
|> Seq.filter (fun light -> light = RightBedroomLamp)
|> Gen.elements
|> Arb.fromGen
type ArbitraryRemotelyControlledLight =
static member Light() =
lights
|> Seq.filter (fun light -> light = RightBedroomLamp || light = LeftBedroomLamp)
|> Gen.elements
|> Arb.fromGen