mirror of
https://github.com/bend-n/fimg.git
synced 2024-12-22 10:28:21 -06:00
move benchmarks out
This commit is contained in:
parent
0a5f7f14fd
commit
7b3e67fd19
28
benches/affine_transformations.rs
Normal file
28
benches/affine_transformations.rs
Normal file
|
@ -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() });
|
63
benches/overlays.rs
Normal file
63
benches/overlays.rs
Normal file
|
@ -0,0 +1,63 @@
|
|||
#![feature(test)]
|
||||
extern crate test;
|
||||
use fimg::*;
|
||||
use test::Bencher;
|
||||
|
||||
#[bench]
|
||||
fn overlay_3on3at(bench: &mut Bencher) {
|
||||
let mut v = vec![0u8; 3 * 64 * 64];
|
||||
let mut a: Image<_, 3> = Image::new(
|
||||
64.try_into().unwrap(),
|
||||
64.try_into().unwrap(),
|
||||
v.as_mut_slice(),
|
||||
);
|
||||
let b = Image::<&[u8], 3>::new(
|
||||
4.try_into().unwrap(),
|
||||
4.try_into().unwrap(),
|
||||
*&include_bytes!("3_4x4.imgbuf"),
|
||||
);
|
||||
bench.iter(|| unsafe {
|
||||
for x in 0..16 {
|
||||
for y in 0..16 {
|
||||
a.overlay_at(&b, x * 4, y * 4);
|
||||
}
|
||||
}
|
||||
});
|
||||
assert_eq!(a.as_ref().buffer, include_bytes!("3x3_at_out.imgbuf"));
|
||||
}
|
||||
|
||||
#[bench]
|
||||
fn overlay_4on3at(bench: &mut Bencher) {
|
||||
let mut a: Image<_, 3> = Image::alloc(64, 64);
|
||||
let b = Image::<&[u8], 4>::new(
|
||||
4.try_into().unwrap(),
|
||||
4.try_into().unwrap(),
|
||||
*&include_bytes!("4_4x4.imgbuf"),
|
||||
);
|
||||
bench.iter(|| unsafe {
|
||||
for x in 0..16 {
|
||||
for y in 0..16 {
|
||||
a.as_mut().overlay_at(&b, x * 4, y * 4);
|
||||
}
|
||||
}
|
||||
});
|
||||
assert_eq!(a.as_ref().buffer, include_bytes!("4x3_at_out.imgbuf"));
|
||||
}
|
||||
|
||||
#[bench]
|
||||
fn overlay_4on4at(bench: &mut Bencher) {
|
||||
let mut a: Image<_, 4> = Image::alloc(64, 64);
|
||||
let b = Image::<&[u8], 4>::new(
|
||||
4.try_into().unwrap(),
|
||||
4.try_into().unwrap(),
|
||||
*&include_bytes!("4_4x4.imgbuf"),
|
||||
);
|
||||
bench.iter(|| unsafe {
|
||||
for x in 0..16 {
|
||||
for y in 0..16 {
|
||||
a.as_mut().overlay_at(&b, x * 4, y * 4);
|
||||
}
|
||||
}
|
||||
});
|
||||
assert_eq!(a.as_ref().buffer, include_bytes!("4x4_at_out.imgbuf"));
|
||||
}
|
|
@ -219,35 +219,3 @@ mod tests {
|
|||
);
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
mod bench {
|
||||
use super::*;
|
||||
extern crate test;
|
||||
use crate::Image;
|
||||
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!("../test_data/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() });
|
||||
}
|
||||
|
|
|
@ -170,81 +170,3 @@ impl OverlayAt<Image<&[u8], 4>> for Image<&mut [u8], 4> {
|
|||
self
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
mod bench {
|
||||
extern crate test;
|
||||
|
||||
use test::Bencher;
|
||||
|
||||
use super::*;
|
||||
use crate::{FromRef, FromRefMut};
|
||||
|
||||
#[bench]
|
||||
fn overlay_3on3at(bench: &mut Bencher) {
|
||||
let mut v = vec![0u8; 3 * 64 * 64];
|
||||
let mut a: Image<_, 3> = Image::new(
|
||||
64.try_into().unwrap(),
|
||||
64.try_into().unwrap(),
|
||||
v.as_mut_slice(),
|
||||
);
|
||||
let b = Image::<&[u8], 3>::new(
|
||||
4.try_into().unwrap(),
|
||||
4.try_into().unwrap(),
|
||||
*&include_bytes!("../test_data/3_4x4.imgbuf"),
|
||||
);
|
||||
bench.iter(|| unsafe {
|
||||
for x in 0..16 {
|
||||
for y in 0..16 {
|
||||
a.overlay_at(&b, x * 4, y * 4);
|
||||
}
|
||||
}
|
||||
});
|
||||
assert_eq!(
|
||||
a.as_ref().buffer,
|
||||
include_bytes!("../test_results/3x3_at_out.buf")
|
||||
);
|
||||
}
|
||||
|
||||
#[bench]
|
||||
fn overlay_4on3at(bench: &mut Bencher) {
|
||||
let mut a: Image<_, 3> = Image::alloc(64, 64);
|
||||
let b = Image::<&[u8], 4>::new(
|
||||
4.try_into().unwrap(),
|
||||
4.try_into().unwrap(),
|
||||
*&include_bytes!("../test_data/4_4x4.imgbuf"),
|
||||
);
|
||||
bench.iter(|| unsafe {
|
||||
for x in 0..16 {
|
||||
for y in 0..16 {
|
||||
a.as_mut().overlay_at(&b, x * 4, y * 4);
|
||||
}
|
||||
}
|
||||
});
|
||||
assert_eq!(
|
||||
a.as_ref().buffer,
|
||||
include_bytes!("../test_results/4x3_at_out.buf")
|
||||
);
|
||||
}
|
||||
|
||||
#[bench]
|
||||
fn overlay_4on4at(bench: &mut Bencher) {
|
||||
let mut a: Image<_, 4> = Image::alloc(64, 64);
|
||||
let b = Image::<&[u8], 4>::new(
|
||||
4.try_into().unwrap(),
|
||||
4.try_into().unwrap(),
|
||||
*&include_bytes!("../test_data/4_4x4.imgbuf"),
|
||||
);
|
||||
bench.iter(|| unsafe {
|
||||
for x in 0..16 {
|
||||
for y in 0..16 {
|
||||
a.as_mut().overlay_at(&b, x * 4, y * 4);
|
||||
}
|
||||
}
|
||||
});
|
||||
assert_eq!(
|
||||
a.as_ref().buffer,
|
||||
include_bytes!("../test_results/4x4_at_out.buf")
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue