File: Instances.hs

package info (click to toggle)
haskell-xlsx 1.1.2.2-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 860 kB
  • sloc: haskell: 12,602; makefile: 6
file content (127 lines) | stat: -rw-r--r-- 3,097 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
{-# 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