1#![no_std]
2#![forbid(unsafe_code)]
3#![allow(non_shorthand_field_patterns)]
4
5#[cfg(test)]
6#[macro_use]
7extern crate std;
8
9pub mod cayley;
10pub mod tensor;
11pub mod galois;
12
13#[cfg(test)]
14mod tests {
15 use super::cayley::CayleyPair;
16 use super::galois::{Galois, GF7};
17
18 #[test]
19 fn octonion() {
20 let a = CayleyPair::real(CayleyPair::imagine(CayleyPair::real(<GF7 as Galois>::from(3))));
21 let b = CayleyPair::real(CayleyPair::real(CayleyPair::imagine(<GF7 as Galois>::from(4))));
22 let c = CayleyPair::real(CayleyPair::imagine(CayleyPair::imagine(<GF7 as Galois>::from(2))));
23 assert_eq!(c, a * b);
24 }
25}