From 7ec2b75c70c44013677aa6fe0651c01c8842f793 Mon Sep 17 00:00:00 2001 From: HagaiHargil Date: Tue, 8 Dec 2020 12:07:36 +0200 Subject: [PATCH] Added int16 tests --- tests/decode_images.rs | 11 +++++++++++ tests/images/int16.tif | Bin 0 -> 8512 bytes tests/images/int16_rgb.tif | Bin 0 -> 24912 bytes 3 files changed, 11 insertions(+) create mode 100755 tests/images/int16.tif create mode 100755 tests/images/int16_rgb.tif diff --git a/tests/decode_images.rs b/tests/decode_images.rs index 2336178..3049700 100644 --- a/tests/decode_images.rs +++ b/tests/decode_images.rs @@ -30,6 +30,7 @@ macro_rules! test_image_sum { test_image_sum!(test_image_sum_u8, U8, u64); test_image_sum!(test_image_sum_u16, U16, u64); +test_image_sum!(test_image_sum_i16, I16, i64); test_image_sum!(test_image_sum_u32, U32, u64); test_image_sum!(test_image_sum_u64, U64, u64); test_image_sum!(test_image_sum_f32, F32, f32); @@ -135,6 +136,16 @@ fn test_rgb_f32() { test_image_sum_f32("gradient-3c-32b-float.tiff", ColorType::RGB(32), 472.8405); } +#[test] +fn test_int16() { + test_image_sum_i16("int16.tif", ColorType::Gray(16), 354396); +} + +#[test] +fn test_int16_rgb() { + test_image_sum_i16("int16_rgb.tif", ColorType::RGB(16), 1063188); +} + #[test] fn test_string_tags() { // these files have null-terminated strings for their Software tag. One has extra bytes after diff --git a/tests/images/int16.tif b/tests/images/int16.tif new file mode 100755 index 0000000000000000000000000000000000000000..5853b06f6c6057fb717551e298f4813025e41566 GIT binary patch literal 8512 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 literal 0 HcmV?d00001 diff --git a/tests/images/int16_rgb.tif b/tests/images/int16_rgb.tif new file mode 100755 index 0000000000000000000000000000000000000000..950a9ac77d3ef7c915e746b1c97587fb9bc7419d GIT binary patch literal 24912 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 a|Fiyo*8k7?|5^V(>;Gr{|NsB~|NjBrhY|1q literal 0 HcmV?d00001