massiv-io-0.2.1.0: tests/Test/Massiv/Array/IO/Image/JuicyPixelsSpec.hs
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE TypeApplications #-}
{-# LANGUAGE AllowAmbiguousTypes #-}
module Test.Massiv.Array.IO.Image.JuicyPixelsSpec (spec) where
import Data.Massiv.Array.IO hiding (showsType)
import Test.Massiv.Core
import Test.Massiv.Array.IO.Image.Common
spec :: Spec
spec =
describe "Readable/Writable" $ do
describe "BMP" $ do
specEncodeNoError @Y' @Word8 BMP
specEncodeNoError @(Y D65) @Word8 BMP
--specEncodeDecodeNoError @(Y D65) @Word8 BMP
specEncodeDecodeNoError @SRGB @Word8 BMP
specEncodeDecodeNoError @(Alpha SRGB) @Word8 BMP
describe "GIF" $ do
specEncodeNoError @Y' @Word8 GIF
specEncodeNoError @(Y D65) @Word8 GIF
specEncodeDecodeNoError @SRGB @Word8 GIF
--specEncodeGifSequenceNoError @(Y D65) @Word8
describe "Sequenece" $ do
specEncodeDecodeGifSequenceNoError @SRGB @Word8
specEncodeDecodeGifSequenceNoError @(Alpha SRGB) @Word8
-- TODO: read RGBA8, write Y8
-- getting 'DecodeError "Invalid sanline size"' with seed=2023820902
-- describe "HDR" $ do
-- specEncodeDecodeNoError @SRGB @Float HDR
describe "JPG" $ do
specEncodeDecodeNoError @Y' @Word8 JPG
specEncodeDecodeNoError @(Y D65) @Word8 JPG
specEncodeDecodeNoError @SRGB @Word8 JPG
specEncodeDecodeNoError @(CMYK SRGB) @Word8 JPG
specEncodeDecodeNoError @(YCbCr SRGB) @Word8 JPG
-- TODO: read YA8
describe "PNG" $ do
specEncodeDecodeNoError @Y' @Word8 PNG
specEncodeDecodeNoError @Y' @Word16 PNG
specEncodeDecodeNoError @(Alpha Y') @Word8 PNG
specEncodeDecodeNoError @(Alpha Y') @Word16 PNG
specEncodeDecodeNoError @(Y D65) @Word8 PNG
specEncodeDecodeNoError @(Y D65) @Word16 PNG
specEncodeDecodeNoError @(Alpha (Y D65)) @Word8 PNG
specEncodeDecodeNoError @(Alpha (Y D65)) @Word16 PNG
specEncodeDecodeNoError @SRGB @Word8 PNG
specEncodeDecodeNoError @SRGB @Word16 PNG
specEncodeDecodeNoError @(Alpha SRGB) @Word8 PNG
specEncodeDecodeNoError @(Alpha SRGB) @Word16 PNG
describe "TGA" $ do
specEncodeDecodeNoError @Y' @Word8 TGA
specEncodeDecodeNoError @(Y D65) @Word8 TGA
specEncodeDecodeNoError @SRGB @Word8 TGA
specEncodeDecodeNoError @(Alpha SRGB) @Word8 TGA
describe "TIF" $ do
specEncodeDecodeNoError @Y' @Word8 TIF
specEncodeDecodeNoError @Y' @Word16 TIF
specEncodeDecodeNoError @Y' @Word32 TIF
specEncodeDecodeNoError @Y' @Float TIF
specEncodeDecodeNoError @(Y D65) @Word8 TIF
specEncodeDecodeNoError @(Y D65) @Word16 TIF
specEncodeDecodeNoError @(Y D65) @Word32 TIF
specEncodeDecodeNoError @(Y D65) @Float TIF
specEncodeDecodeNoError @(Alpha Y') @Word8 TIF
specEncodeDecodeNoError @(Alpha Y') @Word16 TIF
specEncodeDecodeNoError @(Alpha (Y D65)) @Word8 TIF
specEncodeDecodeNoError @(Alpha (Y D65)) @Word16 TIF
specEncodeDecodeNoError @SRGB @Word8 TIF
specEncodeDecodeNoError @SRGB @Word16 TIF
specEncodeDecodeNoError @(Alpha SRGB) @Word8 TIF
specEncodeDecodeNoError @(Alpha SRGB) @Word16 TIF
specEncodeDecodeNoError @(CMYK SRGB) @Word8 TIF
specEncodeDecodeNoError @(CMYK SRGB) @Word16 TIF
specEncodeNoError @(YCbCr SRGB) @Word8 TIF