bedrs 0.2.26

Genomic interval library in rust
Documentation
use thiserror::Error;

#[derive(Error, Debug, PartialEq)]
#[error(transparent)]
pub enum SetError {
    #[error("The interval set is unsorted.")]
    UnsortedSet,

    #[error("The interval set is empty.")]
    EmptySet,

    #[error("The provided intervals are not sorted.")]
    UnsortedIntervals,

    #[error("The maximum interval length is unknown")]
    MissingMaxLen,

    #[error("Sample size is larger than the number of intervals.")]
    SampleSizeTooLarge,

    #[error("Provided fraction {frac} is oversized. Must be (0, 1]")]
    FractionUnbounded { frac: f64 },

    #[error("Provided value must be greater than 0")]
    ZeroOrNegative,

    #[error("Cannot accept a strand input that is unknown")]
    CannotAcceptUnknownStrand,
}

#[cfg(test)]
mod testing {
    use super::*;

    #[test]
    fn test_set_error() {
        let err = SetError::UnsortedSet;
        assert_eq!(format!("{err}"), "The interval set is unsorted.");
        let err = SetError::EmptySet;
        assert_eq!(format!("{err}"), "The interval set is empty.");
        let err = SetError::UnsortedIntervals;
        assert_eq!(format!("{err}"), "The provided intervals are not sorted.");
        let err = SetError::MissingMaxLen;
        assert_eq!(format!("{err}"), "The maximum interval length is unknown");
        let err = SetError::SampleSizeTooLarge;
        assert_eq!(
            format!("{err}"),
            "Sample size is larger than the number of intervals."
        );
        let err = SetError::FractionUnbounded { frac: 1.0 };
        assert_eq!(
            format!("{err}"),
            "Provided fraction 1 is oversized. Must be (0, 1]"
        );
        let err = SetError::ZeroOrNegative;
        assert_eq!(format!("{err}"), "Provided value must be greater than 0");
        let err = SetError::CannotAcceptUnknownStrand;
        assert_eq!(
            format!("{err}"),
            "Cannot accept a strand input that is unknown"
        );
    }

    #[test]
    fn test_set_error_debug() {
        let err = SetError::UnsortedSet;
        assert_eq!(format!("{err:?}"), "UnsortedSet");
    }
}