-- TODO: maybe add function that returns bytestring -- TODO: test against images saved by the official OpenEXR library import qualified Data.ByteString.Lazy as BL import qualified Data.Vector as V import System.Directory (removeFile) import Test.Hspec import qualified Graphics.OpenEXR as EXR main :: IO () main = hspec $ after_ (removeFile "tmp.exr") $ do let image = EXR.ImageRGBF 1 1 (V.fromList [EXR.PixelRGBF 1 0 0]) folder = "test/images/" describe "OpenEXR.writeFile" $ do it "saves image without compression" $ do EXR.writeFile "tmp.exr" image EXR.NoCompression output <- BL.readFile "tmp.exr" valid <- BL.readFile (folder ++ "red_1x1_no_compression.exr") output `shouldBe` valid it "saves image with ZIPS compression" $ do EXR.writeFile "tmp.exr" image EXR.ZipsCompression output <- BL.readFile "tmp.exr" valid <- BL.readFile (folder ++ "red_1x1_zips_compression.exr") output `shouldBe` valid it "saves image with ZIP compression" $ do EXR.writeFile "tmp.exr" image EXR.ZipCompression output <- BL.readFile "tmp.exr" valid <- BL.readFile (folder ++ "red_1x1_zip_compression.exr") output `shouldBe` valid