{-# LANGUAGE CPP #-} {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE MultiParamTypeClasses #-} {-# OPTIONS_GHC -fno-warn-orphans #-} module Test.SmallCheck.Series.Instances ( ) where import Data.Map (Map) import qualified Data.Map as Map import Data.Text (Text) import qualified Data.Text as T import Test.SmallCheck.Series import Codec.Xlsx #if !MIN_VERSION_smallcheck(1,2,0) cons6 :: ( Serial m a6 , Serial m a5 , Serial m a4 , Serial m a3 , Serial m a2 , Serial m a1 ) => (a6 -> a5 -> a4 -> a3 -> a2 -> a1 -> a) -> Test.SmallCheck.Series.Series m a cons6 f = decDepth $ f <$> series <~> series <~> series <~> series <~> series <~> series #endif instance Monad m => Serial m Text where series = T.pack <$> series instance (Serial m k, Serial m v) => Serial m (Map k v) where series = Map.singleton <$> series <~> series {------------------------------------------------------------------------------- Conditional formatting -------------------------------------------------------------------------------} instance Monad m => Serial m CfRule instance Monad m => Serial m Condition where series = localDepth (const 2) $ cons2 AboveAverage \/ cons1 BeginsWith \/ cons2 BelowAverage \/ cons1 BottomNPercent \/ cons1 BottomNValues \/ cons1 CellIs \/ cons4 ColorScale2 \/ cons6 ColorScale3 \/ cons0 ContainsBlanks \/ cons0 ContainsErrors \/ cons1 ContainsText \/ cons1 DataBar \/ cons0 DoesNotContainErrors \/ cons0 DoesNotContainBlanks \/ cons1 DoesNotContainText \/ cons0 DuplicateValues \/ cons1 EndsWith \/ cons1 Expression \/ cons1 IconSet \/ cons1 InTimePeriod \/ cons1 TopNPercent \/ cons1 TopNValues \/ cons0 UniqueValues instance Monad m => Serial m NStdDev instance Monad m => Serial m Inclusion instance Monad m => Serial m OperatorExpression instance Monad m => Serial m DataBarOptions instance Monad m => Serial m MaxCfValue instance Monad m => Serial m MinCfValue instance Monad m => Serial m Color -- TODO: proper formula generator (?) instance Monad m => Serial m Formula instance Monad m => Serial m IconSetOptions instance Monad m => Serial m IconSetType instance Monad m => Serial m CfValue instance Monad m => Serial m TimePeriod {------------------------------------------------------------------------------- Autofilter -------------------------------------------------------------------------------} instance Monad m => Serial m AutoFilter where series = localDepth (const 4) $ cons2 AutoFilter instance Monad m => Serial m CellRef instance Monad m => Serial m FilterColumn instance Monad m => Serial m EdgeFilterOptions instance Monad m => Serial m CustomFilter instance Monad m => Serial m CustomFilterOperator instance Monad m => Serial m FilterCriterion instance Monad m => Serial m DateGroup instance Monad m => Serial m FilterByBlank instance Monad m => Serial m ColorFilterOptions instance Monad m => Serial m DynFilterOptions instance Monad m => Serial m DynFilterType