packages feed

closed-intervals-0.2.0.1: doctest/Test/Data/Interval.hs

-- Do not edit! Automatically created with doctest-extract from src/Data/Interval.hs
{-# LINE 109 "src/Data/Interval.hs" #-}

module Test.Data.Interval where

import Data.Interval
import Test.DocTest.Base
import qualified Test.DocTest.Driver as DocTest

{-# LINE 110 "src/Data/Interval.hs" #-}
import     Data.IntervalTest
import     qualified Data.Sequence as Seq
import     qualified Data.List as List
import     Data.Function (on)
import     Data.Maybe (isJust, fromJust, catMaybes)
import     Data.Foldable (toList)
import     Test.QuickCheck ((==>))
without'     :: (Int,Int) -> (Int,Int) -> [(Int,Int)]; without' = without
isSubsequenceOf     :: Eq a => [a] -> [a] -> Bool; isSubsequenceOf [] _ = True; isSubsequenceOf (_:_) [] = False; isSubsequenceOf xs@(x:xs') (y:ys) = (x == y && xs' `List.isPrefixOf` ys) || xs `isSubsequenceOf` ys

test :: DocTest.T ()
test = do
 DocTest.printPrefix "Data.Interval:189: "
{-# LINE 189 "src/Data/Interval.hs" #-}
 DocTest.property
{-# LINE 189 "src/Data/Interval.hs" #-}
        (forevery genNonNestedIntervalSeq $ \xs -> propSplit (\subseq -> hullSeqNonNested subseq == hullSeq subseq) (splitSeq xs))
 DocTest.printPrefix "Data.Interval:177: "
{-# LINE 177 "src/Data/Interval.hs" #-}
 DocTest.example
{-# LINE 177 "src/Data/Interval.hs" #-}
      (propSplit (\xs -> hullSeqNonNested xs == hullSeq xs) . splitSeq . sortByRight $ Seq.fromList ([(1,3),(2,4),(4,5),(3,6)] :: [(Int,Int)]))
  [ExpectedLine [LineChunk "False"]]
 DocTest.printPrefix "Data.Interval:237: "
{-# LINE 237 "src/Data/Interval.hs" #-}
 DocTest.property
{-# LINE 237 "src/Data/Interval.hs" #-}
        (forevery genInterval     $ \i -> overlapTime i i == intervalDuration i)
 DocTest.printPrefix "Data.Interval:238: "
{-# LINE 238 "src/Data/Interval.hs" #-}
 DocTest.property
{-# LINE 238 "src/Data/Interval.hs" #-}
        (foreveryPair genInterval $ \i j -> not (i `properlyIntersects` j) ==> overlapTime i j == 0)
 DocTest.printPrefix "Data.Interval:239: "
{-# LINE 239 "src/Data/Interval.hs" #-}
 DocTest.property
{-# LINE 239 "src/Data/Interval.hs" #-}
        (foreveryPair genInterval $ \i j -> overlapTime i j == (sum $ fmap intervalDuration $ maybeIntersection i j))
 DocTest.printPrefix "Data.Interval:249: "
{-# LINE 249 "src/Data/Interval.hs" #-}
 DocTest.property
{-# LINE 249 "src/Data/Interval.hs" #-}
        (forevery genInterval $ \i c -> prevailing i (Seq.singleton (c,i)) == Just (c::Char))
 DocTest.printPrefix "Data.Interval:250: "
{-# LINE 250 "src/Data/Interval.hs" #-}
 DocTest.property
{-# LINE 250 "src/Data/Interval.hs" #-}
        (foreveryPairOf genInterval genLabeledSeq $ \i js -> isJust (prevailing i js) == any (intersects i . snd) js)
 DocTest.printPrefix "Data.Interval:251: "
{-# LINE 251 "src/Data/Interval.hs" #-}
 DocTest.property
{-# LINE 251 "src/Data/Interval.hs" #-}
        (forevery genInterval $ \i -> foreveryPair genLabeledSeq $ \js ks -> all (flip elem $ catMaybes [prevailing i js, prevailing i ks]) $ prevailing i (js<>ks))
 DocTest.printPrefix "Data.Interval:274: "
{-# LINE 274 "src/Data/Interval.hs" #-}
 DocTest.property
{-# LINE 274 "src/Data/Interval.hs" #-}
        (foreveryPair genInterval $ \i j -> isJust (maybeUnion i j) ==> fromJust (maybeUnion i j) `contains` i && fromJust (maybeUnion i j) `contains` j)
 DocTest.printPrefix "Data.Interval:275: "
{-# LINE 275 "src/Data/Interval.hs" #-}
 DocTest.property
{-# LINE 275 "src/Data/Interval.hs" #-}
        (foreveryPair genInterval $ \i j -> i `intersects` j ==> (maybeUnion i j >>= maybeIntersection i) == Just i)
 DocTest.printPrefix "Data.Interval:283: "
{-# LINE 283 "src/Data/Interval.hs" #-}
 DocTest.property
{-# LINE 283 "src/Data/Interval.hs" #-}
        (foreveryPair genInterval $ \i j -> i `intersects` j ==> i `contains` fromJust (maybeIntersection i j))
 DocTest.printPrefix "Data.Interval:291: "
{-# LINE 291 "src/Data/Interval.hs" #-}
 DocTest.property
{-# LINE 291 "src/Data/Interval.hs" #-}
        (\xs -> isJust (hull xs) ==> all (\x -> fromJust (hull xs) `contains` x) (xs :: [(Int,Int)]))
 DocTest.printPrefix "Data.Interval:308: "
{-# LINE 308 "src/Data/Interval.hs" #-}
 DocTest.property
{-# LINE 308 "src/Data/Interval.hs" #-}
        (foreveryPair genInterval $ \i j -> length (i `without` j) <= 2)
 DocTest.printPrefix "Data.Interval:309: "
{-# LINE 309 "src/Data/Interval.hs" #-}
 DocTest.property
{-# LINE 309 "src/Data/Interval.hs" #-}
        (forevery     genInterval $ \i -> i `without` i == [])
 DocTest.printPrefix "Data.Interval:310: "
{-# LINE 310 "src/Data/Interval.hs" #-}
 DocTest.property
{-# LINE 310 "src/Data/Interval.hs" #-}
        (foreveryPair genInterval $ \i j -> all (contains i) (i `without` j))
 DocTest.printPrefix "Data.Interval:311: "
{-# LINE 311 "src/Data/Interval.hs" #-}
 DocTest.property
{-# LINE 311 "src/Data/Interval.hs" #-}
        (foreveryPair genInterval $ \i j -> not $ any (properlyIntersects j) (i `without` j))
 DocTest.printPrefix "Data.Interval:299: "
{-# LINE 299 "src/Data/Interval.hs" #-}
 DocTest.example
{-# LINE 299 "src/Data/Interval.hs" #-}
      (without' (1,5) (4,5))
  [ExpectedLine [LineChunk "[(1,4)]"]]
 DocTest.printPrefix "Data.Interval:301: "
{-# LINE 301 "src/Data/Interval.hs" #-}
 DocTest.example
{-# LINE 301 "src/Data/Interval.hs" #-}
      (without' (1,5) (2,3))
  [ExpectedLine [LineChunk "[(1,2),(3,5)]"]]
 DocTest.printPrefix "Data.Interval:303: "
{-# LINE 303 "src/Data/Interval.hs" #-}
 DocTest.example
{-# LINE 303 "src/Data/Interval.hs" #-}
      (without' (1,5) (1,5))
  [ExpectedLine [LineChunk "[]"]]
 DocTest.printPrefix "Data.Interval:305: "
{-# LINE 305 "src/Data/Interval.hs" #-}
 DocTest.example
{-# LINE 305 "src/Data/Interval.hs" #-}
      (without' (1,5) (0,1))
  [ExpectedLine [LineChunk "[(1,5)]"]]
 DocTest.printPrefix "Data.Interval:327: "
{-# LINE 327 "src/Data/Interval.hs" #-}
 DocTest.property
{-# LINE 327 "src/Data/Interval.hs" #-}
        (forevery genSortedIntervals $ all (\xs -> and $ List.zipWith intersects xs (tail xs)) . contiguous)
 DocTest.printPrefix "Data.Interval:328: "
{-# LINE 328 "src/Data/Interval.hs" #-}
 DocTest.property
{-# LINE 328 "src/Data/Interval.hs" #-}
        (forevery genSortedIntervals $ all ((1==).length.components) . contiguous)
 DocTest.printPrefix "Data.Interval:343: "
{-# LINE 343 "src/Data/Interval.hs" #-}
 DocTest.property
{-# LINE 343 "src/Data/Interval.hs" #-}
        (forevery genSortedIntervals $ \xs -> all (\i -> any (flip contains i) (components xs)) xs)
 DocTest.printPrefix "Data.Interval:344: "
{-# LINE 344 "src/Data/Interval.hs" #-}
 DocTest.property
{-# LINE 344 "src/Data/Interval.hs" #-}
        (forevery genSortedIntervals $ \xs -> let cs = components xs in all (\(i,j) -> i == j || not (i `intersects` j)) [(c1,c2) | c1 <- cs, c2 <- cs])
 DocTest.printPrefix "Data.Interval:363: "
{-# LINE 363 "src/Data/Interval.hs" #-}
 DocTest.property
{-# LINE 363 "src/Data/Interval.hs" #-}
        (forevery genSortedIntervals   $ \xs -> componentsSeq (Seq.fromList xs) == Seq.fromList (components xs))
 DocTest.printPrefix "Data.Interval:364: "
{-# LINE 364 "src/Data/Interval.hs" #-}
 DocTest.property
{-# LINE 364 "src/Data/Interval.hs" #-}
        (forevery genSortedIntervalSeq $ \xs -> let cs = componentsSeq xs in all (\(i,j) -> i == j || not (i `intersects` j)) $ do {c1 <- cs; c2 <- cs; return (c1,c2)})
 DocTest.printPrefix "Data.Interval:377: "
{-# LINE 377 "src/Data/Interval.hs" #-}
 DocTest.property
{-# LINE 377 "src/Data/Interval.hs" #-}
        (foreveryPairOf genInterval genIntervalSeq $ \i js -> all (contains i) (covered i js))
 DocTest.printPrefix "Data.Interval:378: "
{-# LINE 378 "src/Data/Interval.hs" #-}
 DocTest.property
{-# LINE 378 "src/Data/Interval.hs" #-}
        (foreveryPairOf genInterval genIntervalSeq $ \i js -> covered i (covered i js) == covered i js)
 DocTest.printPrefix "Data.Interval:384: "
{-# LINE 384 "src/Data/Interval.hs" #-}
 DocTest.property
{-# LINE 384 "src/Data/Interval.hs" #-}
        (foreveryPair   genInterval $ \i j -> j `contains` i == i `coveredBy` [j])
 DocTest.printPrefix "Data.Interval:385: "
{-# LINE 385 "src/Data/Interval.hs" #-}
 DocTest.property
{-# LINE 385 "src/Data/Interval.hs" #-}
        (foreveryPairOf genInterval genSortedIntervals $ \i js -> i `coveredBy` js ==> any (flip contains i) (components js))
 DocTest.printPrefix "Data.Interval:391: "
{-# LINE 391 "src/Data/Interval.hs" #-}
 DocTest.property
{-# LINE 391 "src/Data/Interval.hs" #-}
        (foreveryPairOf genNonEmptyInterval genIntervalSeq         $ \i js -> i `coveredBy` js == (fractionCovered i js >= (1::Rational)))
 DocTest.printPrefix "Data.Interval:392: "
{-# LINE 392 "src/Data/Interval.hs" #-}
 DocTest.property
{-# LINE 392 "src/Data/Interval.hs" #-}
        (foreveryPairOf genNonEmptyInterval genNonEmptyIntervalSeq $ \i js -> any (properlyIntersects i) js == (fractionCovered i js > (0::Rational)))
 DocTest.printPrefix "Data.Interval:411: "
{-# LINE 411 "src/Data/Interval.hs" #-}
 DocTest.property
{-# LINE 411 "src/Data/Interval.hs" #-}
        (foreveryPair genInterval $ \i j -> i `intersects` j  ==  (overlap i j == EQ))
 DocTest.printPrefix "Data.Interval:429: "
{-# LINE 429 "src/Data/Interval.hs" #-}
 DocTest.property
{-# LINE 429 "src/Data/Interval.hs" #-}
        (foreveryPair genInterval $ \i j -> i `properlyIntersects` j  ==  (properOverlap i j == EQ))
 DocTest.printPrefix "Data.Interval:441: "
{-# LINE 441 "src/Data/Interval.hs" #-}
 DocTest.property
{-# LINE 441 "src/Data/Interval.hs" #-}
        (foreveryPair genInterval $ \i j -> (lb i <= ub i && lb j <= ub j && i `intersects` j)  ==  (max (lb i) (lb j) <= min (ub i) (ub j)))
 DocTest.printPrefix "Data.Interval:438: "
{-# LINE 438 "src/Data/Interval.hs" #-}
 DocTest.example
{-# LINE 438 "src/Data/Interval.hs" #-}
      (((1,2)::(Int,Int)) `intersects` ((2,3)::(Int,Int)))
  [ExpectedLine [LineChunk "True"]]
 DocTest.printPrefix "Data.Interval:452: "
{-# LINE 452 "src/Data/Interval.hs" #-}
 DocTest.property
{-# LINE 452 "src/Data/Interval.hs" #-}
        (foreveryPair genInterval $ \i j -> ((i `intersects` j) && not (i `properlyIntersects` j))  ==  (ub i == lb j || ub j == lb i))
 DocTest.printPrefix "Data.Interval:458: "
{-# LINE 458 "src/Data/Interval.hs" #-}
 DocTest.property
{-# LINE 458 "src/Data/Interval.hs" #-}
        (forevery     genInterval $ \i -> i `contains` i)
 DocTest.printPrefix "Data.Interval:459: "
{-# LINE 459 "src/Data/Interval.hs" #-}
 DocTest.property
{-# LINE 459 "src/Data/Interval.hs" #-}
        (foreveryPair genInterval $ \i j -> (i `contains` j && j `contains` i) == (i==j))
 DocTest.printPrefix "Data.Interval:460: "
{-# LINE 460 "src/Data/Interval.hs" #-}
 DocTest.property
{-# LINE 460 "src/Data/Interval.hs" #-}
        (foreveryPair genInterval $ \i j -> i `contains` j == (maybeUnion i j == Just i))
 DocTest.printPrefix "Data.Interval:472: "
{-# LINE 472 "src/Data/Interval.hs" #-}
 DocTest.property
{-# LINE 472 "src/Data/Interval.hs" #-}
        (forevery genSortedList $ \xs -> (components $ toList $ fromEndPoints xs) == if length xs < 2 then [] else [(head xs, last xs)])
 DocTest.printPrefix "Data.Interval:473: "
{-# LINE 473 "src/Data/Interval.hs" #-}
 DocTest.property
{-# LINE 473 "src/Data/Interval.hs" #-}
        (forevery genSortedList $ \xs -> hullSeqNonNested (fromEndPoints xs) == if length xs < 2 then Nothing else Just (head xs,last xs))
 DocTest.printPrefix "Data.Interval:487: "
{-# LINE 487 "src/Data/Interval.hs" #-}
 DocTest.property
{-# LINE 487 "src/Data/Interval.hs" #-}
        (foreveryPairOf genInterval genNonNestedIntervalSeq $ \i js -> toList (getIntersects i (FromSortedSeq js)) `isSubsequenceOf` toList js)
 DocTest.printPrefix "Data.Interval:488: "
{-# LINE 488 "src/Data/Interval.hs" #-}
 DocTest.property
{-# LINE 488 "src/Data/Interval.hs" #-}
        (forevery genSortedIntervalSeq $ \xs -> propSplit (\subseq -> subseq == sortByRight subseq) (splitSeq xs))
 DocTest.printPrefix "Data.Interval:505: "
{-# LINE 505 "src/Data/Interval.hs" #-}
 DocTest.property
{-# LINE 505 "src/Data/Interval.hs" #-}
        (forevery genSortedIntervalSeq $ \xs -> hullSeq xs == if Seq.null xs then Nothing else Just (minimum (fmap lb xs),maximum (fmap ub xs)))
 DocTest.printPrefix "Data.Interval:506: "
{-# LINE 506 "src/Data/Interval.hs" #-}
 DocTest.property
{-# LINE 506 "src/Data/Interval.hs" #-}
        (forevery genSortedIntervalSeq $ \xs -> hullSeq xs == hull (toList xs))
 DocTest.printPrefix "Data.Interval:525: "
{-# LINE 525 "src/Data/Interval.hs" #-}
 DocTest.property
{-# LINE 525 "src/Data/Interval.hs" #-}
        (foreveryPairOf genInterval genNonNestedIntervalSeq $ \i js' -> let js = toList js' in fst (splitIntersecting i js) == filter (intersects i) js)
 DocTest.printPrefix "Data.Interval:526: "
{-# LINE 526 "src/Data/Interval.hs" #-}
 DocTest.property
{-# LINE 526 "src/Data/Interval.hs" #-}
        (foreveryPairOf genInterval genNonNestedIntervalSeq $ \i js' -> let js = toList js' in all (\j -> not (ub j < ub i)) (snd (splitIntersecting i js)))
 DocTest.printPrefix "Data.Interval:522: "
{-# LINE 522 "src/Data/Interval.hs" #-}
 DocTest.example
{-# LINE 522 "src/Data/Interval.hs" #-}
      (splitIntersecting ((2,5) :: (Int,Int)) ([(0,1),(2,2),(2,3),(3,6),(6,7)] :: [(Int,Int)]))
  [ExpectedLine [LineChunk "([(2,2),(2,3),(3,6)],[(3,6),(6,7)])"]]
 DocTest.printPrefix "Data.Interval:546: "
{-# LINE 546 "src/Data/Interval.hs" #-}
 DocTest.property
{-# LINE 546 "src/Data/Interval.hs" #-}
        (foreveryPairOf genInterval genNonNestedIntervalSeq $ \i js' -> let js = toList js' in fst (splitProperlyIntersecting i js) == filter (properlyIntersects i) js)
 DocTest.printPrefix "Data.Interval:547: "
{-# LINE 547 "src/Data/Interval.hs" #-}
 DocTest.property
{-# LINE 547 "src/Data/Interval.hs" #-}
        (foreveryPairOf genInterval genNonNestedIntervalSeq $ \i js' -> let js = toList js' in all (not.properlyContains i) (snd (splitProperlyIntersecting i js)))
 DocTest.printPrefix "Data.Interval:543: "
{-# LINE 543 "src/Data/Interval.hs" #-}
 DocTest.example
{-# LINE 543 "src/Data/Interval.hs" #-}
      (splitProperlyIntersecting ((2,5) :: (Int,Int))  ([(0,1),(2,3),(2,2),(3,5),(5,6),(6,7)] :: [(Int,Int)]))
  [ExpectedLine [LineChunk "([(2,3),(3,5)],[(5,6),(6,7)])"]]
 DocTest.printPrefix "Data.Interval:579: "
{-# LINE 579 "src/Data/Interval.hs" #-}
 DocTest.property
{-# LINE 579 "src/Data/Interval.hs" #-}
        (forevery genSortedIntervalSeq $ \xs -> hullSeq xs == hullOfTree (itree 4 xs))
 DocTest.printPrefix "Data.Interval:590: "
{-# LINE 590 "src/Data/Interval.hs" #-}
 DocTest.property
{-# LINE 590 "src/Data/Interval.hs" #-}
        (forevery genIntervalSeq $ \xs -> invariant . itree 4 $ xs)
 DocTest.printPrefix "Data.Interval:600: "
{-# LINE 600 "src/Data/Interval.hs" #-}
 DocTest.property
{-# LINE 600 "src/Data/Interval.hs" #-}
        (foreveryPairOf genInterval genIntervalSeq $ \i t -> on (==) sortByRight (getIntersects i $ itree 2 t) (i `intersecting` t))
 DocTest.printPrefix "Data.Interval:611: "
{-# LINE 611 "src/Data/Interval.hs" #-}
 DocTest.property
{-# LINE 611 "src/Data/Interval.hs" #-}
        (foreveryPairOf genInterval genIntervalSeq $ \i t -> on (==) sortByRight (getProperIntersects i $ itree 2 t) (i `intersectingProperly` t))
 DocTest.printPrefix "Data.Interval:743: "
{-# LINE 743 "src/Data/Interval.hs" #-}
 DocTest.property
{-# LINE 743 "src/Data/Interval.hs" #-}
        (forevery genIntervalSeq $ \is -> joinSeq (splitSeq is) == is)
 DocTest.printPrefix "Data.Interval:805: "
{-# LINE 805 "src/Data/Interval.hs" #-}
 DocTest.property
{-# LINE 805 "src/Data/Interval.hs" #-}
        (forevery genNonNestedIntervalSeq $ \xs -> hullSeqNonNested xs == hullSeq xs)
 DocTest.printPrefix "Data.Interval:822: "
{-# LINE 822 "src/Data/Interval.hs" #-}
 DocTest.property
{-# LINE 822 "src/Data/Interval.hs" #-}
        (foreveryPairOf genInterval genNonNestedIntervalSeq $ \i js -> getIntersects i (FromSortedSeq js) == intersecting i js)