module Main (main) where import Codec.Picture.Png (encodePng) import Codec.Picture.WebP import qualified Data.ByteString as BS import Test.Tasty import Test.Tasty.HUnit main :: IO () main = defaultMain $ testGroup "Converts to PNG without throwing an exception" [ convRgbPng "test/data/6b3001b4ebfc341ed0359c00586e6ce1.webp" , convRgbPng "test/data/d99cc366dfbbf99493f917e2d43c683f.webp" , convRgbaPng "test/data/6b3001b4ebfc341ed0359c00586e6ce1.webp" , convRgbaPng "test/data/d99cc366dfbbf99493f917e2d43c683f.webp" , roundtripLosslessRGB "test/data/6b3001b4ebfc341ed0359c00586e6ce1.webp" , roundtripLosslessRGB "test/data/d99cc366dfbbf99493f917e2d43c683f.webp" , roundtripLosslessRGBA "test/data/6b3001b4ebfc341ed0359c00586e6ce1.webp" , roundtripLosslessRGBA "test/data/d99cc366dfbbf99493f917e2d43c683f.webp" , roundtripRGB "test/data/6b3001b4ebfc341ed0359c00586e6ce1.webp" , roundtripRGB "test/data/d99cc366dfbbf99493f917e2d43c683f.webp" , roundtripRGBA "test/data/6b3001b4ebfc341ed0359c00586e6ce1.webp" , roundtripRGBA "test/data/d99cc366dfbbf99493f917e2d43c683f.webp" ] convRgbPng :: FilePath -> TestTree convRgbPng fp = testCase ("Converts to PNG (" ++ fp ++ ")") $ do bs <- BS.readFile fp let img = decodeRgb8 bs conv = encodePng img assertBool "No exception" (conv `seq` True) convRgbaPng :: FilePath -> TestTree convRgbaPng fp = testCase ("Converts to PNG (" ++ fp ++ ")") $ do bs <- BS.readFile fp let img = decodeRgba8 bs conv = encodePng img assertBool "No exception" (conv `seq` True) roundtripLosslessRGB :: FilePath -> TestTree roundtripLosslessRGB fp = testCase ("roundtripLosslesss (" ++ fp ++ ")") $ do bs <- BS.readFile fp let img = decodeRgb8 bs conv = encodeRgb8Lossless img assertBool "No exception" (conv `seq` True) roundtripLosslessRGBA :: FilePath -> TestTree roundtripLosslessRGBA fp = testCase ("roundtripLosslesss (" ++ fp ++ ")") $ do bs <- BS.readFile fp let img = decodeRgba8 bs conv = encodeRgba8Lossless img assertBool "No exception" (conv `seq` True) roundtripRGB :: FilePath -> TestTree roundtripRGB fp = testCase ("roundtripLosslesss (" ++ fp ++ ")") $ do bs <- BS.readFile fp let img = decodeRgb8 bs conv = encodeRgb8 0.4 img assertBool "No exception" (conv `seq` True) roundtripRGBA :: FilePath -> TestTree roundtripRGBA fp = testCase ("roundtripLosslesss (" ++ fp ++ ")") $ do bs <- BS.readFile fp let img = decodeRgba8 bs conv = encodeRgba8 0.4 img assertBool "No exception" (conv `seq` True)