{-# OPTIONS_GHC -fno-warn-orphans #-} module Cursor.Text.Gen ( genSafeChar , genTextCursorChar , textCursorWithGen , textCursorWithIndex0 ) where import Test.QuickCheck import Data.GenValidity import Data.GenValidity.Text () import Cursor.Text import Cursor.Types import Cursor.List.Gen instance GenUnchecked TextCursor instance GenValid TextCursor where genValid = TextCursor <$> listCursorWithGen genTextCursorChar shrinkValid = shrinkValidStructurally genSafeChar :: Gen Char genSafeChar = choose (minBound, maxBound) `suchThat` isSafeChar genTextCursorChar :: Gen Char genTextCursorChar = genSafeChar `suchThat` (/= '\n') textCursorWithGen :: Gen Char -> Gen TextCursor textCursorWithGen gen = TextCursor <$> listCursorWithGen gen textCursorWithIndex0 :: Gen Char -> Gen TextCursor textCursorWithIndex0 gen = TextCursor <$> listCursorWithIndex0 gen