Compactify test code
This commit is contained in:
parent
cc3d16cf2c
commit
9fc5dfb2e1
158
src/tube/mod.rs
158
src/tube/mod.rs
|
|
@ -266,154 +266,46 @@ impl Rect {
|
|||
}
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
use crate::types::ray;
|
||||
#[cfg(test)]
|
||||
use glam::vec3;
|
||||
|
||||
#[test]
|
||||
fn test_rect() {
|
||||
assert_eq!(
|
||||
Rect::flip_ray(Ray {
|
||||
pos: vec3(2.0, 3.0, 2.0),
|
||||
dir: vec3(4.0, 5.0, 4.0)
|
||||
}),
|
||||
Ray {
|
||||
pos: vec3(2.0, 3.0, 2.0),
|
||||
dir: vec3(4.0, 5.0, 4.0)
|
||||
}
|
||||
Rect::flip_ray(ray(vec3(2., 3., 2.), vec3(4., 5., 4.))),
|
||||
ray(vec3(2., 3., 2.), vec3(4., 5., 4.)),
|
||||
);
|
||||
assert_eq!(
|
||||
Rect::flip_ray(Ray {
|
||||
pos: vec3(2.0, 3.0, 2.0),
|
||||
dir: vec3(-4.0, 5.0, -4.0)
|
||||
}),
|
||||
Ray {
|
||||
pos: vec3(-2.0, 3.0, -2.0),
|
||||
dir: vec3(4.0, 5.0, 4.0)
|
||||
}
|
||||
Rect::flip_ray(ray(vec3(2., 3., 2.), vec3(-4., 5., -4.))),
|
||||
ray(vec3(-2., 3., -2.), vec3(4., 5., 4.)),
|
||||
);
|
||||
assert_eq!(
|
||||
Rect::flip_ray(Ray {
|
||||
pos: vec3(2.0, 3.0, 2.0),
|
||||
dir: vec3(4.0, -5.0, 4.0)
|
||||
}),
|
||||
Ray {
|
||||
pos: vec3(2.0, -3.0, 2.0),
|
||||
dir: vec3(4.0, 5.0, 4.0)
|
||||
}
|
||||
Rect::flip_ray(ray(vec3(2., 3., 2.), vec3(4., -5., 4.))),
|
||||
ray(vec3(2., -3., 2.), vec3(4., 5., 4.)),
|
||||
);
|
||||
assert_eq!(
|
||||
Rect::flip_ray(Ray {
|
||||
pos: vec3(2.0, 3.0, 2.0),
|
||||
dir: vec3(4.0, 0.0, 4.0)
|
||||
}),
|
||||
Ray {
|
||||
pos: vec3(2.0, 3.0, 2.0),
|
||||
dir: vec3(4.0, 0.0, 4.0)
|
||||
}
|
||||
Rect::flip_ray(ray(vec3(2., 3., 2.), vec3(4., 0., 4.))),
|
||||
ray(vec3(2., 3., 2.), vec3(4., 0., 4.)),
|
||||
);
|
||||
|
||||
let r = Rect {
|
||||
size: vec3(2.0, 3.0, 2.0),
|
||||
};
|
||||
let r = Rect { size: vec3(2., 3., 2.) };
|
||||
|
||||
assert_eq!(
|
||||
r.trace_into(Ray {
|
||||
pos: vec3(3.0, 3.0, 3.0),
|
||||
dir: vec3(1.0, 1.0, 1.0)
|
||||
}),
|
||||
None
|
||||
);
|
||||
assert_eq!(
|
||||
r.trace_into(Ray {
|
||||
pos: vec3(-3.0, 2.0, -3.0),
|
||||
dir: vec3(1.0, 0.0, 1.0)
|
||||
}),
|
||||
Some(1.0)
|
||||
);
|
||||
assert_eq!(
|
||||
r.trace_into(Ray {
|
||||
pos: vec3(-3.0, 2.0, -3.0),
|
||||
dir: vec3(-1.0, 0.0, -1.0)
|
||||
}),
|
||||
None
|
||||
);
|
||||
assert_eq!(
|
||||
r.trace_into(Ray {
|
||||
pos: vec3(-3.0, 1.0, -3.0),
|
||||
dir: vec3(2.0, 2.0, 2.0)
|
||||
}),
|
||||
Some(0.5)
|
||||
);
|
||||
assert_eq!(
|
||||
r.trace_into(Ray {
|
||||
pos: vec3(-3.0, 2.1, -3.0),
|
||||
dir: vec3(2.0, 2.0, 2.0)
|
||||
}),
|
||||
None
|
||||
);
|
||||
assert_eq!(r.trace_into(ray(vec3(3., 3., 3.), vec3(1., 1., 1.))), None);
|
||||
assert_eq!(r.trace_into(ray(vec3(-3., 2., -3.), vec3(1., 0., 1.))), Some(1.));
|
||||
assert_eq!(r.trace_into(ray(vec3(-3., 2., -3.), vec3(-1., 0., -1.))), None);
|
||||
assert_eq!(r.trace_into(ray(vec3(-3., 1., -3.), vec3(2., 2., 2.))), Some(0.5));
|
||||
assert_eq!(r.trace_into(ray(vec3(-3., 2.1, -3.), vec3(2., 2., 2.))), None);
|
||||
|
||||
assert_eq!(
|
||||
r.trace_into(Ray {
|
||||
pos: vec3(2.0, 3.0, 2.0),
|
||||
dir: vec3(1.0, 1.0, 1.0)
|
||||
}),
|
||||
None
|
||||
);
|
||||
assert_eq!(
|
||||
r.trace_into(Ray {
|
||||
pos: vec3(-2.0, 3.0, -2.0),
|
||||
dir: vec3(-1.0, 1.0, -1.0)
|
||||
}),
|
||||
None
|
||||
);
|
||||
assert_eq!(
|
||||
r.trace_into(Ray {
|
||||
pos: vec3(2.0, 3.0, 2.0),
|
||||
dir: vec3(-1.0, -1.0, -1.0)
|
||||
}),
|
||||
Some(0.0)
|
||||
);
|
||||
assert_eq!(
|
||||
r.trace_into(Ray {
|
||||
pos: vec3(2.0, -3.0, 2.0),
|
||||
dir: vec3(-1.0, 1.0, -1.0)
|
||||
}),
|
||||
Some(0.0)
|
||||
);
|
||||
assert_eq!(r.trace_into(ray(vec3(2., 3., 2.), vec3(1., 1., 1.))), None);
|
||||
assert_eq!(r.trace_into(ray(vec3(-2., 3., -2.), vec3(-1., 1., -1.))), None);
|
||||
assert_eq!(r.trace_into(ray(vec3(2., 3., 2.), vec3(-1., -1., -1.))), Some(0.));
|
||||
assert_eq!(r.trace_into(ray(vec3(2., -3., 2.), vec3(-1., 1., -1.))), Some(0.));
|
||||
|
||||
assert_eq!(
|
||||
r.trace_out_of(Ray {
|
||||
pos: vec3(0.0, 0.0, 0.0),
|
||||
dir: vec3(1.0, 1.0, 1.0)
|
||||
}),
|
||||
Some(2.0)
|
||||
);
|
||||
assert_eq!(
|
||||
r.trace_out_of(Ray {
|
||||
pos: vec3(0.0, 0.0, 0.0),
|
||||
dir: vec3(0.0, 1.0, 0.0)
|
||||
}),
|
||||
Some(3.0)
|
||||
);
|
||||
assert_eq!(
|
||||
r.trace_out_of(Ray {
|
||||
pos: vec3(0.0, 1.0, 0.0),
|
||||
dir: vec3(0.0, -1.0, 0.0)
|
||||
}),
|
||||
Some(4.0)
|
||||
);
|
||||
assert_eq!(
|
||||
r.trace_out_of(Ray {
|
||||
pos: vec3(1.0, 1.0, 1.0),
|
||||
dir: vec3(0.0, -1.0, 0.0)
|
||||
}),
|
||||
Some(4.0)
|
||||
);
|
||||
assert_eq!(
|
||||
r.trace_out_of(Ray {
|
||||
pos: vec3(2.0, 3.0, 2.0),
|
||||
dir: vec3(1.0, 1.0, 1.0)
|
||||
}),
|
||||
Some(0.0)
|
||||
);
|
||||
assert_eq!(r.trace_out_of(ray(vec3(0., 0., 0.), vec3(1., 1., 1.))), Some(2.));
|
||||
assert_eq!(r.trace_out_of(ray(vec3(0., 0., 0.), vec3(0., 1., 0.))), Some(3.));
|
||||
assert_eq!(r.trace_out_of(ray(vec3(0., 1., 0.), vec3(0., -1., 0.))), Some(4.));
|
||||
assert_eq!(r.trace_out_of(ray(vec3(1., 1., 1.), vec3(0., -1., 0.))), Some(4.));
|
||||
assert_eq!(r.trace_out_of(ray(vec3(2., 3., 2.), vec3(1., 1., 1.))), Some(0.));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,6 +6,10 @@ pub struct Ray {
|
|||
pub dir: Vec3,
|
||||
}
|
||||
|
||||
pub fn ray(pos: Vec3, dir: Vec3) -> Ray {
|
||||
Ray { pos, dir }
|
||||
}
|
||||
|
||||
impl Ray {
|
||||
pub fn forward(&self, dist: f32) -> Ray {
|
||||
Ray {
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user