use gaussiant::{gaussint, GaussianInt};
fn main() {
let a = gaussint!(2, -1);
let b = gaussint!(2, 3);
let n = gaussint!(1, 1);
let a1 = a;
let b1 = b;
let a2 = gaussint!(4, 1);
let b2 = gaussint!(4, -3);
assert!(a.congruent(b, n));
assert!(a2.congruent(b2, n));
assert!(a.congruent(a, n));
assert_eq!(a.congruent(b, n), b.congruent(a, n));
let c = gaussint!(5, 4);
assert!(b.congruent(c, n));
assert!(a.congruent(c, n));
assert!((a1 + a2).congruent(b1 + b2, n));
assert!((a1 - a2).congruent(b1 - b2, n));
let k = gaussint!(10);
assert!((a + k).congruent(b + k, n));
assert!((a * k).congruent(b * k, n));
assert!((a1 + a2).congruent(b1 + b2, n));
assert!((a1 + a2).congruent(b1 + b2, n));
assert!((a1 * a2).congruent(b1 * b2, n));
}