use quantique::ga::{blade::Blade, multivector::MV, ops::gp, signature_rt::Signature};
#[test]
fn e1e2_times_e2e3_euclidean() {
let sig = Signature::from_pqz(3, 0, 0);
let e1e2 = {
let e1 = MV::basis(Blade(1 << 0), 1.0);
let e2 = MV::basis(Blade(1 << 1), 1.0);
gp(&e1, &e2, &sig)
};
let e2e3 = {
let e2 = MV::basis(Blade(1 << 1), 1.0);
let e3 = MV::basis(Blade(1 << 2), 1.0);
gp(&e2, &e3, &sig)
};
let r = gp(&e1e2, &e2e3, &sig);
assert_eq!(r.terms.len(), 1);
assert_eq!(
r.terms
.get(&Blade((1 << 0) ^ (1 << 2)))
.copied()
.unwrap_or(0.0),
1.0
);
}