round trip test
This commit is contained in:
1 parent
7da8f01f75
commit
76173069a3
1 file changed
+31
-8
+31
-8
@@ -365,14 +365,37 @@ fn test_multipage_image() {
|
|||||||
/// verify rows per strip setting
|
/// verify rows per strip setting
|
||||||
fn test_rows_per_strip() {
|
fn test_rows_per_strip() {
|
||||||
let mut file = Cursor::new(Vec::new());
|
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::<colortype::Gray8>(100, 100).unwrap();
|
let mut image = img_encoder.new_image::<colortype::Gray8>(100, 100).unwrap();
|
||||||
assert_eq!(image.next_strip_sample_count(), 100 * 100);
|
assert_eq!(image.next_strip_sample_count(), 100 * 100);
|
||||||
image.rows_per_strip(2).unwrap();
|
image.rows_per_strip(2).unwrap();
|
||||||
assert_eq!(image.next_strip_sample_count(), 2 * 100);
|
assert_eq!(image.next_strip_sample_count(), 2 * 100);
|
||||||
|
|
||||||
let img2: Vec<u8> = vec![0; 2 * 100];
|
let img2: Vec<u8> = vec![0; 2 * 100];
|
||||||
image.write_strip(&img2[..]).unwrap();
|
image.write_strip(&img2[..]).unwrap();
|
||||||
assert!(image.rows_per_strip(5).is_err());
|
assert!(image.rows_per_strip(5).is_err());
|
||||||
|
for i in 1..50 {
|
||||||
|
let img2: Vec<u8> = 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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Reference in new issue
Block a user