strafe-client/fixed_wide_vectors/src/tests/mod.rs

64 lines
1.3 KiB
Rust
Raw Normal View History

use fixed_wide_traits::wide::WideMul;
2024-08-28 17:04:58 +00:00
use fixed_wide_traits::wide::WideDot;
2024-08-24 00:23:03 +00:00
2024-08-23 23:35:22 +00:00
use crate::Vector3;
2024-08-26 22:40:37 +00:00
type Planar64=fixed_wide::types::I32F32;
2024-08-24 00:23:03 +00:00
//type Planar64Wide1=fixed::types::I64F64;
//type Planar64Wide2=fixed_wide::types::I128F128;
type Planar64Wide3=fixed_wide::types::I256F256;
#[test]
2024-08-23 23:37:31 +00:00
fn wide_int64() {
2024-08-24 00:23:03 +00:00
let a=Planar64::from(2);
let b=Planar64::from(3);
let w1=a.wide_mul(b);
let w2=w1.wide_mul(w1);
let w3=w2.wide_mul(w2);
2024-08-23 23:35:22 +00:00
assert_eq!(w3,Planar64Wide3::from((3i128*2).pow(4)));
2024-08-24 00:23:03 +00:00
}
2024-08-23 23:48:24 +00:00
#[test]
fn you_can_add_numbers(){
let a=Planar64Wide3::from((3i128*2).pow(4));
assert_eq!(a+a,Planar64Wide3::from((3i128*2).pow(4)*2))
}
2024-08-27 21:58:32 +00:00
#[test]
fn you_can_shr_numbers(){
let a=Planar64::from(4);
assert_eq!(a>>1,Planar64::from(2))
}
2024-08-24 00:23:03 +00:00
#[test]
2024-08-23 23:37:31 +00:00
fn wide_vec3(){
2024-08-23 23:35:22 +00:00
let v=Vector3::from_value(Planar64::from(3));
2024-08-23 23:26:19 +00:00
let v1=v.wide_mul(v);
2024-08-23 23:35:22 +00:00
let v2=v1.wide_mul(v1);
let v3=v2.wide_mul(v2);
assert_eq!(v3,Vector3::from_value(Planar64Wide3::from(3i128.pow(8))));
2024-08-24 00:23:03 +00:00
}
2024-08-23 23:49:05 +00:00
#[test]
fn wide_vec3_dot(){
let v=Vector3::from_value(Planar64::from(3));
let v1=v.wide_mul(v);
let v2=v1.wide_mul(v1);
let v3=v2.wide_dot(v2);
assert_eq!(v3,Planar64Wide3::from(3i128.pow(8)*3));
}
#[test]
fn wide_vec3_length_squared(){
let v=Vector3::from_value(Planar64::from(3));
let v1=v.wide_mul(v);
let v2=v1.wide_mul(v1);
let v3=v2.wide_length_squared();
assert_eq!(v3,Planar64Wide3::from(3i128.pow(8)*3));
}