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