css-parser-0.0.1: test/CssParser/Test/Arbitrary/Ident.hs
{-# OPTIONS_GHC -fconstraint-solver-iterations=24 #-}
{-# OPTIONS_GHC -Wno-orphans #-}
module CssParser.Test.Arbitrary.Ident where
import CssParser.Ident
import CssParser.Descriptor
import CssParser.Test.Arbitrary
import Data.Text as T
instance Arbitrary Ident where
arbitrary = Ident <$> arbitraryIdent
shrink (Ident a) = Ident <$> shrinkIdent a
instance Arbitrary Descriptor where
arbitrary = (\case
BrowserSpecificDescriptor Na i -> BrowserSpecificDescriptor Opera i
o -> o) <$> genericArbitrary
deriving via (GenericArbitrary KnownDescriptor) instance Arbitrary KnownDescriptor
deriving via (GenericArbitrary BrowserPrefix) instance Arbitrary BrowserPrefix
deriving via (GenericArbitrary Var) instance Arbitrary Var
deriving via (GenericArbitrary PropertyName) instance Arbitrary PropertyName
deriving via (GenericArbitrary Namespace) instance Arbitrary Namespace
deriving via (GenericArbitrary AttrName) instance Arbitrary AttrName
deriving via (GenericArbitrary CustomSelectorName) instance Arbitrary CustomSelectorName
instance Arbitrary TagName where
arbitrary = frequency
[ (1, pure NoTag)
, (2, pure AsteriskTag)
, (3, pure AmpersandTag)
, (6, TagName . Ident <$> elements (T.words "div p b i a span s"))
]
shrink _ = []