/
d.vision
/
division_math
Обзор
Документация
Войти
/
d.vision
/
division_math
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
tests/vector3_tests.rs
75 строк
2 KB
Денис
Added vec min/max functions. Added simplified construction functions
17 июн 2025, 22:45
17 июн 2025, 22:45
bc2c2a9
Код
Авторство
О чём код?
mod tests { use division_math::{approx, vec3, Vector3}; #[test] fn vector_to_scalar_mul() { let v = Vector3::one() * 2.; assert_eq!(v.x, 2.); assert_eq!(v.y, 2.); assert_eq!(v.z, 2.); } #[test] #[inline(never)] fn vector_to_vector_mul() { let v1 = Vector3::all(3f32); let v2 = Vector3::all(2f32); let res = v1 * v2; assert_eq!(res, Vector3::all(6f32)); } #[test] #[inline(never)] fn vector_to_normalized() { let v1 = Vector3::all(2f32); let norm = v1.normalized(); assert!(approx(norm.length(), 1.)); } #[test] fn vector_cross() { let right = Vector3::right(); let up = Vector3::up(); assert_eq!(Vector3::cross(right, up), Vector3::forward()); } #[test] fn vector_from() { assert_eq!(Vector3::new(1., 2., 3.), Vector3::from((1., 2., 3.))); assert_eq!(Vector3::new(1., 1., 1.), Vector3::from(1.)); } #[test] fn vector_clamp_length() { let v = vec3((3., 3., 3.)); let expected_len = (3f32 * 3f32).sqrt() / 2.; let v = v.clamp_length(0., expected_len); let actual_len = v.length(); assert!(approx(actual_len, expected_len)); } #[test] fn vector_max() { assert_eq!(vec3(3.).max(vec3(4.)), vec3(4.)); assert_eq!(vec3(4.).max(vec3(3.)), vec3(4.)); assert_eq!( vec3((1., 2., 3.)).max(vec3((0., 5., 2.))), vec3((1., 5., 3.)) ); } #[test] fn vector_min() { assert_eq!(vec3(3.).min(vec3(4.)), vec3(3.)); assert_eq!(vec3(4.).min(vec3(3.)), vec3(3.)); assert_eq!( vec3((1., 2., 3.)).min(vec3((0., 5., 2.))), vec3((0., 2., 2.)) ); } }