ps_ecc/polynomial/implementations/
partial_ord.rs1use crate::Polynomial;
2
3impl PartialOrd for Polynomial {
4 fn partial_cmp(&self, other: &Self) -> Option<std::cmp::Ordering> {
5 Some(self.cmp(other))
6 }
7}
8
9#[cfg(test)]
10mod tests {
11 use crate::Polynomial;
12
13 #[test]
14 fn partial_cmp_returns_some() {
15 let a = Polynomial::default();
16 let b = Polynomial::default();
17
18 assert!(a.partial_cmp(&b).is_some());
19 }
20
21 #[test]
22 fn partial_cmp_consistent_with_cmp() {
23 let mut a = Polynomial::default();
24 let mut b = Polynomial::default();
25
26 a.set(2, 5);
27 b.set(2, 3);
28
29 assert_eq!(a.partial_cmp(&b), Some(a.cmp(&b)));
30 }
31
32 #[test]
33 fn less_than_operator() {
34 let mut a = Polynomial::default();
35 let mut b = Polynomial::default();
36
37 a.set(1, 1);
38 b.set(1, 2);
39
40 assert!(a < b);
41 assert!((b >= a));
42 }
43
44 #[test]
45 fn greater_than_operator() {
46 let mut a = Polynomial::default();
47 let mut b = Polynomial::default();
48
49 a.set(2, 1);
50 b.set(1, 255);
51
52 assert!(a > b);
53 assert!((b <= a));
54 }
55
56 #[test]
57 fn less_or_equal_operator() {
58 let mut a = Polynomial::default();
59 let mut b = Polynomial::default();
60
61 a.set(1, 5);
62 b.set(1, 5);
63
64 assert!(a <= b);
65 assert!(b <= a);
66
67 b.set(1, 6);
68
69 assert!(a <= b);
70 assert!((b > a));
71 }
72
73 #[test]
74 fn greater_or_equal_operator() {
75 let mut a = Polynomial::default();
76 let mut b = Polynomial::default();
77
78 a.set(1, 5);
79 b.set(1, 5);
80
81 assert!(a >= b);
82 assert!(b >= a);
83
84 a.set(1, 6);
85
86 assert!(a >= b);
87 assert!((b < a));
88 }
89}