gopro-plus-0.6.0.0: src/GoPro/Plus/Arbitrary.hs
{-|
Module : GoPro.Plus.Arbitrary
Description : Arbitrary instances.
Copyright : (c) Dustin Sallings, 2020
License : BSD3
Maintainer : dustin@spy.net
Stability : experimental
Arbitrary instances for GoPro.Plus
-}
{-# OPTIONS_GHC -Wno-orphans #-}
module GoPro.Plus.Arbitrary where
import Generic.Random (genericArbitrary, uniform)
import Test.QuickCheck (Arbitrary(..), vector, choose, arbitraryBoundedEnum)
import Test.QuickCheck.Instances.Text ()
import Test.QuickCheck.Instances.Time ()
import GoPro.Plus.Media
instance Arbitrary FileInfo where arbitrary = genericArbitrary uniform
instance Arbitrary FileStuff where
arbitrary = do
_files <- vector =<< choose (0,3)
_variations <- vector =<< choose (0,3)
_sprites <- vector =<< choose (0,3)
_sidecar_files <- vector =<< choose (0,3)
pure FileStuff{..}
instance Arbitrary Variation where arbitrary = genericArbitrary uniform
instance Arbitrary SpriteFrame where arbitrary = genericArbitrary uniform
instance Arbitrary SidecarFile where arbitrary = genericArbitrary uniform
instance Arbitrary Sprite where arbitrary = genericArbitrary uniform
instance Arbitrary File where arbitrary = genericArbitrary uniform
instance Arbitrary Medium where arbitrary = genericArbitrary uniform
instance Arbitrary Moment where arbitrary = genericArbitrary uniform
instance Arbitrary ReadyToViewType where arbitrary = arbitraryBoundedEnum
instance Arbitrary MediumType where arbitrary = arbitraryBoundedEnum
instance Arbitrary PageInfo where arbitrary = genericArbitrary uniform
instance Arbitrary Listing where arbitrary = genericArbitrary uniform