night-light/NightLight.Core.Tests/TimeChangedGenerators.fs
Sven van Heugten c30642dcce Clarify helper names
This makes it more obvious that there might be multiple "day times" or
"night times" in a row.
2026-01-08 22:08:52 +01:00

26 lines
828 B
FSharp

module NightLight.Core.Tests.TimeChangedGenerators
open System
open FsCheck.FSharp
let private isDay (time: DateTime) =
time.TimeOfDay >= TimeSpan.FromHours 5.5
&& time.TimeOfDay < TimeSpan.FromHours 20.5
let private isTimeChangedMeetingCondition condition interaction =
match interaction with
| TimeChanged time when condition time -> true
| _ -> false
let isTimeChangedToAnyDayTime = isTimeChangedMeetingCondition isDay
let isTimeChangedToAnyNightTime = isTimeChangedMeetingCondition (not << isDay)
let genTimeChanged =
ArbMap.defaults |> ArbMap.generate<DateTime> |> Gen.map Interaction.TimeChanged
let genTimeChangedToRandomDayTime =
genTimeChanged |> Gen.filter isTimeChangedToAnyDayTime
let genTimeChangedToRandomNightTime =
genTimeChanged |> Gen.filter isTimeChangedToAnyNightTime