qfall_math/integer_mod_q/z_q/
cmp.rs1use super::Zq;
12use crate::{
13 error::MathError, integer::Z, macros::compare_base::compare_base_get_mod,
14 macros::compare_base::compare_base_impl, traits::CompareBase,
15};
16
17compare_base_get_mod!(Zq for Zq);
18impl<Integer: Into<Z>> CompareBase<Integer> for Zq {}
19
20#[cfg(test)]
22mod test_compare_base {
23 use crate::{integer::Z, integer_mod_q::Zq, traits::CompareBase};
24
25 #[test]
28 fn availability_without_comparisons() {
29 let one_1 = Zq::from(17);
30
31 assert!(one_1.compare_base(&Z::ONE));
32 assert!(one_1.compare_base(&0_i8));
33 assert!(one_1.compare_base(&0_i16));
34 assert!(one_1.compare_base(&0_i32));
35 assert!(one_1.compare_base(&0_i64));
36 assert!(one_1.compare_base(&0_u8));
37 assert!(one_1.compare_base(&0_u16));
38 assert!(one_1.compare_base(&0_u32));
39 assert!(one_1.compare_base(&0_u64));
40
41 assert!(one_1.call_compare_base_error(&Z::ONE).is_none());
42 assert!(one_1.call_compare_base_error(&0_i8).is_none());
43 assert!(one_1.call_compare_base_error(&0_i16).is_none());
44 assert!(one_1.call_compare_base_error(&0_i32).is_none());
45 assert!(one_1.call_compare_base_error(&0_i64).is_none());
46 assert!(one_1.call_compare_base_error(&0_u8).is_none());
47 assert!(one_1.call_compare_base_error(&0_u16).is_none());
48 assert!(one_1.call_compare_base_error(&0_u32).is_none());
49 assert!(one_1.call_compare_base_error(&0_u64).is_none());
50 }
51
52 #[test]
55 fn availability_with_comparisons() {
56 let one_1 = Zq::from(17);
57
58 assert!(one_1.compare_base(&one_1));
59 assert!(one_1.compare_base(&Zq::from((3, 17))));
60 assert!(!one_1.compare_base(&Zq::from((3, 18))));
61
62 assert!(one_1.call_compare_base_error(&Zq::from((3, 18))).is_some());
63 }
64}