diff options
author | Valentin Popov <valentin@popov.link> | 2024-01-08 00:21:28 +0300 |
---|---|---|
committer | Valentin Popov <valentin@popov.link> | 2024-01-08 00:21:28 +0300 |
commit | 1b6a04ca5504955c571d1c97504fb45ea0befee4 (patch) | |
tree | 7579f518b23313e8a9748a88ab6173d5e030b227 /vendor/exr/tests/dev.rs | |
parent | 5ecd8cf2cba827454317368b68571df0d13d7842 (diff) | |
download | fparkan-1b6a04ca5504955c571d1c97504fb45ea0befee4.tar.xz fparkan-1b6a04ca5504955c571d1c97504fb45ea0befee4.zip |
Initial vendor packages
Signed-off-by: Valentin Popov <valentin@popov.link>
Diffstat (limited to 'vendor/exr/tests/dev.rs')
-rw-r--r-- | vendor/exr/tests/dev.rs | 86 |
1 files changed, 86 insertions, 0 deletions
diff --git a/vendor/exr/tests/dev.rs b/vendor/exr/tests/dev.rs new file mode 100644 index 0000000..15dd7ab --- /dev/null +++ b/vendor/exr/tests/dev.rs @@ -0,0 +1,86 @@ +//! Contains some "test" functions that were be used for developing. + +extern crate exr; +extern crate smallvec; + +use exr::prelude::*; + +use std::path::{PathBuf}; +use std::ffi::OsStr; +use std::io::{Cursor}; +use exr::meta::header::Header; +use exr::image::validate_results::ValidateResult; +use rayon::prelude::IntoParallelIterator; +use rayon::iter::ParallelIterator; + +fn exr_files() -> impl Iterator<Item=PathBuf> { + walkdir::WalkDir::new("tests/images/valid").into_iter().map(std::result::Result::unwrap) + .filter(|entry| entry.path().extension() == Some(OsStr::new("exr"))) + .map(walkdir::DirEntry::into_path) +} + +#[test] +#[ignore] +fn print_meta_of_all_files() { + let files: Vec<PathBuf> = exr_files().collect(); + + files.into_par_iter().for_each(|path| { + let meta = MetaData::read_from_file(&path, false); + println!("{:?}: \t\t\t {:?}", path.file_name().unwrap(), meta.unwrap()); + }); +} + +#[test] +#[ignore] +fn search_previews_of_all_files() { + let files: Vec<PathBuf> = exr_files().collect(); + + files.into_par_iter().for_each(|path| { + let meta = MetaData::read_from_file(&path, false).unwrap(); + let has_preview = meta.headers.iter().any(|header: &Header| + header.own_attributes.preview.is_some() || header.own_attributes.other.values() + .any(|value| match value { AttributeValue::Preview(_) => true, _ => false }) + ); + + if has_preview { + println!("Found preview attribute in {:?}", path.file_name().unwrap()); + } + }); +} + +// use this command for big endian testing: +// cross test --target mips-unknown-linux-gnu --verbose --test dev test_roundtrip -- --ignored +#[test] +#[ignore] +pub fn test_roundtrip() { + // works + //let path = "tests/images/fuzzed/b44_overly_restrictive_assert.exr"; + let path = "tests/images/valid/custom/compression_methods/f32/pxr24.exr"; + + // worksn't + // let path = "tests/images/valid/openexr/Chromaticities/Rec709_YC.exr"; // subsampling + // let path = "tests/images/valid/openexr/LuminanceChroma/Flowers.exr"; // subsampling + + // let path = "tests/images/valid/openexr/IlmfmlmflmTest/test_native1.exr"; + // let path = "tests/images/valid/openexr/IlmfmlmflmTest/test_native2.exr"; // contains NaN + + // deep data? + // let path = "tests/images/valid/openexr/v2/Stereo/Balls.exr"; + // let path = "tests/images/valid/openexr/v2/Stereo/Ground.exr"; + + println!("{:?}", exr::meta::MetaData::read_from_file(path, true)); + + let read_image = read() + .no_deep_data().all_resolution_levels().all_channels().all_layers().all_attributes() + .non_parallel(); + + let image = read_image.clone().from_file(path).unwrap(); + + let mut tmp_bytes = Vec::new(); + image.write().to_buffered(Cursor::new(&mut tmp_bytes)).unwrap(); + image.write().to_file("debug_pxr24.exr").unwrap(); + + let image2 = read_image.from_buffered(Cursor::new(tmp_bytes)).unwrap(); + + image.assert_equals_result(&image2); +} |