packages feed

geojson-2.0.0: test/Arbitrary.hs

{-# OPTIONS_GHC -fno-warn-orphans #-}

module Arbitrary where

import qualified Data.Vector           as Vector
import qualified Data.Vector.Storable  as VectorStorable
import           Test.Tasty.QuickCheck (Arbitrary, arbitrary)

-- Local
import           Data.LinearRing       (LinearRing, makeLinearRing)
import           Data.LineString       (LineString, makeLineString)


instance (Arbitrary a, Eq a, Show a, VectorStorable.Storable a) => Arbitrary (LinearRing a) where
  arbitrary = makeLinearRing <$> arbitrary <*> arbitrary <*> arbitrary <*> arbitrary

instance (Arbitrary a, Eq a, Show a, VectorStorable.Storable a) => Arbitrary (LineString a) where
  arbitrary = makeLineString <$> arbitrary <*> arbitrary <*> arbitrary

instance (Arbitrary a, VectorStorable.Storable a) => Arbitrary (VectorStorable.Vector a) where
  arbitrary = fmap VectorStorable.fromList arbitrary

instance (Arbitrary a) => Arbitrary (Vector.Vector a) where
  arbitrary = fmap Vector.fromList arbitrary