avro-0.3.6.0: test/Avro/Codec/ArraySpec.hs
{-# LANGUAGE ScopedTypeVariables #-}
module Avro.Codec.ArraySpec (spec) where
import Data.Avro
import Data.Map (Map)
import qualified Data.Map as M
import Data.Text as T
import qualified Data.Vector as V
import qualified Data.Vector.Unboxed as U
import Test.Hspec
import qualified Test.QuickCheck as Q
{-# ANN module ("HLint: ignore Redundant do" :: String) #-}
spec :: Spec
spec = describe "Avro.Codec.ArraySpec" $ do
it "list roundtip" $ Q.property $ \(xs :: [Int]) -> decode (encode xs) == Success xs
it "map roundtrip" $ Q.property $ \(xs :: Map String Int) ->
let xs' = M.mapKeys T.pack xs
in decode (encode xs') == Success xs'
it "vector roundtrip" $ Q.property $ \(xs :: [Int]) ->
let vec = V.fromList xs
in decode (encode vec) == Success vec
it "unboxed vector roundtrip" $ Q.property $ \(xs :: [Int]) ->
let vec = U.fromList xs
in decode (encode vec) == Success vec