fast image operations
Diffstat (limited to 'benches/affine_transformations.rs')
-rw-r--r--benches/affine_transformations.rs28
1 files changed, 28 insertions, 0 deletions
diff --git a/benches/affine_transformations.rs b/benches/affine_transformations.rs
new file mode 100644
index 0000000..ac68d6e
--- /dev/null
+++ b/benches/affine_transformations.rs
@@ -0,0 +1,28 @@
+#![feature(test)]
+extern crate test;
+use fimg::*;
+use test::Bencher;
+
+macro_rules! bench {
+ (fn $name: ident() { run $fn: ident() }) => {
+ #[bench]
+ fn $name(b: &mut Bencher) {
+ let mut img: Image<_, 4> = Image::new(
+ 64.try_into().unwrap(),
+ 64.try_into().unwrap(),
+ include_bytes!("4_180x180.imgbuf").to_vec(),
+ );
+ b.iter(|| {
+ for _ in 0..256 {
+ img.flip_h();
+ }
+ });
+ }
+ };
+}
+
+bench!(fn flip_h() { run flip_h() });
+bench!(fn flip_v() { run flip_v() });
+bench!(fn rotate_90() { run rot_90() });
+bench!(fn rotate_180() { run rot_180() });
+bench!(fn rotate_270() { run rot_270() });