use quantique::ga::{blade::Blade, multivector::MV, ops::gp, signature_rt::Signature};
#[test]
fn euclidean_e1_squared_is_plus_one() {
let e1 = MV::basis(Blade(1 << 0), 1.0);
let sig = Signature::from_pqz(3, 0, 0); let r = gp(&e1, &e1, &sig);
assert_eq!(r.terms.get(&Blade(0)).copied().unwrap_or(0.0), 1.0);
assert_eq!(r.terms.len(), 1);
}
#[test]
fn minkowski_time_like_squared_is_minus_one() {
let sig = Signature::from_pqz(0, 1, 0); let e1 = MV::basis(Blade(1 << 0), 1.0);
let r = gp(&e1, &e1, &sig);
assert_eq!(r.terms.get(&Blade(0)).copied().unwrap_or(0.0), -1.0);
assert_eq!(r.terms.len(), 1);
}
#[test]
fn null_square_zeroes_term() {
let sig = Signature::from_pqz(0, 0, 1); let e1 = MV::basis(Blade(1 << 0), 1.0);
let r = gp(&e1, &e1, &sig);
assert!(r.terms.is_empty());
}