css-parser-0.0.1: test/CssParser/Test/Arbitrary/Container.hs
{-# OPTIONS_GHC -fconstraint-solver-iterations=24 #-}
{-# OPTIONS_GHC -Wno-orphans #-}
module CssParser.Test.Arbitrary.Container where
import CssParser.At.Container
( ContainerQuery, CqOp(CqOpFeature), ContainerQueryMap(..) )
import CssParser.At.MediaQuery ( Not, toPlainMf )
import CssParser.Norm ( Norm(..) )
import CssParser.Rule.Value ( PropVal(IntVal), PropVals(PropVals) )
import CssParser.Rule.TypedNum
( TypedNum(TypedNum), RawNum(RawNum), PropValType(Mm) )
import CssParser.Test.Arbitrary
( Applicative(pure),
Maybe(Nothing),
(<$>),
genericShrink,
Arbitrary(..),
Gen(MkGen),
genericArbitrary,
GenericArbitrary(GenericArbitrary) )
import CssParser.Test.Arbitrary.Ident ()
import CssParser.Test.Arbitrary.At ()
import CssParser.Test.Arbitrary.Media ()
instance Norm CqOp where
normalize = \case
CqOpFeature mf ->
let zero = IntVal (TypedNum (RawNum "0") Mm) in
CqOpFeature (toPlainMf (PropVals (pure zero) Nothing) mf)
o -> o
deriving via (GenericArbitrary (Not ContainerQuery CqOp)) instance Arbitrary (Not ContainerQuery CqOp)
deriving via (GenericArbitrary ContainerQuery) instance Arbitrary ContainerQuery
instance Arbitrary CqOp where
arbitrary = normalize <$> genericArbitrary
shrink = normalize <$> genericShrink
deriving via (GenericArbitrary ContainerQueryMap) instance Arbitrary ContainerQueryMap