{-# LANGUAGE TemplateHaskell #-}
import Test.Hspec
import Codec.Picture as JP
import qualified Data.ByteString
import Data.FileEmbed
import Vision.Image.JuicyPixels
rgba8Png :: Data.ByteString.ByteString
rgba8Png = $(embedFile "test/rgba8.png")
main :: IO ()
main = hspec spec
spec :: Spec
spec = do
describe "RGBA conversion" $ do
it "should not modify the image when converting from Juicy to Friday and back" $
let result = decodeImage rgba8Png in case result of
Right (ImageRGBA8 img) ->
let fridayImg = toFridayRGBA img
juicyImg = toJuicyRGBA fridayImg
orig = encodeDynamicPng $ ImageRGBA8 img
converted = encodeDynamicPng $ ImageRGBA8 juicyImg
in orig `shouldBe` converted
Left _ -> error "Image decoding error"
_ -> error "Unexpected color space"