Test ordering directory IFD
This commit is contained in:
1 parent
43d7f66c9e
commit
97e230584f
2 files changed
+22
-1
No files matched your search
@@ -158,4 +158,24 @@ mod tests {
|
|||||||
u16::MAX.into()
|
u16::MAX.into()
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn iteration_order() {
|
||||||
|
let mut dir = Directory::empty(IfdPointer(0));
|
||||||
|
assert_eq!(dir.len(), 0);
|
||||||
|
|
||||||
|
let fake_entry = Entry::new_u64(crate::tags::Type::BYTE, 0, [0; 8]);
|
||||||
|
dir.extend((0..32).map(|i| {
|
||||||
|
let tag = Tag::Unknown(i);
|
||||||
|
let entry = fake_entry.clone();
|
||||||
|
(tag, entry)
|
||||||
|
}));
|
||||||
|
|
||||||
|
let iter_order: Vec<u16> = dir.iter().map(|(tag, _e)| tag.to_u16()).collect();
|
||||||
|
assert_eq!(
|
||||||
|
iter_order,
|
||||||
|
(0..32).collect::<Vec<_>>(),
|
||||||
|
"Tags must be in ascending order according to the specification"
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
+2
-1
@@ -29,7 +29,8 @@ fn decode_seek_chain() {
|
|||||||
assert!(!decoder.more_images());
|
assert!(!decoder.more_images());
|
||||||
|
|
||||||
// Ensure we can seek, to do this again.
|
// Ensure we can seek, to do this again.
|
||||||
decoder.seek_to_image(0)
|
decoder
|
||||||
|
.seek_to_image(0)
|
||||||
.expect("Failed to seek to first image");
|
.expect("Failed to seek to first image");
|
||||||
assert_eq!(Some(offset0), decoder.ifd_pointer());
|
assert_eq!(Some(offset0), decoder.ifd_pointer());
|
||||||
decoder.next_image().unwrap();
|
decoder.next_image().unwrap();
|
||||||
|
|||||||
Reference in new issue
Block a user