diff --git a/NightLight.Core.Tests/Arbitraries.fs b/NightLight.Core.Tests/Arbitraries.fs index 39433dc..379c39e 100644 --- a/NightLight.Core.Tests/Arbitraries.fs +++ b/NightLight.Core.Tests/Arbitraries.fs @@ -1,22 +1,29 @@ namespace NightLight.Core.Tests open System +open FsCheck open FsCheck.FSharp open NightLight.Core.Models type Arbitraries = - static member Interaction() = - let genTimeChangedInteraction = - gen { - let! time = ArbMap.defaults |> ArbMap.generate - return Interaction.TimeChanged time - } + static member Interactions() : Arbitrary = + gen { + let genTimeChangedInteraction = + gen { + let! time = ArbMap.defaults |> ArbMap.generate + return Interaction.TimeChanged time + } - let genHumanInteraction = - gen { - let! light = Gen.elements lights - let! humanInteraction = Gen.elements [ LightTurnedOn light; LightTurnedOff light ] - return Interaction.HumanInteraction humanInteraction - } + let genHumanInteraction = + gen { + let! light = Gen.elements lights + let! humanInteraction = Gen.elements [ LightTurnedOn light; LightTurnedOff light ] + return Interaction.HumanInteraction humanInteraction + } - Gen.oneof [ genTimeChangedInteraction; genHumanInteraction ] |> Arb.fromGen + let! initialTimeChangedInteraction = genTimeChangedInteraction + let! remainingInteractions = Gen.oneof [ genTimeChangedInteraction; genHumanInteraction ] |> Gen.listOf + + return initialTimeChangedInteraction :: remainingInteractions + } + |> Arb.fromGen