sigils/tests/vector.rs

359 lines
8.9 KiB
Rust
Raw Normal View History

extern crate sigils;
use std::ops::{Add, Sub, Mul, Div, Rem};
use sigils::vector::*;
#[test]
fn vector_creation()
{
let v: Vector3<f32> = Vector3::<f32>::from_value(1.0f32);
assert_eq!(v.x, 1.0f32);
}
#[test]
fn vector_add()
{
let v: Vector3<f32> = Vector3::<f32>::from_value(1.0f32);
let v_two: Vector3<f32> = Vector3::<f32>::from_value(4.0f32);
let scalar: f32 = 4.0f32;
let v_three = v.add(&v_two);
assert_eq!(v_three.x, 5.0f32);
assert_eq!(v_three.y, 5.0f32);
assert_eq!(v_three.z, 5.0f32);
let v_three = v.add(v_two);
assert_eq!(v_three.x, 5.0f32);
assert_eq!(v_three.y, 5.0f32);
assert_eq!(v_three.z, 5.0f32);
let v_three = v + &v_two;
assert_eq!(v_three.x, 5.0f32);
assert_eq!(v_three.y, 5.0f32);
assert_eq!(v_three.z, 5.0f32);
let v_three = v + v_two;
assert_eq!(v_three.x, 5.0f32);
assert_eq!(v_three.y, 5.0f32);
assert_eq!(v_three.z, 5.0f32);
let v_three = &v + &v_two;
assert_eq!(v_three.x, 5.0f32);
assert_eq!(v_three.y, 5.0f32);
assert_eq!(v_three.z, 5.0f32);
let v_three = &v + v_two;
assert_eq!(v_three.x, 5.0f32);
assert_eq!(v_three.y, 5.0f32);
assert_eq!(v_three.z, 5.0f32);
let v_three = &v + 4.0f32;
assert_eq!(v_three.x, 5.0f32);
assert_eq!(v_three.y, 5.0f32);
assert_eq!(v_three.z, 5.0f32);
let v_three = v + 4.0f32;
assert_eq!(v_three.x, 5.0f32);
assert_eq!(v_three.y, 5.0f32);
assert_eq!(v_three.z, 5.0f32);
let v_three = &v + scalar;
assert_eq!(v_three.x, 5.0f32);
assert_eq!(v_three.y, 5.0f32);
assert_eq!(v_three.z, 5.0f32);
let v_three = v + scalar;
assert_eq!(v_three.x, 5.0f32);
assert_eq!(v_three.y, 5.0f32);
assert_eq!(v_three.z, 5.0f32);
let v_three = &v + &scalar;
assert_eq!(v_three.x, 5.0f32);
assert_eq!(v_three.y, 5.0f32);
assert_eq!(v_three.z, 5.0f32);
let v_three = v + &scalar;
assert_eq!(v_three.x, 5.0f32);
assert_eq!(v_three.y, 5.0f32);
assert_eq!(v_three.z, 5.0f32);
}
#[test]
fn vector_sub()
{
let v: Vector3<f32> = Vector3::<f32>::from_value(9.0f32);
let v_two: Vector3<f32> = Vector3::<f32>::from_value(4.0f32);
let scalar: f32 = 4.0f32;
let v_three = v.sub(&v_two);
assert_eq!(v_three.x, 5.0f32);
assert_eq!(v_three.y, 5.0f32);
assert_eq!(v_three.z, 5.0f32);
let v_three = v.sub(v_two);
assert_eq!(v_three.x, 5.0f32);
assert_eq!(v_three.y, 5.0f32);
assert_eq!(v_three.z, 5.0f32);
let v_three = v - &v_two;
assert_eq!(v_three.x, 5.0f32);
assert_eq!(v_three.y, 5.0f32);
assert_eq!(v_three.z, 5.0f32);
let v_three = v - v_two;
assert_eq!(v_three.x, 5.0f32);
assert_eq!(v_three.y, 5.0f32);
assert_eq!(v_three.z, 5.0f32);
let v_three = &v - &v_two;
assert_eq!(v_three.x, 5.0f32);
assert_eq!(v_three.y, 5.0f32);
assert_eq!(v_three.z, 5.0f32);
let v_three = &v - v_two;
assert_eq!(v_three.x, 5.0f32);
assert_eq!(v_three.y, 5.0f32);
assert_eq!(v_three.z, 5.0f32);
let v_three = &v - 4.0f32;
assert_eq!(v_three.x, 5.0f32);
assert_eq!(v_three.y, 5.0f32);
assert_eq!(v_three.z, 5.0f32);
let v_three = v - 4.0f32;
assert_eq!(v_three.x, 5.0f32);
assert_eq!(v_three.y, 5.0f32);
assert_eq!(v_three.z, 5.0f32);
let v_three = &v - scalar;
assert_eq!(v_three.x, 5.0f32);
assert_eq!(v_three.y, 5.0f32);
assert_eq!(v_three.z, 5.0f32);
let v_three = v - scalar;
assert_eq!(v_three.x, 5.0f32);
assert_eq!(v_three.y, 5.0f32);
assert_eq!(v_three.z, 5.0f32);
let v_three = &v - &scalar;
assert_eq!(v_three.x, 5.0f32);
assert_eq!(v_three.y, 5.0f32);
assert_eq!(v_three.z, 5.0f32);
let v_three = v - &scalar;
assert_eq!(v_three.x, 5.0f32);
assert_eq!(v_three.y, 5.0f32);
assert_eq!(v_three.z, 5.0f32);
}
#[test]
fn vector_mul()
{
let v: Vector3<f32> = Vector3::<f32>::from_value(3.0f32);
let v_two: Vector3<f32> = Vector3::<f32>::from_value(5.0f32);
let scalar: f32 = 5.0f32;
let v_three = v.mul(&v_two);
assert_eq!(v_three.x, 15.0f32);
assert_eq!(v_three.y, 15.0f32);
assert_eq!(v_three.z, 15.0f32);
let v_three = v.mul(v_two);
assert_eq!(v_three.x, 15.0f32);
assert_eq!(v_three.y, 15.0f32);
assert_eq!(v_three.z, 15.0f32);
let v_three = v * &v_two;
assert_eq!(v_three.x, 15.0f32);
assert_eq!(v_three.y, 15.0f32);
assert_eq!(v_three.z, 15.0f32);
let v_three = v * v_two;
assert_eq!(v_three.x, 15.0f32);
assert_eq!(v_three.y, 15.0f32);
assert_eq!(v_three.z, 15.0f32);
let v_three = &v * &v_two;
assert_eq!(v_three.x, 15.0f32);
assert_eq!(v_three.y, 15.0f32);
assert_eq!(v_three.z, 15.0f32);
let v_three = &v * v_two;
assert_eq!(v_three.x, 15.0f32);
assert_eq!(v_three.y, 15.0f32);
assert_eq!(v_three.z, 15.0f32);
let v_three = &v * 5.0f32;
assert_eq!(v_three.x, 15.0f32);
assert_eq!(v_three.y, 15.0f32);
assert_eq!(v_three.z, 15.0f32);
let v_three = v * 5.0f32;
assert_eq!(v_three.x, 15.0f32);
assert_eq!(v_three.y, 15.0f32);
assert_eq!(v_three.z, 15.0f32);
let v_three = &v * scalar;
assert_eq!(v_three.x, 15.0f32);
assert_eq!(v_three.y, 15.0f32);
assert_eq!(v_three.z, 15.0f32);
let v_three = v * scalar;
assert_eq!(v_three.x, 15.0f32);
assert_eq!(v_three.y, 15.0f32);
assert_eq!(v_three.z, 15.0f32);
let v_three = &v * &scalar;
assert_eq!(v_three.x, 15.0f32);
assert_eq!(v_three.y, 15.0f32);
assert_eq!(v_three.z, 15.0f32);
let v_three = v * &scalar;
assert_eq!(v_three.x, 15.0f32);
assert_eq!(v_three.y, 15.0f32);
assert_eq!(v_three.z, 15.0f32);
}
#[test]
fn vector_div()
{
let v: Vector3<f32> = Vector3::<f32>::from_value(15.0f32);
let v_two: Vector3<f32> = Vector3::<f32>::from_value(5.0f32);
let scalar: f32 = 5.0f32;
let v_three = v.div(&v_two);
assert_eq!(v_three.x, 3.0f32);
assert_eq!(v_three.y, 3.0f32);
assert_eq!(v_three.z, 3.0f32);
let v_three = v.div(v_two);
assert_eq!(v_three.x, 3.0f32);
assert_eq!(v_three.y, 3.0f32);
assert_eq!(v_three.z, 3.0f32);
let v_three = v / &v_two;
assert_eq!(v_three.x, 3.0f32);
assert_eq!(v_three.y, 3.0f32);
assert_eq!(v_three.z, 3.0f32);
let v_three = v / v_two;
assert_eq!(v_three.x, 3.0f32);
assert_eq!(v_three.y, 3.0f32);
assert_eq!(v_three.z, 3.0f32);
let v_three = &v / &v_two;
assert_eq!(v_three.x, 3.0f32);
assert_eq!(v_three.y, 3.0f32);
assert_eq!(v_three.z, 3.0f32);
let v_three = &v / v_two;
assert_eq!(v_three.x, 3.0f32);
assert_eq!(v_three.y, 3.0f32);
assert_eq!(v_three.z, 3.0f32);
let v_three = &v / 5.0f32;
assert_eq!(v_three.x, 3.0f32);
assert_eq!(v_three.y, 3.0f32);
assert_eq!(v_three.z, 3.0f32);
let v_three = v / 5.0f32;
assert_eq!(v_three.x, 3.0f32);
assert_eq!(v_three.y, 3.0f32);
assert_eq!(v_three.z, 3.0f32);
let v_three = &v / scalar;
assert_eq!(v_three.x, 3.0f32);
assert_eq!(v_three.y, 3.0f32);
assert_eq!(v_three.z, 3.0f32);
let v_three = v / scalar;
assert_eq!(v_three.x, 3.0f32);
assert_eq!(v_three.y, 3.0f32);
assert_eq!(v_three.z, 3.0f32);
let v_three = &v / &scalar;
assert_eq!(v_three.x, 3.0f32);
assert_eq!(v_three.y, 3.0f32);
assert_eq!(v_three.z, 3.0f32);
let v_three = v / &scalar;
assert_eq!(v_three.x, 3.0f32);
assert_eq!(v_three.y, 3.0f32);
assert_eq!(v_three.z, 3.0f32);
}
#[test]
fn vector_rem()
{
let v: Vector3<f32> = Vector3::<f32>::from_value(15.0f32);
let v_two: Vector3<f32> = Vector3::<f32>::from_value(6.0f32);
let scalar: f32 = 6.0f32;
let v_three = v.rem(&v_two);
assert_eq!(v_three.x, 3.0f32);
assert_eq!(v_three.y, 3.0f32);
assert_eq!(v_three.z, 3.0f32);
let v_three = v.rem(v_two);
assert_eq!(v_three.x, 3.0f32);
assert_eq!(v_three.y, 3.0f32);
assert_eq!(v_three.z, 3.0f32);
let v_three = v % &v_two;
assert_eq!(v_three.x, 3.0f32);
assert_eq!(v_three.y, 3.0f32);
assert_eq!(v_three.z, 3.0f32);
let v_three = v % v_two;
assert_eq!(v_three.x, 3.0f32);
assert_eq!(v_three.y, 3.0f32);
assert_eq!(v_three.z, 3.0f32);
let v_three = &v % &v_two;
assert_eq!(v_three.x, 3.0f32);
assert_eq!(v_three.y, 3.0f32);
assert_eq!(v_three.z, 3.0f32);
let v_three = &v % v_two;
assert_eq!(v_three.x, 3.0f32);
assert_eq!(v_three.y, 3.0f32);
assert_eq!(v_three.z, 3.0f32);
let v_three = &v % 6.0f32;
assert_eq!(v_three.x, 3.0f32);
assert_eq!(v_three.y, 3.0f32);
assert_eq!(v_three.z, 3.0f32);
let v_three = v % 6.0f32;
assert_eq!(v_three.x, 3.0f32);
assert_eq!(v_three.y, 3.0f32);
assert_eq!(v_three.z, 3.0f32);
let v_three = &v % scalar;
assert_eq!(v_three.x, 3.0f32);
assert_eq!(v_three.y, 3.0f32);
assert_eq!(v_three.z, 3.0f32);
let v_three = v % scalar;
assert_eq!(v_three.x, 3.0f32);
assert_eq!(v_three.y, 3.0f32);
assert_eq!(v_three.z, 3.0f32);
let v_three = &v % &scalar;
assert_eq!(v_three.x, 3.0f32);
assert_eq!(v_three.y, 3.0f32);
assert_eq!(v_three.z, 3.0f32);
let v_three = v % &scalar;
assert_eq!(v_three.x, 3.0f32);
assert_eq!(v_three.y, 3.0f32);
assert_eq!(v_three.z, 3.0f32);
}