packages feed

vgrep-0.2.0.0: test/Vgrep/Widget/Pager/Testable.hs

{-# OPTIONS_GHC -fno-warn-orphans #-}
module Vgrep.Widget.Pager.Testable
    ( module Vgrep.Widget.Pager
    , module Vgrep.Widget.Pager.Internal
    ) where

import Data.Sequence      as Seq (fromList)
import Data.Text.Testable ()
import Test.QuickCheck

import Vgrep.Widget.Pager
import Vgrep.Widget.Pager.Internal

instance Arbitrary Pager where
    arbitrary = do
        linesOfText <- arbitrary
        pos <- case linesOfText of
            [] -> pure 0
            _  -> choose (0, length linesOfText - 1)
        pure Pager
            { _column      = 0
            , _highlighted = mempty
            , _above       = Seq.fromList (take pos linesOfText)
            , _visible     = Seq.fromList (drop pos linesOfText) }