From 6f3e29a648906f2804a4988b5a04ee11a4c84401 Mon Sep 17 00:00:00 2001 From: Bill Thiede Date: Sat, 22 Jun 2019 07:42:33 -0700 Subject: [PATCH] Add benches/ directory referenced in Cargo.toml. --- rtiow/benches/spheres.rs | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 rtiow/benches/spheres.rs diff --git a/rtiow/benches/spheres.rs b/rtiow/benches/spheres.rs new file mode 100644 index 0000000..5d52352 --- /dev/null +++ b/rtiow/benches/spheres.rs @@ -0,0 +1,37 @@ +#[macro_use] +extern crate criterion; + +use criterion::Criterion; +use criterion::ParameterizedBenchmark; + +use rtiow::hitable::Hit; +use rtiow::material::Lambertian; +use rtiow::ray::Ray; +use rtiow::sphere::Sphere; +use rtiow::texture::ConstantTexture; +use rtiow::vec3::Vec3; + +fn criterion_benchmark(c: &mut Criterion) { + let sphere = Sphere::new( + Vec3::new(0., 0., 0.), + 1., + Lambertian::new(ConstantTexture::new([1., 0., 0.])), + ); + let rays = vec![ + // Hit + Ray::new([0., 0., -2.], [0., 0., 1.], 0.), + // Miss + Ray::new([0., 0., -2.], [0., 0., -1.], 0.), + ]; + c.bench( + "sphere", + ParameterizedBenchmark::new( + "Sphere", + move |b, r| b.iter(|| sphere.hit(*r, 0., 1.)), + rays, + ), + ); +} + +criterion_group!(benches, criterion_benchmark); +criterion_main!(benches);