Skip to main content

ps_ecc/polynomial/implementations/
partial_ord.rs

1use 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}