ps-ecc 0.1.0-9

Generates Reed-Solomon error correction codes.
Documentation
use crate::Polynomial;

impl PartialOrd for Polynomial {
    fn partial_cmp(&self, other: &Self) -> Option<std::cmp::Ordering> {
        Some(self.cmp(other))
    }
}

#[cfg(test)]
mod tests {
    use crate::Polynomial;

    #[test]
    fn partial_cmp_returns_some() {
        let a = Polynomial::default();
        let b = Polynomial::default();

        assert!(a.partial_cmp(&b).is_some());
    }

    #[test]
    fn partial_cmp_consistent_with_cmp() {
        let mut a = Polynomial::default();
        let mut b = Polynomial::default();

        a.set(2, 5);
        b.set(2, 3);

        assert_eq!(a.partial_cmp(&b), Some(a.cmp(&b)));
    }

    #[test]
    fn less_than_operator() {
        let mut a = Polynomial::default();
        let mut b = Polynomial::default();

        a.set(1, 1);
        b.set(1, 2);

        assert!(a < b);
        assert!((b >= a));
    }

    #[test]
    fn greater_than_operator() {
        let mut a = Polynomial::default();
        let mut b = Polynomial::default();

        a.set(2, 1);
        b.set(1, 255);

        assert!(a > b);
        assert!((b <= a));
    }

    #[test]
    fn less_or_equal_operator() {
        let mut a = Polynomial::default();
        let mut b = Polynomial::default();

        a.set(1, 5);
        b.set(1, 5);

        assert!(a <= b);
        assert!(b <= a);

        b.set(1, 6);

        assert!(a <= b);
        assert!((b > a));
    }

    #[test]
    fn greater_or_equal_operator() {
        let mut a = Polynomial::default();
        let mut b = Polynomial::default();

        a.set(1, 5);
        b.set(1, 5);

        assert!(a >= b);
        assert!(b >= a);

        a.set(1, 6);

        assert!(a >= b);
        assert!((b < a));
    }
}