From 76173069a36cdff1b36c17573ddfb243878ecaad Mon Sep 17 00:00:00 2001 From: Robert Wassens Date: Sun, 6 Dec 2020 23:34:24 +0100 Subject: [PATCH] round trip test --- tests/encode_images.rs | 39 +++++++++++++++++++++++++++++++-------- 1 file changed, 31 insertions(+), 8 deletions(-) diff --git a/tests/encode_images.rs b/tests/encode_images.rs index d389122..b2cce41 100644 --- a/tests/encode_images.rs +++ b/tests/encode_images.rs @@ -365,14 +365,37 @@ fn test_multipage_image() { /// verify rows per strip setting fn test_rows_per_strip() { let mut file = Cursor::new(Vec::new()); - let mut img_encoder = TiffEncoder::new(&mut file).unwrap(); + { + let mut img_encoder = TiffEncoder::new(&mut file).unwrap(); - let mut image = img_encoder.new_image::(100, 100).unwrap(); - assert_eq!(image.next_strip_sample_count(), 100 * 100); - image.rows_per_strip(2).unwrap(); - assert_eq!(image.next_strip_sample_count(), 2 * 100); + let mut image = img_encoder.new_image::(100, 100).unwrap(); + assert_eq!(image.next_strip_sample_count(), 100 * 100); + image.rows_per_strip(2).unwrap(); + assert_eq!(image.next_strip_sample_count(), 2 * 100); - let img2: Vec = vec![0; 2 * 100]; - image.write_strip(&img2[..]).unwrap(); - assert!(image.rows_per_strip(5).is_err()); + let img2: Vec = vec![0; 2 * 100]; + image.write_strip(&img2[..]).unwrap(); + assert!(image.rows_per_strip(5).is_err()); + for i in 1..50 { + let img2: Vec = vec![i; 2 * 100]; + image.write_strip(&img2[..]).unwrap(); + } + assert!(image.write_strip(&img2[..]).is_err()); + } + + file.seek(SeekFrom::Start(0)).unwrap(); + { + let mut decoder = Decoder::new(&mut file).unwrap(); + assert_eq!(decoder.get_tag_u64(Tag::RowsPerStrip).unwrap(), 2); + assert_eq!(decoder.strip_count().unwrap(), 50); + + for i in 0..50 { + let img2 = [i; 2 * 100]; + if let DecodingResult::U8(data) = decoder.read_strip().unwrap() { + assert_eq!(&img2[..], &data[..]); + } else { + assert!(false); + } + } + } }