| Copyright | (c) NoviSci Inc 2020 |
|---|---|
| License | BSD3 |
| Maintainer | bsaul@novisci.com |
| Stability | experimental |
| Safe Haskell | Safe |
| Language | Haskell2010 |
IntervalAlgebra.Arbitrary
Contents
Description
Synopsis
- arbitraryWithRelation :: forall i a b. (IntervalSizeable a b, Intervallic i, Arbitrary (i a)) => i a -> Set IntervalRelation -> Gen (Maybe (i a))
Documentation
arbitraryWithRelation Source #
Arguments
| :: forall i a b. (IntervalSizeable a b, Intervallic i, Arbitrary (i a)) | |
| => i a | reference interval |
| -> Set IntervalRelation | set of |
| -> Gen (Maybe (i a)) |
Conditional generation of intervals relative to a reference. If the
reference iv is of moment duration, it is not possible to generate
intervals from the strict enclose relations StartedBy, Contains, FinishedBy.
If iv and rs are such that no possible relations can be generated, this
function returns Nothing. Otherwise, it returns Just an interval that
satisfies at least one of the possible relations in rs relative to
iv.
> import Test.QuickCheck (generate) > import Data.Set (fromList) > isJust $ generate $ arbitraryWithRelation (beginerval 10 (0::Int)) (fromList [Before]) Just (20, 22) > generate $ arbitraryWithRelation (beginerval 1 (0::Int)) (fromList [StartedBy]) Nothing > generate $ arbitraryWithRelation (beginerval 1 (0::Int)) (fromList [StartedBy, Before]) Just (4, 13)